M0UNTAIN 0F C0DE

Replacement Fridge Door Rail Clip

3D model

This is a replacement clip for the bar which runs across the door of a small fridge. The kind of bar which stops your milk from falling out.

$fn=70;

module angledBottom() {
    hull() {
        translate([0,0,-1.5/2]) {
            cube([30,0.01,1.5], center=true);
        }

        translate([0,10,-3.5/2]) {
            cube([22.5,0.01,3.5], center=true);
        }

        translate([0,10,-1.5/2]) {
            cube([30,0.01,1.5], center=true);
        }
    }
}

module curvedInterface() {
    difference() {
        translate([0,5,4.5/2]) {
            cube([30,10,4.5], center=true);
        }
        
        hull() {
            translate([-40/2,6.5-3.5,3.5]) {
                rotate([0,90,0]) {
                    cylinder(r=3.5, h=40);
                }
            }
            
            translate([0,-10,3.5]) {
                cube([40,10,7], center=true);
            }
            
            translate([0,1.5,10]) {
                cube([40,10,7], center=true);
            }
        }
    }
}

module  clip() {
    hull() {
        translate([0,6.5,20.5]) {
            rotate([0,90,90]) {
                cylinder(d=10, h=2);
            }
        }
        
        translate([0,6.5+(3.5/2),4-1]) {
            cube([18,3.5,1], center=true);
        }
    }
    
    module knub() {
        module shaft() {
            rotate([0,90,90]) {
                cylinder(d=5, h=3.5);
                translate([0,0,-2.5]) cylinder(d2=5, d1=2, h=2.5);
            }
        }
        
        module relief() {
            translate([0,-2,0]) cube([10,10,0.8], center=true);
        }
        
        translate([0,3,20.5]) {
            difference() {
                shaft();
                relief();
            }
        }
    }
    
    knub();
}

module rail() {
    module side() {
        translate([0,0,-0.5]) {
            translate([0,20,1.5]) {
                cube([6.6,20,2], center=true);
            }
            translate([-1,10,-3/2]) {
                cube([2.2,16,5.25]);
            }
        }
    }
    
    module centre() {
        translate([0,20,1]) {
            cube([9.8,20,2], center=true);
        }
    }
    
    translate([10,0,0]) side();
    centre();
    translate([-10,0,0]) side();
}

rail();

//%translate([0,0,-3.5]) cube([20,20,3.5]);


angledBottom();
curvedInterface();
clip();