// PRUSA iteration4 // X end idler // GNU GPL v3 // Josef Průša and contributors // http://www.reprap.org/wiki/Prusa_Mendel // http://prusamendel.org use module x_end_idler_holes() { x_end_holes(); translate([0,3.5,0]) { // pulley screw translate(v=[0,-19,30.25]) rotate(a=[0,-90,0]) cylinder(h = 80, r=1.55, $fn=50); translate(v=[-4,-19,30.25]) rotate(a=[0,-90,0]) cylinder(h = 4, r=3, $fn=50); translate(v=[-21.5,-19,30.25]) rotate([0,-90,0]){ rotate([0,0,30])cylinder( h = 4, r = 3.1, $fn=6); } translate(v=[-24,-19,30.25]) rotate([0,-90,0]){ rotate([0,0,30])cylinder( h = 4, r1 = 3.1, r2 = 7, $fn=6); } translate(v=[-4.5,-19,30.25]) rotate(a=[0,-90,0]) cylinder(h = 1, r2=3, r1=4, $fn=50); // pulley side cut translate(v=[-9,-19,30.25]) rotate(a=[0,-90,0]) cylinder(h = 9, r=9.5, $fn=30); translate([-19,-35,21.25]) cube([10,20,18]); translate([-16.1,-35,21.3]) rotate([0,45,0]) cube([5,20,5]); translate([-16.1,-35,39.25]) rotate([0,45,0]) cube([5,20,5]); } } module waste_pocket() { // waste pocket translate([-15,-1,6]) rotate([90,0,0]) cylinder( h=5, r=5, $fn=30); translate([-15,-1,51]) rotate([90,0,0]) cylinder( h=5, r=5, $fn=30); translate([-15,-5.9,6]) rotate([90,0,0]) cylinder( h=3, r1=5, r2=4.3, $fn=30); translate([-15,-5.9,51]) rotate([90,0,0]) cylinder( h=3, r=5, r2=4.3, $fn=30); // opening window translate([-17,-1,51]) rotate([90,0,0]) cube([4,15,4]); translate([-17,-1,-1]) rotate([90,0,0]) cube([4,15,4]); } module x_end_idler_base() { difference() { union() { x_end_base(); difference() { translate(v=[-6.5,-21,13.5]) cube([1,12.5,42]); translate([-24,-11.5,19]) cube([20,10,24]); translate(v=[-6.5,-10,55.5]) rotate([180,-45,0]) cube([1.5,19,5]); translate(v=[-6.5,-29,13.5]) rotate([0,45,0]) cube([1.5,19,5]); translate(v=[-5.5,-19,13.5]) rotate([90,0,-35]) cube([1.5,45,6]); } // pulley nut support difference() { translate(v=[-23.5,-15.5,30.25]) rotate(a=[0,-90,0]) rotate(a=[0,0,30]) cylinder(h = 1,r1=5.5, r2=3.7, $fn=30); translate([-26,-11.5,19]) cube([20,10,24]); } } x_end_idler_holes(); } translate([-15,10.5,6]) rotate([90,0,0]) cylinder( h=13, r=6, $fn=30); translate([-15,10.5,51]) rotate([90,0,0]) cylinder( h=13, r=6, $fn=30); difference() { translate(v=[-19,-16.5,30.25]) rotate(a=[0,-90,0]) cylinder(h = 1, r1=9, r2=12, $fn=30); translate([-25,-11.5,19]) cube([20,10,24]); translate(v=[0,-15.5,30.25]) rotate(a=[0,-90,0]) cylinder(h = 80, r=1.55, $fn=30); } // nut trap print supoorts translate(v=[-5.8,-13.149,13.5]) rotate([0,0,45]) cube(size = [10,2.1,1], center = true); translate(v=[-9.8,-11,13.7]) rotate([0,0,135]) cube(size = [8,2.1,0.4], center = true); translate(v=[-5.2,-8,13.7]) rotate([0,0,135]) cube(size = [8,2.1,0.4], center = true); translate(v=[-8.8,-8.55,13.5]) rotate([0,0,45]) cube(size = [8,2.1,1], center = true); } module selective_infill() mirror([0,1,0]) translate([-50, -33, 0.6]) { difference() { union() { difference() { translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=11.7, $fn=30); translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=11.5, $fn=30); } difference() { translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=10.7, $fn=30); translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=10.5, $fn=30); } difference() { translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=9.9, $fn=30); translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=9.7, $fn=30); } difference() { translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=9, $fn=30); translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=8.8, $fn=30); } } translate([57.5,50.5,-1]) rotate([0,0,45]) cube([8,10,9]); translate([52,30.5,-1]) rotate([0,0,45]) cube([10,20,20]); translate([32,35.5,-1]) cube([8,30,9]); } } module x_end_idler() { mirror([0,1,0]) difference() { x_end_idler_base(); waste_pocket(); translate(v=[-8,-15.5,30.25]) rotate(a=[0,-90,0]) cylinder(h = 20, r=1.55, $fn=30); translate([-25,7.5,-1]) rotate([0,0,45]) cube([10,10,100]); //version translate([-23.7,-25,2]) rotate([90,0,90]) linear_extrude(height = 0.6) { text("R6",font = "helvetica:style=Bold", size=4, center=true); } } // bearings stop difference() { translate([0,0,57]) rotate([0,0,90]) cylinder( h=1, r=8, $fn=30); translate([0,0,56.9]) rotate([0,0,90]) cylinder( h=0.5, r1=8, r2=7,$fn=30); translate([0,0,56.5]) rotate([0,0,90]) cylinder( h=2, r=7, $fn=30); translate([0.2,-0.5,50]) rotate([0,0,40]) cube([12,1,10]); } // bearings spacer difference() { translate([0,0,26]) rotate([0,0,90]) cylinder( h=6, r=8, $fn=30); translate([0,0,25]) rotate([0,0,90]) cylinder( h=8, r=7.55, $fn=60); translate([0,0,25.9]) rotate([0,0,90]) cylinder( h=2, r2=7.5, r1=7.7,$fn=30); translate([0,0,31.4]) rotate([0,0,90]) cylinder( h=2, r1=7.5, r2=8.3,$fn=30); rotate([0,0,310]) translate([-2.5,0,26]) cube([5,15,10]); rotate([0,0,310-120]) translate([-2.5,0,26]) cube([5,15,10]); rotate([0,0,310-240]) translate([-2.5,0,26]) cube([5,15,10]); } } difference() { union() { x_end_idler(); translate([-8,15,13.0]) rotate([0,0,-45.4]) cube([10,1.5,1]); } translate([-47,-40,60]) rotate([0,45,0]) cube([20,80,20]); translate([-20,10.5,69]) rotate([0,45,0]) cube([20,20,20]); translate([-25,37,49]) rotate([45,0,0]) cube([30,20,20]); }