Skip to content

Instantly share code, notes, and snippets.

@ednisley
Created December 1, 2025 00:07
Show Gist options
  • Select an option

  • Save ednisley/94c8c9dc78b22e662ee0a7a50d0bb9a0 to your computer and use it in GitHub Desktop.

Select an option

Save ednisley/94c8c9dc78b22e662ee0a7a50d0bb9a0 to your computer and use it in GitHub Desktop.
OpenSCAD source code: Sears Humidifier bottle cap reinforcement
// Humidifier bottle cap reinforcement
// Ed Nisley - KE4ZNU
// 2025-11-29
include <BOSL2/std.scad>
Layout = "Show"; // [Show,Build,Cap]
/* [Hidden] */
Protrusion = 0.1;
//-----
// Bottle cap/valve
// Collects all the magic numbers in one place
Left = false; // the caps are different, of course
CapODs = Left ? [43.0,42.1] : [43.1,42.9]; // [0] = base of cap
CapHeight = 10.0;
Notch = [0.6,2.0,8.5 + Protrusion]; // Z + hack for slight angle
NumRibs = 24;
RibAngle = 90 - atan(CapHeight/((CapODs[0]-CapODs[1])/2));
echo(RibAngle=RibAngle);
$fn=2*NumRibs;
module Cap() {
difference() {
cyl(CapHeight,d1=CapODs[1],d2=CapODs[0],anchor=BOTTOM);
for (a=[0:NumRibs-1])
zrot(a*360/NumRibs)
right(CapODs[1]/2) down(Protrusion)
yrot(RibAngle)
cuboid(Notch,anchor=RIGHT+BOTTOM);
}
}
//-----
// Reinforcing ring
RingThick = 3.0;
module Ring() {
render()
difference() {
tube(CapHeight,od=CapODs[0] + 2*RingThick,id=CapODs[1] - 2*Notch.x,anchor=BOTTOM);
Cap();
}
}
// Build things
if (Layout == "Cap")
Cap();
if (Layout == "Build" || Layout == "Show")
Ring();
@ednisley
Copy link
Author

ednisley commented Dec 1, 2025

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