Replacement Fridge Door Rail Clip

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