-
Baseboard Radiator Sleds
Cleaning the baseboard radiator fins before moving the houseplants back to their winter abode by the living room window made sense, so I took the trim covers off and vacuumed a remarkable accumulation of fuzz off the top and out from between the fins. The covers had an equally remarkable accumulation of sawdust along their bottom edge, apparently deposited when the previous owners had the floor sanded before they moved in a decade ago.
If you happen to live in a house with baseboard radiators, I’m guessing you never looked inside, because nobody (else) does.
Anyhow, the radiator fins should rest on plastic carriers atop the bent-metal struts also supporting the trim covers, so that they slide noiselessly when the copper pipe expands & contracts during the heating cycle. Over the last six decades, however, the plastic deteriorated and most of the carriers were either missing or broken to the point of uselessness:

Baseboard Radiator Sled – old vs new The shapes on the bottom are replacements made with a 3D printed base (“sled”) and a chipboard wrap around the radiator preventing the fins from contacting the strut:

Baseboard Radiator Sled – OpenSCAD show Although it was tempting to 3D print the whole thing, because plastic, I figured there was little point in finesse: chipboard would work just as well, was much faster to produce, and I need not orient the shapes to keep the printed threads in the right direction.
The Prusa MK4 platform was just big enough for the number of sleds I needed:

Baseboard Radiator Sled – printed The sleds along the left and right edges lost traction as the printing progressed, but everything came out all right.
The OpenSCAD program also produces 2D SVG shapes for the chipboard wraps and adhesive rectangles sticking them to the sleds:

Baseboard Radiator Sled – OpenSCAD SVGs Import those into LightBurn, duplicate using the
Grid Array, Fire The Laser, then assemble:
Baseboard Radiator Sled – assembly The slits encourage the chipboard to bend in the right direction at the right place, so I didn’t need any fancy tooling to get a decent result.
A few rather unpleasant hours crawling around on the floor got the struts bent back into shape and the sleds installed under the fins:

Baseboard Radiator Sled – installed Protip: Gloves aren’t just a good idea, they’re essential.
The trim cover presses the angled chipboard where it should go against the fins. The covers carry shadows of the plastic carriers, suggesting the clearance was tighter than it should have been and thermal cycling put more stress on the plastic than expected. We’ll never know.
Although I’ll make more for the other baseboards as the occasion arises, I hope to never see these again …
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// Baseboard radiator sled // Ed Nisley – KE4ZNU // 2025-10-11 include <BOSL2/std.scad> Layout = "Sled"; // [Show,Build3D,Build2D,Sled,Wrap,Glue] /* [Hidden] */ HoleWindage = 0.2; Protrusion = 0.1; Gap = 5.0; Radiator = [25.0,62.0,50.0]; // X = support base, YZ = radiator element SledBase = [Radiator.x + 10.0,Radiator.y,1.0]; // support under wrap Runner = [SledBase.x – 2.0,3.0,1.6]; // bars contacting radiator support GlueOA = [SledBase.x,SledBase.y] – [2.0,2.0]; // glue sheet Wrap = [SledBase.x,Radiator.y + 1.0,Radiator.z + 1.0]; // chipboard wrap around radiator WrapFlat = [Wrap.x,Wrap.y + 2*Wrap.z]; WrapThick = 1.2; WrapSlit = 0.4; //—– // Sled base module Sled() { cuboid(SledBase,rounding=2.0,edges="Z",anchor=BOTTOM) position(TOP) for (j=[-1,1]) fwd(j*SledBase.y/3) cuboid(Runner,rounding=Runner.z/2,edges="Z",anchor=BOTTOM); } //—– // Glue sheet // Export as SVG for laser cutting module Glue() { rect(GlueOA,rounding=2.0); } //—– // Radiator wrap // Export as SVG for laser cutting module Wrap() { difference() { rect(WrapFlat,rounding=2.0); for (j=[-1,1]) fwd(j*Wrap.y/2) rect([Wrap.x/2,WrapSlit]); } } //—– // Build things if (Layout == "Sled") Sled(); if (Layout == "Glue") Glue(); if (Layout == "Wrap") Wrap(); if (Layout == "Show") { xrot(180) Sled(); color("Yellow",0.6) Glue(); up(1) color("Brown") { cuboid([Wrap.x,Wrap.y,WrapThick],anchor=BOTTOM); for (j=[-1,1]) fwd(j*Wrap.y/2) cuboid([Wrap.x,WrapThick,Wrap.z],anchor=BOTTOM); } } if (Layout == "Build3D") { Sled(); } if (Layout == "Build2D") { left(GlueOA.x/2 + Gap/2) Glue(); right(Wrap.x/2 + Gap/2) Wrap(); }