$fn=60; include include tube_d1=12; tube_d2=16; delta1=0.75; delta=0.5; module frontScrew() { cylinder(h=20, d=5.4, center=true); rotate([0,0,0]) { translate ([0,0,-8]) DIN931("M5"); translate ([0,0,-10]) DIN931("M5"); } * cylinder(h=25, d=5, center=true); translate([0,0,8]) cylinder(h=6, d=9); } module backScrew() { cylinder(h=5,d=3.5); DIN931("M3"); translate ([0,0,2]) DIN931("M3"); } // [tubes] * color("grey") { translate([-18,0,-80]) tube(od=tube_d1,wall=2,h=200); translate([0,0,-140]) tube(od=tube_d2,wall=2,h=200); translate([18,0,-80]) tube(od=tube_d1,wall=2,h=200); } // [top] translate([0,0,25]) { difference() { cuboid([58,25,20], rounding=5); translate([-18,0,-7]) zcyl(l=25, d=tube_d1+delta, rounding=1); translate([18,0,-7]) zcyl(l=25, d=tube_d1+delta, rounding=1); } rotate([-90,0,0]) { translate([0,-17,0]) difference() { ycyl(l=40, d=20, rounding=10); translate([0,-9,0]) xcyl(l=20, d=6); translate([10.5,-12,0]) xcyl(l=6, d=30); translate([-10.5,-12,0]) xcyl(l=6, d=30); } } } // [middle] difference() { cuboid([58,25,20], rounding=5); translate([-18,0,0]) zcyl(l=30, d=tube_d1+1); translate([0,0,-7]) zcyl(l=25, d=tube_d2+delta, rounding=1); translate([18,0,0]) zcyl(l=30, d=tube_d1+1); } // [bottom] translate([0,0,-25]) difference() { union() { cuboid([58,25,20], rounding=5); translate([0,-3,0]) rotate([90,0,0]) prismoid(size1=[30,20], size2=[24,20], h=24, rounding=1); translate([0,-27,0]) scale([1,.5,1]) zcyl(l=20, d=24, rounding=1); translate([0,12,0]) ycyl(l=5, d=12, rounding=2); } translate([-18,0,5]) zcyl(l=25, d=tube_d1+delta1, rounding=1); zcyl(l=30, d=tube_d2+1); translate([18,0,5]) zcyl(l=25, d=tube_d1+delta1, rounding=1); rotate([90,0,180]) translate([0,0,9]) backScrew(); zcyl(l=12, d=16, rounding=-1); translate([0,-25,0]) cuboid([11,25,20], rounding=-1); translate ([0,-23,0]) rotate([0,-90,0]) frontScrew(); }