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

  • Hydrant Wrench

    Just because I can:

    Fire Hydrant Wrench
    Fire Hydrant Wrench

    The Slic3r preview shows a bit more detail:

    Hydrant Wrench - Slic3r preview
    Hydrant Wrench – Slic3r preview

    Even an inch-thick handle wouldn’t have enough mojo for the task.

    Wikipedia has the equations you need to go from the easily measured “height” (vertex to opposite side) dimension to the pentagon’s “outside radius”, which equals the radius of the circumscribed circle needed by OpenSCAD.

    The OpenSCAD source code as a GitHub Gist:

    // Hydrant Wrench
    // Ed Nisley KE4ZNU – September 2017
    /* [Extrusion] */
    ThreadThick = 0.25; // [0.20, 0.25]
    ThreadWidth = 0.40; // [0.40]
    function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
    Protrusion = 0.01; // [0.01, 0.1]
    HoleWindage = 0.2;
    //- Sizes
    /* [Dimensions] */
    NumFlats = 5; // this is not a variable for this geometry!
    Height = 39.0; // pentagon flat-to-vertex measurement
    Side = Height / 1.539;
    echo(str("Side:",Side));
    Radius = Side / 1.176;
    echo(str("Radius: ",Radius));
    WrenchDia = 2*Radius; // pentagon circumcircle diameter
    echo(str("Wrench dia:",WrenchDia));
    JawWidth = 10.0;
    JawOD = 2*JawWidth + WrenchDia;
    echo(str("Jaw OD: ",JawOD));
    WrenchThick = 5.0;
    HandleLength = 2*JawOD;
    HandleWidth = 25.0;
    //- Build things
    difference() {
    linear_extrude(height=WrenchThick,convexity=4) {
    hull() { // taper wrench body to handle
    circle(d=JawOD);
    translate([0.75*JawOD,0,0])
    circle(d=HandleWidth);
    }
    hull() { // handle
    translate([0.75*JawOD,0,0])
    circle(d=HandleWidth);
    translate([HandleLength,0,0])
    circle(d=HandleWidth);
    }
    }
    translate([0,0,-Protrusion])
    rotate(180/NumFlats)
    cylinder(d=WrenchDia,h=(WrenchThick + 2*Protrusion),$fn=NumFlats);
    translate([WrenchDia,0,WrenchThick – 3*ThreadThick])
    linear_extrude(3*ThreadThick + Protrusion,convexity=10)
    text(text=str("Fire Hydrant!"),size=8,spacing=1.20,font="Arial",halign="left",valign="center");
    }

    Sorry ’bout that … had to do it.