-
Hose Fitting Grip Redux
Replacing the sun-rotted hose for Mary’s garden called for a new grip, because of course all hose fittings are different:

Garden Hose Fitting Grip – installed The ridges on the fitting looked close enough to half-cylinders and the fitting wasn’t tapered enough to worry about:

Hose Fitting Grip – simple – solid model The OD came from the original grip, because it neatly fits Mary’s hand, and the nubbles are round-end cylinders.
Got it done the day after the old hose split, glued it on the hose with E6000+, installed it the next morning, whereupon the weather delivered three inches of rain. It’ll get screwed onto the faucet in a few days …
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// Hose fitting grip – simple plastic extrusion // Ed Nisley – KE4ZNU // 2025-07-30 include <BOSL2/std.scad> /* [Hidden] */ HoleWindage = 0.2; Protrusion = 0.1; NumSides = 3*2*4; $fn=NumSides; ID = 0; OD = 1; LENGTH = 2; NumRibs = 8; RibOD = 3.0; GripOA = [32.5,66.0,16.0]; KnobBallOD = 6.0; union() { difference() { tube(GripOA[LENGTH],id=GripOA[ID],od=GripOA[OD],orounding=2.0,anchor=BOTTOM); for (a = [0:NumRibs-1]) rotate(a*360/NumRibs) right(GripOA[ID]/2) down(Protrusion) cyl(GripOA[LENGTH] + 2*Protrusion,d=RibOD,anchor=BOTTOM); } for (a = [0:NumSides-1]) rotate(a*360/NumSides) right(GripOA[OD]/2) up(GripOA[LENGTH]/2) cyl(GripOA[LENGTH]/2,d=KnobBallOD,rounding=KnobBallOD/2); }