difference(){ union(){ difference(){ //basic shape union(){ cube([13,26,45]); //end stop adapter translate([10+1.4,13+5,45+3.9]){ rotate([180,0,0]){ cylinder(h=4,r1=3, r2=8); } } } //inner free space translate([-0.1,5,-5]){ cube([7.1,16,75]); } //added space for free running belt translate([-0.1,21-4.5,-5]){ cube([9.1,4.5,75]); } //avoiding collision between pushrod and carriage //also experiment with 15 deg angle on Z axis translate([6,26+2,0]){ rotate([-12.4,0,0]) cube([16,10,12.4*2+10], center=true); } translate([6,5-7,0]){ rotate([12.4,0,0]) cube([16,10,12.4*2+10], center=true); } //adjusting shape at the top translate([6,26+2,45]){ rotate([12.4,0,0]) cube([16,10,12.4*2+10], center=true); } translate([6,-2,45]){ rotate([-12.4,0,0]) cube([16,10,12.4*2+10], center=true); } } //RIGHT traxx mount translate([6.5,-6.9,22.5]){ rotate([-90,0,0]){ union(){ //cylinder(h=8,r1=2.5, r2=8); translate([0,0,6])cylinder(h=2,r1=4, r2=10, $fs=0.01); translate([0,0,2.9]) cylinder(h=8,r=4, $fs=0.01); cylinder(h=3,r1=2.5, r2=4, $fs=0.01); } } } //LEFT traxx mount translate([6.5,32.9,22.5]){ rotate([90,0,0]){ //cylinder(h=8,r1=2.5, r2=8); translate([0,0,6])cylinder(h=2,r1=4, r2=10, $fs=0.01); translate([0,0,2.9]) cylinder(h=8,r=4, $fs=0.01); cylinder(h=3,r1=2.5, r2=4, $fs=0.01); } } union(){ color("lightblue") hull(){ translate([0.1,12,17]) rotate([0,90,0]) #cylinder(h=8.1, r=3.5, $fs=0.01); translate([0.1,12-3.5-1.5,17-5]) rotate([0,0,0]) #cube([8.1,2,2]); } } union(){ color("blue") hull(){ translate([0.1,11,7.5]) rotate([0,90,0]) cylinder(h=8.1, r=3.5, $fs=0.01); translate([0.1,7.5,0]) rotate([0,0,0]) cube([8.1,7,7]); } } union(){ color("lightgreen") hull(){ translate([0.1,12,28]) rotate([0,90,0]) #cylinder(h=8.1, r=3.5, $fs=0.01); translate([0.1,12-3.5-1.5,28+3.5]) rotate([0,0,0]) #cube([8.1,2,2]); } } union(){ color("green") hull(){ translate([0.1,11,37+1]) rotate([0,90,0]) cylinder(h=8.1, r=3.5, $fs=0.01); translate([0.1,7.5,37+1]) rotate([0,0,0]) cube([8.1,7,7]); } } } //screw hole needs to move somewhere else //green translate([-10,11,37+1]){ rotate([0,90,0]){ cylinder(d=3,h=36,$fs=0.01); translate([0,0,19.8]) #cylinder(d=6,h=13,$fs=0.01); } } //lightblue translate([-10,12,17]){ rotate([0,90,0]){ cylinder(d=3,h=36,$fs=0.01); translate([0,0,19.8]) #cylinder(d=6,h=13,$fs=0.01); } } //blue translate([-10,11,7.5]){ rotate([0,90,0]){ cylinder(d=3,h=36,$fs=0.01); translate([0,0,19.8]) #cylinder(d=6,h=13,$fs=0.01); } } //lightgreen translate([-10,12,28]){ rotate([0,90,0]){ cylinder(d=3,h=36,$fs=0.01); translate([0,0,19.8]) #cylinder(d=6,h=13,$fs=0.01); } } //ensuring size of carriage translate([-13,-8,0]){ cube([13,42,75]); } translate([13,-8,0]){ cube([13,42,75]); } //traxx mounting screw channel translate([6.5,36,22.5]){ rotate([90,0,0]){ cylinder(d=3,h=46,$fs=0.01); } } //LEFT catch for traxx nut translate([6.5,21+7,22.5]){ rotate([90,0,0]){ cylinder(d=6.5,h=11,$fn=6); } } //RIGHT catch for traxx nut translate([6.5,9,22.5]){ rotate([90,0,0]){ cylinder(d=6.5,h=11,$fn=6); } } //button presser screws translate([10+1.4,13+5,54]){ rotate([180,0,0]){ #cylinder(d=3,h=25,$fs=0.01); } } //carriage mounting screws translate([-10,3,32.5]){ rotate([0,90,0]){ cylinder(d=3,h=36,$fs=0.01); cylinder(d=6,h=13,$fs=0.01); } } //carriage mounting screws translate([-10,23,32.5]){ rotate([0,90,0]){ cylinder(d=3,h=36,$fs=0.01); cylinder(d=6,h=13,$fs=0.01); } } //carriage mounting screws translate([-10,3,12.5]){ rotate([0,90,0]){ cylinder(d=3,h=36,$fs=0.01); cylinder(d=6,h=13,$fs=0.01); } } //carriage mounting screws translate([-10,23,12.5]){ rotate([0,90,0]){ cylinder(d=3,h=36,$fs=0.01); cylinder(d=6,h=13,$fs=0.01); } } }