The Smell of Molten Projects in the Morning

Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.

Sears Humidifier Bottle Cap Reinforcement

In the midst of the humidification season, I spotted this while refilling one of the ancient Sears Humidifier bottles:

Humidifier bottle cap reinforcement - crack
Humidifier bottle cap reinforcement – crack

While it’s possible to buy replacement caps, this seemed more appropriate:

Humidifier bottle cap reinforcement - installed
Humidifier bottle cap reinforcement – installed

It’s PETG-CF, of course:

Bottle cap reinforcement - solid model
Bottle cap reinforcement – solid model

The shape is a ring with a simplified model of the cap removed from the middle:

Bottle cap reinforcement - lid solid model
Bottle cap reinforcement – lid solid model

It fits snugly over the cap atop a thin layer of JB PlasticBonder that should hold it in place forevermore:

Humidifier bottle cap reinforcement - bottom view
Humidifier bottle cap reinforcement – bottom view

The other side shows the crack over on the right:

Humidifier bottle cap reinforcement - top view
Humidifier bottle cap reinforcement – top view

Close inspection showed a few smaller cracks, so that cap was likely an original.

I made another ring for the other cap, only to find it was slightly larger with a black washer inside: apparently a previous owner had replaced one of the caps. The OpenSCAD program has measurements for both, not that you have either.

The OpenSCAD source code as a GitHub Gist:

// 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();

Comments

Spam comments get trashed, so don’t bother. Comment moderation may cause a delay.