$fn=100; MS=1.01; //motor scale adjustment MP=0.05; //motor position adjustment //ASSEMBLED 1 //gearbox(); //translate([-3.25,25.25,34.25]) rotate([90,0,90]) wheel(); //translate([0,0,47]) rotate([-180,0,0]) worm(); //ASSEMBLED 2 //translate([-14,-9,20]) rotate([0,0,90]) head_top(); //translate([26,-9,13]) rotate([0,0,90]) head_bottom(); //translate([-37.5,23.25,10]) rotate([90,0,0]) clip(); // //translate([16,20,28.5]) rotate([-90,0,180]) gearbox(); //translate([-44,20,28.5]) rotate([-90,0,180]) gearbox(); // //translate([10,30,21.5]) rotate([0,-90,180]) battery_pack(); //translate([-38,84,21.5]) rotate([0,-90,0]) battery_pack(); // //translate([31,8,61]) rotate([90,0,-90]) arm(); //translate([-55,8,61]) rotate([90,0,-90]) arm(); // //translate([-39,23,13]) cube([50,100,2]); //PCB // //translate([13,-14,3]) rotate([90,0,90]) wheel(); //translate([16,-25,28]) rotate([-90,0,0]) worm(); //translate([-47,-14,3]) rotate([90,0,90]) wheel(); //translate([-44,-26,28]) rotate([-90,0,0]) worm(); // //translate([-14,120,14]) rotate([-90,0,0]) tail(); //PRINT //translate([-40,0,0]) worm(); //translate([50,0,0]) gearbox(); //translate([0,0,0]) wheel(); //translate([-20,0,0]) worm_flat(); //translate([-120,0,0]) clip(); //translate([0,0,0]) head_top(); //translate([0,0,0]) head_bottom(); battery_pack(); //arm(); //tail(); module tail(){ difference(){ translate([0,0,8]) sphere(r=10); translate([-15,-15,-10]) cube([30,30,10]); translate([-15,-1,-12]) cube([30,2,15]); } } module arm(){ difference(){ union(){ translate([0,0,0]) cube([40,4,4]); translate([38,0,0]) rotate([0,0,-45]) cube([40,4,4]); translate([-12,-14,0]) rotate([0,0,45]) cube([20,4,4]); translate([-12,-14,0]) rotate([0,0,-180]) cube([4,30,4]); translate([-13,-12.5,0]) cylinder(r=3.25,h=4); translate([0,1.5,0]) cylinder(r=3.25,h=4); translate([39,1.5,0]) cylinder(r=3.25,h=4); } translate([63,-18,-1]) rotate([0,0,-70]) cube([20,20,10]); translate([-13,-12.5,-1]) cylinder(r=1.2,h=7); translate([0,1.5,-1]) cylinder(r=1.2,h=7); translate([39,1.5,-1]) cylinder(r=1.2,h=7); translate([57.5,-24,-1]) rotate([0,0,-45]) cube([1.5,4,7]); translate([60,-10,2]) rotate([90,0,-45]) cylinder(r=.75,h=20); translate([58,-5,2]) rotate([90,0,-45]) cylinder(r=.75,h=20); } translate([-16,-47,0]) cube([8,4,4]); } module clip(){ difference(){ translate([1,0,0]) cube([45,8,7]); translate([0,-10,3]) cube([5,20,8]); translate([42,-10,3]) cube([5,20,8]); translate([-5,3,-3]) cube([75,2,5]); translate([16-2.5,3,-5]) cube([20,2,15]); } } module worm_flat(){ translate([0,20,0]) worm_bottom(); worm_top(); } module worm_top(){ difference(){ translate([-40,0,0]) rotate([0,90,0]) worm(); translate([-50,-10,-10]) cube([50,20,10]); } } module worm_bottom(){ difference(){ translate([-40,0,0]) rotate([180,0,0]) rotate([0,90,0]) worm(); translate([-50,-10,-10]) cube([50,20,10]); } } module worm(){ difference(){ translate([16.45,0,-2]) rotate([-90,0,0]) import("Worm_Gear.stl"); translate([-10,-10,-18]) cube([20,20,20]); translate([-10,-4,25]) cube([20,10,10]); translate([0,0,7]) cylinder(r=1.4, h=25); } translate([0,0,0]) cylinder(r=6, h=2); translate([0,0,0]) cylinder(r=2, h=17); } module gearbox(){ difference(){ union(){ translate([-15,-12,0]) cube([30,42,4]); translate([-7.5,20,0]) cube([15,10,40]); } translate([-3.5,15,-1]) cube([7,30,50]); translate([-25,25.2,34.25]) rotate([0,90,0]) cylinder(r=1.5, h=50); translate([0,MP,0]) scale([S,S,S]){ difference(){ translate([0,0,-0.5]) cylinder(r=10, h=14); translate([-15,-17.5,-1]) cube([30,10,16]); translate([-15,7.4,-1]) cube([30,10,16]); } } translate([11,10,-5]) cube([15,30,20]); translate([-26,10,-5]) cube([15,30,20]); translate([20,-30,-5]) rotate([0,0,45]) cube([20,20,20]); translate([-20,-30,-5]) rotate([0,0,45]) cube([20,20,20]); translate([-40,32,-19]) rotate([45,0,0]) cube([80,20,20]); } difference(){ translate([-7.5,12,4]) rotate([-45,0,0]) cube([4,10,15]); translate([-15,15,-10]) cube([20,20,10]); } difference(){ translate([3.5,12,4]) rotate([-45,0,0]) cube([4,10,15]); translate([0,15,-10]) cube([20,20,10]); } } module leg(){ scale([1,1.05,1]) translate([5,5,0]) rotate([0,0,30]) difference(){ translate([0,5,0]) cylinder(r=10, h=6.4); translate([0,5,-1]) cylinder(r=8, h=8); translate([0,-10,-1]) cube([10,30,8]); translate([-20,-10,-1]) cube([30,10,8]); } } module wheel(){ difference(){ cylinder(r=4, h=6.5); translate([0,0,-1]) cylinder(r=1.6, h=9); } difference(){ import("Large_Gear.stl"); translate([0,0,-1]) cylinder(r=16.5, h=7); } leg(); rotate([0,0,90]) leg(); rotate([0,0,180]) leg(); rotate([0,0,270]) leg(); } module head_bottom(){ translate([0,40,0]){ hull(){ translate([0,0,0]) cylinder(r=10, h=3); translate([15,8,0]) cylinder(r=10, h=3); translate([15,-8,0]) cylinder(r=10, h=3); } translate([5,10,0]) cylinder(r=1.5, h=6); translate([5,-10,0]) cylinder(r=1.5, h=6); translate([-3,6,0]) cylinder(r=1.5, h=6); translate([-3,-6,0]) cylinder(r=1.5, h=6); translate([-5,0,0]) cylinder(r=1.5, h=6); translate([15,-10,2]) rotate([0,10,0]) cube([8,20,5]); translate([22,-9,0]) cube([5,18,2]); } } module head_top(){ difference(){ hull(){ translate([0,0,0]) cylinder(r=10, h=5); translate([15,8,0]) cylinder(r=10, h=5); translate([15,-8,0]) cylinder(r=10, h=5); translate([0,-2.55,0]) cube([20,5,12]); } translate([0,-12,8]) rotate([0,20,0]) rotate([0,90,30]) cylinder(r=4, h=10); translate([0,12,8]) rotate([0,20,0]) rotate([0,90,-30]) cylinder(r=4, h=10); translate([8,-8,-1]) cylinder(r=3, h=8); translate([8,8,-1]) cylinder(r=3, h=8); translate([5,-2.55,-7]) cube([30,5,12]); //translate([5,-10,-11]) cube([5,20,12]); } } module battery_clip(){ difference(){ translate([-10,-5,0]) cube([20,5,10.5]); translate([0,2,8]) rotate([90,0,0]) cylinder(r=7, h=10); } } module battery_end(){ difference(){ translate([-5,0,0]) cube([10,4,12.5]); translate([2,10,9.5]) rotate([90,0,0]) cylinder(r=1, h=15); translate([-2,10,9.5]) rotate([90,0,0]) cylinder(r=1, h=15); } } module battery(){ difference(){ translate([-7.5,-58.5,0]) cube([15,61,6]); translate([0,0,8]) rotate([90,0,0]) cylinder(r=7, h=56); translate([-3.5,-58.5,-1]) cube([7,61,6]); } translate([0,-11,0]) battery_clip(); translate([0,-40,0]) battery_clip(); translate([0,0,0]) battery_end(); translate([0,-60,0]) battery_end(); } module battery_pack(){ difference(){ union(){ translate([0,0,0]) battery(); translate([18,0,0]) battery(); translate([-11,-58.5,0]) cube([5,61,4]); translate([24,-58.5,0]) cube([5,61,4]); } translate([-9,-71,-3]) cube([2,90,5]); translate([25,-71,-3]) cube([2,90,5]); //translate([-30,-11,3]) cube([70,11,4]); } difference(){ translate([-11,-58.5,0]) cube([40,61,0.4]); translate([-10,-57,-1]) cube([37,58,2]); } translate([28,1.5,0]) cube([11,1,0.4]); }