The Smell of Molten Projects in the Morning

Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.

The New Hotness

  • Clover Seam Ripper Cap

    Mary wanted a rigid cap for a Clover seam ripper that came with a small plastic sheath, so I called one from the vasty digital deep:

    Clover Seam Ripper - new cap
    Clover Seam Ripper – new cap

    The solid model looks about like you’d expect, with a brim around the bottom to paste it on the platform:

    Clover Seam Ripper Cap - Slic3r preview
    Clover Seam Ripper Cap – Slic3r preview

    I added a slightly tapered entry to work around the usual tolerance problems:

    Clover Seam Ripper Cap - bottom view
    Clover Seam Ripper Cap – bottom view

    The taper comes from a hull wrapped around eight small spheres:

    Clover Seam Ripper Cap - Entry Pyramid
    Clover Seam Ripper Cap – Entry Pyramid

    That’s surprisingly easy to accomplish, at least after you get used to this sort of thing:

    hull() {																		// entry taper
    	for (i=[-1,1] , j=[-1,1])
    		translate([i*(HandleEntry[0]/2 - StemRadius),j*(HandleEntry[1]/2 - StemRadius),0])
    			sphere(r=StemRadius,$fn=4*4);
    	for (i=[-1,1] , j=[-1,1])
    		translate([i*(HandleStem[0]/2 - StemRadius),j*(HandleStem[1]/2 - StemRadius),HandleEntry[2] - StemRadius])
    			sphere(r=StemRadius,$fn=4*4);	
    }
    

    The side walls are two threads thick and, at least in PETG, entirely too rigid to slide on easily. I think a single-thread wall with a narrow ridge would provide more spring; if this one gets too annoying, I’ll try that.

    The OpenSCAD source code as a GitHub gist:

    // Clover seam ripper cap
    // Ed Nisley KE4ZNU – April 2016
    //- Extrusion parameters – must match reality!
    // Build with a 5 mm brim to keep it glued to the platform
    ThreadThick = 0.25;
    ThreadWidth = 0.40;
    Protrusion = 0.1;
    //——
    // Dimensions
    StemRadius = 0.50; // corner radius
    HandleStem = [6.1, 7.1, 9.0];
    HandleEntry = HandleStem + [1.0,1.0,-4.0]; // Z is -(straight part of stem)
    Cap = [8.5,11.0,45.0]; // XY exterior, Z interior
    //———————-
    //- Build it
    difference() {
    union() {
    translate([0,0,Cap[2]/2]) // main body column
    cube(Cap,center=true);
    translate([-Cap[0]/2,0,Cap[2]]) // rounded cap
    rotate([0,90,0])
    cylinder(d=Cap[1],h=Cap[0],$fn=8*4);
    translate([Cap[0]/2 – Protrusion,0,(Cap[2] + Cap[1]/2)/2]) // text
    rotate([0,90,0])
    linear_extrude(height=ThreadWidth,convexity=10)
    text("Mary Nisley",halign="center",valign="center",size=0.5*Cap[1],font="Arial");
    }
    hull() // stem + blade clearance
    for (i=[-1,1] , j=[-1,1])
    translate([i*(HandleStem[0]/2 – StemRadius),j*(HandleStem[1]/2 – StemRadius),-Protrusion])
    cylinder(r=StemRadius,h=Cap[2] + Protrusion,$fn=4*4);
    hull() { // entry taper
    for (i=[-1,1] , j=[-1,1])
    translate([i*(HandleEntry[0]/2 – StemRadius),j*(HandleEntry[1]/2 – StemRadius),0])
    sphere(r=StemRadius,$fn=4*4);
    for (i=[-1,1] , j=[-1,1])
    translate([i*(HandleStem[0]/2 – StemRadius),j*(HandleStem[1]/2 – StemRadius),HandleEntry[2] – StemRadius])
    sphere(r=StemRadius,$fn=4*4);
    }
    }