$fn=80; include include include sl=75; td=11; tp=4; sw=5; cp=7; te1=12; te2=25; pa=20; module l_screw() { mirror([0,1,0]) RodStart(sw*2, sw, thread_len=sl, thread_diam=td, thread_pitch=tp); translate([0,0,sw]) { linear_extrude(sw, center=true) spur_gear2d(circ_pitch=cp, teeth=te1, pressure_angle=pa); } /* translate([0,0,sl+sw]) zcyl(l=sw, d=td+1, rounding=1); */ } module l_bolt() { difference() { cuboid([20,20,20], rounding=1); zcyl(l=20, d=15); } translate([0,0,-10]) mirror([0,1,0]) RodEnd(15, 20, thread_len=20, thread_diam=12, thread_pitch=4); } module r_screw() { RodStart(sw*2, sw, thread_len=sl, thread_diam=td, thread_pitch=tp); translate([0,0,sw]) { linear_extrude(sw, center=true) spur_gear2d(circ_pitch=cp, teeth=te1, pressure_angle=pa); } /* translate([0,0,sl+sw]) zcyl(l=sw, d=td+1, rounding=1); */ } module r_bolt() { difference() { cuboid([20,20,20], rounding=1); zcyl(l=20, d=15); } translate([0,0,-10]) RodEnd(15, 20, thread_len=20, thread_diam=12, thread_pitch=4); } module plate() { /* Main */ cuboid([45,3,45], rounding=1); translate([21,13,16]) cuboid([3,28,5], rounding=1); translate([-21,13,16]) cuboid([3,28,5], rounding=1); translate([21,13,-16]) cuboid([3,28,5], rounding=1); translate([-21,13,-16]) cuboid([3,28,5], rounding=1); // translate([16,-13,21]) cuboid([5,28,3], rounding=1); translate([-16,-13,21]) cuboid([5,28,3], rounding=1); translate([16,-13,-21]) cuboid([5,28,3], rounding=1); translate([-16,-13,-21]) cuboid([5,28,3], rounding=1); // difference() { cuboid([30,14,30], rounding=1); translate([0,-6,0]) cuboid([21,4,55], rounding=1); translate([0,6,0]) cuboid([55,4,21], rounding=1); } // Front translate([0,-26,0]) cuboid([45,3,45], rounding=1); translate([0,-31,0]) rotate([90,0,0]) tube(od=16, wall=2, h=10, rounding=1); // Back translate([0,26,0]) cuboid([45,3,45], rounding=1); } /*[screws]*/ /*[x_axis]*/ color("cyan") { translate([-14,0,0]) l_bolt(); translate([14,0,0]) l_bolt(); } color("blue") { translate ([-14,0,sl/2+5]) rotate([0,180,14]) { translate([0,0,-10]) cylinder(h=15, d=td+1, $fn=6); l_screw(); } translate ([14,0,sl/2+5]) rotate([0,180,0]) l_screw(); } /*[y_axis */ color("pink") { translate([-42,0,0]) rotate([-90,0,0]) r_bolt(); translate([42,0,0]) rotate([-90,0,0]) l_bolt(); } color("red") { translate ([-42,-sl/2-5,0]) rotate([-90,6,0]) r_screw(); translate ([0,-sl/2,0]) rotate([90,0,0]) { cylinder(h=15, d=td+1, $fn=6); linear_extrude(sw, center=true) spur_gear2d(circ_pitch=cp, teeth=te2, pressure_angle=pa); } translate ([42,-sl/2-5,0]) rotate([-90,-6,0]) l_screw(); } /*[plates]*/ translate([-28,0,0]) rotate([0,0,-90]) plate(); translate([28,0,0]) rotate([0,0,90]) plate(); /*[enclosure]*/ * color("white", alpha=.5) { difference() { cuboid([126,86,86], rounding=1); translate([3,0,0]) cuboid([126,80,80]); translate([0,0,41.5]) cuboid([70,50,5]); translate([0,-41.5,0]) cuboid([114,4,74]); cuboid([140,55,55], rounding=20); translate([-14,0,38.5]) zcyl(l=10, d=td+2); translate([14,0,40]) zcyl(l=4, d=td+1); translate([0,-38.5,0]) ycyl(l=10, d=td+2); translate([-42,-40,0]) ycyl(l=4, d=td+1); translate([42,-40,0]) ycyl(l=4, d=td+1); } color("grey") { translate([0,-33,0]) { ycyl(l=3, d=20); cuboid([10,2,85]); } } translate([-14,0,-38.5]) tube(od=16, wall=1.5, h=5, rounding=1); translate([14,0,-38.5]) tube(od=16, wall=1.5, h=5, rounding=1); rotate([90,0,0]) { translate([-42,0,-38.5]) tube(od=16, wall=1.5, h=5, rounding=1); translate([42,0,-38.5]) tube(od=16, wall=1.5, h=5, rounding=1); } /*[covers]*/ // Top translate ([0,0,65]) { difference() { union() { cuboid([76,56,2], rounding=1); translate([0,0,-1.5]) cuboid([70,50,5], rounding=1); } translate([-14,0,-1]) zcyl(l=6, d=td+2); translate([14,0,-3]) zcyl(l=3, d=td+1); } } // Right translate ([0,-65,0]) { difference() { union() { cuboid([126,2,86], rounding=1); translate([0,1.5,0]) cuboid([113,5,73], rounding=1); } translate([0,1,0]) ycyl(l=6, d=td+2); translate([-42,3,0]) ycyl(l=3, d=td+1); translate([42,3,0]) ycyl(l=3, d=td+1); } } } /*[grp_holder]*/ * translate([68,0,0]) rotate([0,0,-90]) { difference() { union() { translate([0,0,16]) { rotate([90,0,0]) { linear_extrude(6, center=true) trapezoid(55, 20, 80, rounding=5); } } translate([0,0,100]) { cuboid([126,6,126], rounding=1); } } translate([0,0,23]) { rotate([90,0,0]) { linear_extrude(6, center=true) trapezoid(27, 30, 60, rounding=5); } } translate([0,-1.5,100]) cuboid([121,5,121]); * translate([0,0,100]) cuboid([116,7,116], rounding=2); ycyl(l=6, d=10, rounding=-3); } /*[plexi]*/ color("cyan", alpha=.3) translate([0,-1,100]) cuboid([120,4,120], rounding=1); }