After a decade of stacking the plates in the dishwasher the same way every time, the flexible coating over the steel rods has worn through:

We can’t stack them the other way, because the rotor spray rattles them unmercifully, and a fix is in order. Apparently, one can purchase touchup paint for this very purpose, but what’s the fun in that? Besides, I’d expect it to wear through even faster than the original coating, if only because adhesion is never as good as you’d expect from reading the label.
So this little dingus fits around a vertical pin and rests atop the horizontal rod, with the edge of the plate nestled into the joint between the two cylinders:

Being very small, they build best in large groups:

The horizontal half-cylinders require internal support, shown here adjacent to the protector for easy viewing:

Those fins just barely clear the interior of the horizontal cylinder, so the two parts don’t bond together very well (that’s the ideal condition, of course). The flat plate glues the support fins firmly to the build platform, which is easier to see on these somewhat shorter prototypes with a layer or two of orange filament on their bottoms:

The support chops out neatly with a repurposed nail set punch:

Actually, I stood each one vertically on an aluminum chunk, held the punch in place with finger pressure, and whacked it with a small brass hammer. The OpenSCAD code now adds a small tab each end to help align the punch for the first whack.
The rod (vertical) hole came out just about exactly the right size (admittedly, with a 0.4 mm HoleFinagle adjustment), but required a pass with a drill in a pin vise to clear out the Reversal Zittage. The result slides easily over undamaged pins, but some pins had rust at either the top or bottom that required a bit of cleanup. This is a trial fit:

I put a blob of acrylic caulk on the abraded spots to (attempt to) seal them from further damage, then squished the protectors in place. The dishwasher demonstrated that it’s perfectly capable of blasting an unglued protector (without a plate) up and off the pin, ingesting it into the trash grinder, chewing it up, and spitting the pieces down the drain. Lost a couple of prototypes before I figured that out, too.
Ya learn something new every day…
The OpenSCAD source code:
// Dishwasher rack protector
// Ed Nisley KE4ZNU - Jan 2012
Layout = "Show"; // Show Build Support
Support = true; // true to add support inside rod half-cylinder
include </home/ed/Thing-O-Matic/lib/visibone_colors.scad>
//-------
//- Extrusion parameters must match reality!
// Print with +0 shells
// Infill = 1.0, line, perpendicular to Bar axis on first bridge layer
// Multiply = at least four copies to prevent excessive slowdown
ThreadThick = 0.25;
ThreadWidth = 2.0 * ThreadThick;
HoleFinagle = 0.4;
HoleFudge = 1.00;
function HoleAdjust(Diameter) = HoleFudge*Diameter + HoleFinagle;
Protrusion = 0.1; // make holes end cleanly
function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
function IntegerMultipleMin(Size,Unit) = Unit * floor(Size / Unit);
//-------
// Dimensions
PinDia = 4.0 + 0.5; // upright pin diameter + clearance
PinRadius = PinDia/2;
PinSpace = 35.0; // pin spacing along bar
PinOC = 3.4; // bar center to pin center
PinTubeLength = 15.0; // length of upright tube along pin
BarDia = 4.7 + 0.2; // horizontal bar diameter + clearance
BarRadius = BarDia/2;
BarTubeLength = PinSpace - 5.0; // length of horizontal half tube along bar
TubeWall = 4*ThreadWidth; // wall thickness -- allow for fill motion
TubeSides = 4 * 4; // default side count for tubes (in quadrants)
$fn = TubeSides;
SupportClear = 0.85; // support structure clearance fraction
//-------
module PolyCyl(Dia,Height,ForceSides=0) { // based on nophead's polyholes
Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
FixDia = Dia / cos(180/Sides);
cylinder(r=HoleAdjust(FixDia)/2,h=Height,$fn=Sides);
}
module ShowPegGrid(Space = 10.0,Size = 1.0) {
Range = floor(50 / Space);
for (x=[-Range:Range])
for (y=[-Range:Range])
translate([x*Space,y*Space,Size/2])
%cube(Size,center=true);
}
//--------
// Support under bar tube shells
module SupportStructure() {
color("cyan")
difference() {
union() {
for (Index=[-4:4])
translate([Index*(BarTubeLength/8.5),0,0])
rotate([0,90,0])
rotate(180/TubeSides)
cylinder(r=SupportClear*BarRadius,h=2*ThreadWidth,center=true);
rotate([0,90,0])
rotate(180/TubeSides)
cylinder(r=SupportClear*BarRadius,h=10*ThreadWidth,center=true);
translate([0,0,ThreadThick])
cube([(BarTubeLength + 4*ThreadWidth),BarRadius,2*ThreadThick],center=true);
}
translate([0,0,-(BarRadius + Protrusion)/2])
cube([(BarTubeLength + 2*Protrusion),
BarDia,
(BarRadius + Protrusion)],center=true);
}
}
//-------
// Put it together
module Protector() {
difference() {
union() {
translate([0,PinOC,0])
rotate(180/TubeSides)
cylinder(r=(PinDia + 2*TubeWall)/2,h=PinTubeLength);
translate([-BarTubeLength/2,0,0])
rotate([0,90,0])
rotate(180/TubeSides)
cylinder(r=(BarDia + 2*TubeWall)/2,h=BarTubeLength);
}
translate([0,PinOC,-Protrusion])
rotate(180/TubeSides)
PolyCyl(PinDia,(PinTubeLength + 2*Protrusion),TubeSides);
translate([-BarTubeLength/2,0,0])
rotate([0,90,0])
rotate(180/TubeSides)
translate([0,0,-Protrusion])
cylinder(r=BarRadius,h=(BarTubeLength + 2*Protrusion));
translate([0,0,-(BarRadius + TubeWall + Protrusion)/2])
cube([(BarTubeLength + 2*Protrusion),
BarTubeLength,
(BarRadius + TubeWall + Protrusion)],center=true);
}
}
//-------
// Build it!
ShowPegGrid();
if (Layout == "Support")
SupportStructure();
if (Layout == "Show") {
Protector();
translate([0,-10,0])
SupportStructure();
}
if (Layout == "Build")
rotate(90) {
if (Support)
SupportStructure();
Protector();
}
Comments
11 responses to “Dishwasher Rack Protectors”
That’s brilliant. Sell those in blister packs in grocery stores.
Gotta build me a bot farm, yes I must…
I suspect economics will suggest injection molding would provide a better profit margin than using 3-d printing for manufacturing.
Which explains why MBI uses such parts inside a 3D printer: it makes no sense to use expensive and fiddly printers (and operators!) for mass-produced parts. Prototypes: yup. Production: nope.
On the other paw, that build plate full of protectors was half of my production run… [grin]
Ed, I was skeptical too, but have had unexpectedly good luck with Performix ReRack. I wire-brushed the rust out, touched up all the spots in the same places you have plus various chips on the pins, and let it cure, and it’s doing fine. You might try ReRack for the tops of the pins — although of course you could design caps for them as well.
I do love your dishwasher shinguards, though! :-)
Good surface preparation is always the key!
Next trip out, I’ll pick up a bottle and try it on the pin tips, because there really isn’t enough room for a fancy cap up there. Not to mention that we’re sure they’d wind up in the trash grinder after a while, no matter how much adhesive I apply.
If the rack survives another decade, the rest of the dishwasher will be junk…
I’ll add that I picked a time I could do without the dishwasher for 24 hours or more and applied many coats of goop.
I’m having trouble visualizing how the tab on the end of the support helps align the punch.
A nail set punch has a concave end that fits neatly over the tab, with a fairly sharp edge that lines up nicely around the inside edge of the protector!
Stand one semicircular end at the edge of a hole in the aluminum block, put the concave end of the punch over the tab with the edge of the punch lined up with the edge of the support, and give it a whack: the support should pop out.
Admittedly, when the support didn’t pop out, then I had to chop it out in sections, using the punch as a circular chisel… a process that would have gone much better with three hands.
[…] rack protectors have gone missing over the last few months, presumably being digested by the dishwasher’s […]
[…] simplified version of the Dishwasher Rack Protector, minus the support […]