//$fn=20; $fs=1/2; // minimal fragment size module motor_hole(hh) { intersection() { cylinder(h=hh,r=4.9/2); translate([-2.5,-1.5,0]) cube([5,2.9,hh]); } } module gear_hole() { translate([0,10,1])cylinder(r=13/2,h=5.1); translate([0,10,-1])cylinder(r=10/2,h=3); translate([0,21,3]) rotate([90,0,0])cylinder(r=2.5/2,h=22); translate([4,10,3]) rotate([0,90,0])cylinder(r=2.5/2,h=7); } module sector(rr,fi1,fi2,hh) { intersection() { cylinder(r=rr,h=hh); translate([-100,-50,-10])cube([100,100,100]); } } module mount1(len=100) { difference() { union(){ translate([10,0,0])cube([len,20,6]); translate([10,10,0])cylinder(r=10,h=6); translate([10,10,0])cylinder(r=6,h=12); translate([len+10,10,0])cylinder(r=10,h=6); //translate([10,10,0])cylinder(r=20,h=1); //for optoend translate([10,10,0])sector(rr=20,hh=1,fi1=0,fi2=360); //for optoend } union() { translate([10,10,-1]) motor_hole(hh=14); translate([len+10,0,0]) gear_hole(); } } } module mount2(len=100) { difference() { union(){ translate([10,0,0])cube([len,20,6]); translate([10,10,0])cylinder(r=10,h=6); translate([len+10,10,0])cylinder(r=10,h=6); } union() { translate([len+10,0,0]) gear_hole(); translate([10,10,-1])cylinder(r=4/2,h=12); translate([10,10,-10])cylinder(r=3.35*7/5.5,h=12, $fn=6); //m4? } } } module mount3(len=100) { difference() { union(){ translate([10,0,0])cube([len+10,20,6]); translate([10,10,0])cylinder(r=10,h=6); } union() { translate([10,10,-1])cylinder(r=4/2,h=12); translate([len+10,10,-1])cylinder(r=4/2,h=12); translate([len+10,10,4])cylinder(r=3.35*7/5.5,h=12, $fn=6); //m4? translate([len+10+5,10-5,-1])cylinder(r=3/2,h=12); translate([len+10+5,10+5,-1])cylinder(r=3/2,h=12); } } } module mount4() { difference() { union(){ //translate([0,0,0])cube([10,20,2]); translate([8,0-7.5,0])cube([2,35,16]); translate([8-10+4+2,-3.0,2-2])cube([10-4,26,16]); translate([8-10,-3.0,2-2])cube([10-4,26,16-4-2]); translate([2+2,23,12-2])rotate([90,0,0])cylinder(r=4+2,h=26); //translate([-10,-4.5,9]) rotate([0,90,0])cylinder(r=1,h=21); //translate([-10,-4.5+29,9]) rotate([0,90,0])cylinder(r=1,h=21); } union() { translate([0,10,-1])cylinder(r=4/2,h=12); translate([0-4,10-2,-1])cube([4,4,12]); translate([5,10-5,-1])cylinder(r=3/2,h=12); translate([5,10+5,-1])cylinder(r=3/2,h=12); translate([5,10+5,+2])cylinder(r=3.35,h=12,$fn=6); //nut M3 translate([5,10-5,+2])cylinder(r=3.35,h=12,$fn=6); //nut M3 translate([8-0.5-12,-1.5,4])cube([3+30,23,13]); translate([-10,-4.5,9]) rotate([0,90,0])cylinder(r=1,h=21); translate([-10,-4.5+29,9]) rotate([0,90,0])cylinder(r=1,h=21); } } } module mount5() { difference() { union() { cylinder(r=12,h=20); translate([10-2,-2.5,0])cube([30-10,5,20]); translate([10-2,-2.5,0])cube([30,5,20-10]); translate([33-5,2.5,15-5])rotate([90,0,0])cylinder(r=10,h=5); translate([0,0,10])rotate([90,0,0])cylinder(r=7.0,h=14); translate([0,0,10])rotate([90,0,120])cylinder(r=7.0,h=14); translate([0,0,10])rotate([90,0,-120])cylinder(r=7.0,h=14); } translate([0,0,-1])cylinder(r=7,h=22); translate([0,0,2])cylinder(r=7+1,h=22); translate([32,5,10])rotate([90,0,0])cylinder(r=3.7/2,h=10); translate([0,0,10])rotate([90,0,0])cylinder(r=3.0/2,h=30); translate([0,0,10])rotate([90,0,120])cylinder(r=3.0/2,h=30); translate([0,0,10])rotate([90,0,-120])cylinder(r=3.0/2,h=30); translate([0,0,10])rotate([90,0,0])cylinder(r=3.35,h=11,$fn=6); translate([0,0,10])rotate([90,0,120])cylinder(r=3.35,h=11,$fn=6); translate([0,0,10])rotate([90,0,-120])cylinder(r=3.35,h=11,$fn=6); } } module mount6() { difference() { union() { cylinder(r=7.4,h=3+17); cylinder(r=12,h=3); } translate([0,0,-1])cylinder(r=6,h=25); rotate([0,0,0]) translate([5,0,20])cube([20,3,20],center=true); rotate([0,0,120])translate([5,0,20])cube([20,3,20],center=true); rotate([0,0,-120])translate([5,0,20])cube([20,3,20],center=true); } } /* translate([-60,60,0])rotate([0,0,-90])mount1(len=50); translate([-5,0,0])rotate([0,0,90])mount1(len=50); translate([30,0,0])rotate([0,0,90])mount2(len=100); translate([60,0,0])rotate([0,0,90])mount3(len=100); translate([90,0,0])rotate([0,0,90])mount4(); translate([-35,90,0])mount5(); translate([-10,115,0])mount6(); translate([-100,100,0]) sector(rr=20,hh=1,fi1=0,fi2=360); */ //rotate([0,0,-90])mount1(len=50); //rotate([0,0,90])mount2(len=100); //rotate([0,0,90])mount3(len=100); //rotate([0,0,90])mount4(); //mount5(); mount6();