module all_parts(){ difference(){ union(){ % import( "/Users/lgilpin/Desktop/Longrunner_KY-66_Servo_Motor_Mount/files/longrunner-ky66.stl"); * translate([-16.3,-6.3,-2])cube([35,18.4,24]); x_offset = -16.3; translate([x_offset,6,0])cube([30,6,18.5]); * translate([x_offset,-6.4,0])cube([30,16,2.53]); * translate([x_offset,-6.4,0]) cube([4.8,14,18.5]); translate([x_offset-2,-4.5,3]) cube([8,9,5]); // to take out translate([11.5,-6.4,0]) cube([4.8,18.4,18.5]); * bottom_holes(); } * union(){ // holes for stuff translate([4,10,13]) cylinder(h=10, r=1.4, $fn=50); translate([-10,10,13]) cylinder(h=10, r=1.4, $fn=50); translate([-10,5,8]) rotate([-90,0,0]) cylinder(h=10, r=1.4, $fn=50); translate([4,5, 8]) rotate([-90,0,0]) cylinder(h=10, r=1.4, $fn=50); } } } module box_parts(offset){ x_offset = -16.3; motor_height = 18.5; full_height = 31; difference(){ union(){ translate([x_offset,7,0])cube([32.6,5,full_height]); // need to measure! translate([x_offset,-6.4,0])cube([30,16,2.53]); // subtract 2.5 for the top translate([x_offset,-6.4,0]) cube([4.8,14,motor_height]); translate([11.5,-6.4,0]) cube([4.8,18.4,motor_height]);} union(){ translate([x_offset-2,-4.5,3]) cube([8,9,5]); // to take out bottom_holes(.9); other_holes(1.4, full_height); } } } // small bottom holes module bottom_holes(radius){ translate([-14,0,16]) cylinder(h=4, r=radius, $fn=50); translate([14,0,16]) cylinder(h=4, r=radius, $fn=50); } module other_holes(radius, height){ // big bottom holes translate([4,9.5,height-3.5]) cylinder(h=10, r=radius, $fn=50); translate([-8,9.5,height-3.5]) cylinder(h=10, r=radius, $fn=50); * translate([0,0,height])cylinder(h=20, r=radius, $fn=50); // knit through holes translate([-8,5,8]) rotate([-90,0,0]) cylinder(h=10, r=radius, $fn=50); translate([4,5, 8]) rotate([-90,0,0]) cylinder(h=10, r=radius, $fn=50); } module make_my_own(){ translate([-16.3,6,0])cube([30,6,18.5]); } * all_parts(); * import( "/Users/lgilpin/Desktop/Longrunner_KY-66_Servo_Motor_Mount/files/longrunner-ky66.stl"); box_parts();