Seam Ripper Cover

The cover for Mary’s favorite seam ripper cracked long ago, has been repaired several times, and now needs a replacement:

Seam Ripper cover - overview
Seam Ripper cover – overview

The first pass (at the top) matched the interior and exterior shapes, but was entirely too rigid. Unlike the Clover seam ripper, the handle has too much taper for a thick-walled piece of plastic.

The flexy thinwall cover on the ripper comes from a model of the interior shape:

Seam Ripper Cover - handle model
Seam Ripper Cover – handle model

It’s not conspicuously tapered, but OpenSCAD’s perspective view makes the taper hard to see. The wedge on top helps the slicer bridge the opening; it’s not perfect, just close enough to work.

A similar model of the outer surface is one thread width wider on all sides, so subtracting the handle model from the interior produces a single-thread shell with a wedge-shaped interior invisible in this Slic3r preview:

Seam Ripper Cover - exterior - Slic3r preview
Seam Ripper Cover – exterior – Slic3r preview

The brim around the bottom improves platform griptivity. The rounded top (because pretty) precludes building it upside-down, but if you could tolerate a square-ish top, that’s the way to go.

Both models consist of hulls around eight strategically placed spheres, with the wedge on the top of the handle due to the intersection of the hull and a suitable cube. This view shows the situation without the hull:

Seam Ripper Cover - handle model - cube intersection
Seam Ripper Cover – handle model – cube intersection

The spheres overlap, with the top set barely distinguishable, to produce the proper taper. I measured the handle and cover’s wall thicknesses, then guesstimated the cover’s interior dimensions from its outer size.

The handle’s spheres have a radius matching its curvature. The cover’s spheres have a radius exactly one thread width larger, so the difference produces the one-thread-wide shell.

Came out pretty nicely, if I do say so myself: the cover seats fully with an easy push-on fit and stays firmly in place. Best of all, should it get lost (despite the retina-burn orange PETG plastic), I can make another with nearly zero effort.

The Basement Laboratory remains winter-cool, so I taped a paper shield over the platform as insulation from the fan cooling the PETG:

Seam Ripper Cover - platform insulation
Seam Ripper Cover – platform insulation

The shield goes on after the nozzle finishes the first layer. The masking tape adhesive turned into loathesome goo and required acetone to get it off the platform; fortunately, the borosilicate glass didn’t mind.

The OpenSCAD source code as a GitHub Gist:

// Cover for old seam ripper
// Ed Nisley - KE4ZNU
// 2019-03
/* [Layout Options] */
Layout = "Build"; // [Show,Build]
Part = "Handle"; // [Handle,CoverSolid,Cover]
/* [Extrusion Parameters] */
ThreadWidth = 0.40;
ThreadThick = 0.25;
HoleWindage = 0.2;
Protrusion = 0.1;
// Dimensions
/* [Dimensions] */
WallThick = 1*ThreadWidth;
CapInsideLength = 48.0;
CornerRadius = 2.0; // handle at base
Base = [11.0,5.5,0.0]; // handle at base
Tip = [8.2,3.7,CapInsideLength]; // inferred at tip
HandleOC = [Base - 2*[CornerRadius,CornerRadius,0.0],
Tip - 2*[CornerRadius,CornerRadius,CornerRadius/2]
NumSides = 2*3*4;
// Useful pieces
// Handle is basically the interior of the cover
module Handle() {
intersection() {
for (i=[-1,1], j=[-1,1], k=[0,1])
translate([0,0,-CornerRadius/2]) // chop tip for better bridging
module CoverSolid() {
for (i=[-1,1], j=[-1,1], k=[0,1])
sphere(r=CornerRadius + WallThick,$fn=NumSides);
module Cover() {
difference() {
cube(2*Base + [0,0,2*CornerRadius],center=true);
// Build things
if (Layout == "Build") {
if (Layout == "Show")
if (Part == "Handle")
else if (Part == "CoverSolid")
else if (Part == "Cover")

6 thoughts on “Seam Ripper Cover

  1. What if it gets lost and the new one that you make doesn’t quite fit because the blue piece has worn down?

    1. Take a look at the OpenSCAD source: the fit is parametric! All I do is tweak the dimensions to match the new reality, whereupon the solid model recomputes itself to produce a perfectly fitting cover.

      I’m lazy that way … [grin]

      Who knows? By then I might get to deploy the fine diamond sharpener, too. Wheee!

  2. Thanks for posting the code – still trying to figure out how to do a cone on top of a cylinder then put a hole in the center – one of these days I guess – always envy your projects – keep up the good work!

    1. The trick is to set the cone down into the cylinder by maybe 0.01, with both having the same number of sides, union() the pair to get a single object, then difference() the hole from the middle. Messy, but workable.

Comments are closed.