-
Ceiling Lamp Nuts
While cleaning dead bugs out of the ceiling lamps, we discovered the kitchen light was missing one of the three nuts holding its cover in place. While spare nuts might be available, this seemed like a quicker & easier solution:

Ceiling Lamp Nut – bottom view – solid model The stepped interior fits a brass insert with 8-32 threads (not metric, to my utter astonishment) rammed in place with a heat-set tool:

Ceiling Lamp Nut – insert staking Using the nominal diameters seems to work fine, although I’m sure some finesse will be needed with smaller inserts.
Printed four just to be sure, rammed three inserts, and they’re ready:

Ceiling Lamp Nuts – as-built The curved cap matches the original nut through the use of the Chord Equation to get the cap radius as a function of its height (sagitta) & base diameter. Admittedly, it looks kinda grotty with only a dozen layers, but it’s the thought that counts.
The original nuts are heavy knurled steel and the new ones are cheap plastic, but nobody will ever know:

Ceiling Lamp Nut – installed Bonus: now I have two spare steel nuts for the next time …
The OpenSCAD source code:
// Nuts for LED ceiling light fixture // Ed Nisley KE4ZNU // 2024-09-27 KnurlLength = 7.4; KnurlOD = 9.0; CapOD = 9.0; CapHeight = 2.0; CapRadius = (pow(CapHeight,2) + pow(CapOD,2)/4)/(2*CapHeight); echo(CapRadius=CapRadius); NumSides = 1*(2*3*4); $fn = NumSides; Protrusion = 0.1; difference() { union() { intersection() { translate([0,0,KnurlLength + CapHeight - CapRadius]) sphere(r=CapRadius); translate([0,0,KnurlLength]) cylinder(d=2*KnurlOD,h=KnurlLength); } cylinder(d=KnurlOD,h=KnurlLength); } // Ad-hoc 8-32 brass insert sizes cylinder(d=5.5,h=8.0); cylinder(d=5.9,h=5.7); cylinder(d=6.2,h=2.2); translate([0,0,-Protrusion]) cylinder(d=6.2,h=2.2); }