use ; use ; $fn=75; width = 30; length= 40; height = 10; module body() { edgeRound=5; translate([edgeRound, edgeRound, 0]) minkowski() { cube([width-edgeRound*2,length-edgeRound*2,height/2]); rotate([0, 0, 0]) cylinder(r=edgeRound,h=height/2); } } main(); module main() { difference() { body(); #translate([(width-getBearingLength())/2,20,height]) bearingHalfHole(); #holes(11); } } // the four mount holes module holes(h,nuts=true,head=false) { translate([7.5,7.5,0]) { rotate([0,-90,0]) M3Hole(h); if (nuts) { rotate([0,-90,0]) M3Nut(5); } if (head) { translate([0,0,h-5]) rotate([0,-90,0]) M3Head(5); } } translate([22.5,7.5,0]) { rotate([0,-90,0]) M3Hole(h); if (nuts) { rotate([0,-90,0]) M3Nut(5); } if (head) { translate([0,0,h-5]) rotate([0,-90,0]) M3Head(5); } } translate([7.5,32.5,0]) { rotate([0,-90,0]) M3Hole(h); if (nuts) { rotate([0,-90,0]) M3Nut(5); } if (head) { translate([0,0,h-5]) rotate([0,-90,0]) M3Head(5); } } translate([22.5,32.5,0]) { rotate([0,-90,0]) M3Hole(h); if (nuts) { rotate([0,-90,0]) M3Nut(5); } if (head) { translate([0,0,h-5]) rotate([0,-90,0]) M3Head(5); } } }