Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ednisley/5c2024b48a239a83166feb4025e66a14 to your computer and use it in GitHub Desktop.
Save ednisley/5c2024b48a239a83166feb4025e66a14 to your computer and use it in GitHub Desktop.
OpenSCAD source code: Holder extension for Delta shower head
// Delta shower head holder extension
// Ed Nisley - KE4ZNU
// 2025-05-02
include <BOSL2/std.scad>
Layout = "Show"; // [Show,Build,Plug,Socket,Connector]
MountAngle = 30; // between OEM and new holder
MountOffset = 20.0;
/* [Hidden] */
HoleWindage = 0.2;
Protrusion = 0.1;
NumSides = 3*3*4;
ID = 0;
OD = 1;
LENGTH = 2;
Insert = [21.0,24.5,35.0]; // hose connector taper
PlugSize = Insert + [-0.3,-0.3,0]; // … for better fit in OEM holder
Slot = [Insert[OD],14.6,3*Insert[LENGTH]]; // slot on OEM holder, arbitrary length
WallThick = 8.0; // holder wall thickness
Radius = 3.0; // shapely rounding
$fn=NumSides;
//----------
// Define Shapes
module Plug() {
cyl(l=Insert[LENGTH],d1=PlugSize[ID],d2=PlugSize[OD],anchor=BOTTOM);
}
module Socket() {
difference() {
tube(l=Insert[LENGTH],id1=Insert[ID],id2=Insert[OD],wall=WallThick,anchor=BOTTOM);
cuboid(Slot + [0,1.0,0],anchor=LEFT+CENTER);
right(Insert[OD]/2)
cube([Insert[OD],Insert[OD] + 2*WallThick,3*Insert[LENGTH]],anchor=LEFT+CENTER);
}
}
module Connector() {
difference() {
left(MountOffset)
cuboid([MountOffset + Insert[LENGTH]*sin(MountAngle),Slot.y,Insert[LENGTH]*cos(MountAngle)],
anchor=LEFT+BOTTOM);
yrot(MountAngle) right(Insert[ID]/2 + WallThick)
cyl(l=Insert[LENGTH],d1=Insert[ID] + 2*WallThick,d2=Insert[OD] + 2*WallThick,anchor=BOTTOM);
}
}
module Adapter() {
union() {
left(MountOffset)
Plug();
yrot(MountAngle) right((Insert[ID] + 2*WallThick)/2)
Socket();
Connector();
}
}
//----------
// Build things
if (Layout == "Plug")
Plug();
if (Layout == "Socket")
Socket();
if (Layout == "Connector")
Connector();
if (Layout == "Show")
Adapter();
if (Layout == "Build")
up(Insert[ID]/2 + 1*WallThick + Insert[OD]/2)
yrot(90-MountAngle)
Adapter();
@ednisley
Copy link
Author

ednisley commented May 4, 2025

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment