Skip to content

Instantly share code, notes, and snippets.

@ednisley
Created August 10, 2025 22:14
Show Gist options
  • Save ednisley/9c6c5fa26e67b39f79311c6632622c69 to your computer and use it in GitHub Desktop.
Save ednisley/9c6c5fa26e67b39f79311c6632622c69 to your computer and use it in GitHub Desktop.
OpenSCAD source code: Multi-material 3D printed Delta 1400 shower knob insert
// Delta shower faucet knob insert
// Ed Nisley - KE4ZNU
// 2025-08-09
include <BOSL2/std.scad>
/* [Hidden] */
HoleWindage = 0.2;
Protrusion = 0.01;
NumSides = 4*3*4;
$fn=NumSides;
ID = 0;
OD = 1;
LENGTH = 2;
LabelFN = "Shower Fauce Knob Insert.svg";
LabelThick = 0.8;
KnobAngle = 30; // horizontal to index features
IndexWidth = 2.5; // slot to fit knob locating features
Insert = [33.5,37.7,7.0]; // slides into knob
FaceThick = 1.6;
//----------
// Construct it in the obvious orientation
// Flip it in the slicer to preserve the artwork for separate filaments!
difference() {
union() {
tube(Insert[LENGTH],id=Insert[ID],od=Insert[OD],anchor=BOTTOM) position(TOP)
cyl(FaceThick,d=Insert[OD],anchor=TOP);
}
zrot(KnobAngle)
down(Protrusion)
cube([2*Insert[OD],IndexWidth,Insert[LENGTH] - FaceThick + Protrusion],anchor=BOTTOM);
}
// Must be handled separately to produce separate objects for different filaments
up(Insert[LENGTH] - LabelThick + 0.01)
color("DarkSlateGray")
linear_extrude(LabelThick)
import(LabelFN,center=false,layer="Angle Indicator");
up(Insert[LENGTH] - LabelThick + 0.01)
color("Red")
linear_extrude(LabelThick)
import(LabelFN,center=false,layer="Hot Arc");
up(Insert[LENGTH] - LabelThick + 0.01)
color("Blue")
linear_extrude(LabelThick)
import(LabelFN,center=false,layer="Cold Arc");
@ednisley
Copy link
Author

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