-
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 While it’s possible to buy replacement caps, this seemed more appropriate:

Humidifier bottle cap reinforcement – installed It’s PETG-CF, of course:

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 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 The other side shows the crack over on the right:

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