-
Hydrant Wrench

Fire Hydrant Wrench The Slic3r preview shows a bit more detail:

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:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters// 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.