// CNC-v3.x.scad - Open source CNC machine // Project page: www.HomoFaciens.de // Date: 2016-07-28 // Author: Norbert Heinz //Z axis +++++++++++++++++++++++++++++++++++++++++++++++++++++ translate([0,-7.5,37]) { translate([0,0,0]) { difference() { cube([31, 2, 2], center=true); cube([32, 1.6, 1.6], center=true); } } translate([0,0,20]) { difference() { cube([31, 2, 2], center=true); cube([32, 1.6, 1.6], center=true); } } translate([0,0,10]) { difference() { cube([2, 2, 18], center=true); cube([1.6, 1.6, 21], center=true); } } translate([12.5,0,10]) { difference() { cube([2, 2, 18], center=true); cube([1.6, 1.6, 21], center=true); } } translate([-12.5,0,10]) { difference() { cube([2, 2, 18], center=true); cube([1.6, 1.6, 21], center=true); } } //Ball bearings middle guide color( [0.0, 1.0, 0.0, 1.0] ) { translate([2.5,3,20]) { rotate([90,90,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } translate([-2.5,3,20]) { rotate([90,90,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } translate([2.5,3,0]) { rotate([90,90,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } translate([-2.5,3,0]) { rotate([90,90,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } //Ball bearing mount 1 translate([14.5,4.25,2]) { difference() { cube([2, 10.5, 2], center=true); cube([1.6, 13, 1.6], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([12.5,3,2]) { rotate([90,0,90]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } translate([12.5,8,2]) { rotate([90,0,90]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } //Ball bearing mount 2 translate([14.5,4.25,18]) { difference() { cube([2, 10.5, 2], center=true); cube([1.6, 13, 1.6], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([12.5,3,18]) { rotate([90,0,90]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } translate([12.5,8,18]) { rotate([90,0,90]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } translate([-16.5,8.5,10]) { difference() { cube([2, 2, 18], center=true); cube([1.6, 1.6, 21], center=true); } } //Ball bearing mount 3 translate([-14.5,4.25,18]) { difference() { cube([2, 10.5, 2], center=true); cube([1.6, 13, 1.6], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([-12.5,3,18]) { rotate([90,0,90]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } translate([-12.5,8,18]) { rotate([90,0,90]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } //Ball bearing mount 4 translate([-14.5,4.25,2]) { difference() { cube([2, 10.5, 2], center=true); cube([1.6, 13, 1.6], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([-12.5,3,2]) { rotate([90,0,90]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } translate([-12.5,8,2]) { rotate([90,0,90]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } translate([16.5,8.5,10]) { difference() { cube([2, 2, 18], center=true); cube([1.6, 1.6, 21], center=true); } } }//End Z axis ----------------------------------------------- //X axis translate([0,1,15.5]) { //Y axis ++++++++++++++++++++++++++++++++++++++++++++++++++ translate([-12.5,0,4.5]) { translate([17.5,0,0]) { difference() { cube([2, 29, 2], center=true); cube([1.6, 30, 1.6], center=true); } } translate([-17.5,0,0]) { difference() { cube([2, 29, 2], center=true); cube([1.6, 30, 1.6], center=true); } } translate([0,0,0]) { difference() { cube([33, 2, 2], center=true); cube([34, 1.6, 1.6], center=true); } } translate([0,13.5,0]) { difference() { cube([33, 2, 2], center=true); cube([34, 1.6, 1.6], center=true); } } translate([0,-13.5,0]) { difference() { cube([33, 2, 2], center=true); cube([34, 1.6, 1.6], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([-17.5,2.5,-2]) { rotate([0,0,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } translate([-17.5,-2.5,-2]) { rotate([0,0,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } translate([17.5,2.5,-2]) { rotate([0,0,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } translate([17.5,-2.5,-2]) { rotate([0,0,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } //Ball bearing mount 1 translate([-15.5,11.5,-3.75]) { difference() { cube([2, 2, 9.5], center=true); cube([1.6, 1.6, 13], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([-15.5,9.5,-2]) { rotate([90,90,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } translate([-15.5,9.5,-7]) { rotate([90,90,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } //Ball bearing mount 2 translate([15.5,11.5,-3.75]) { difference() { cube([2, 2, 9.5], center=true); cube([1.6, 1.6, 13], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([15.5,9.5,-2]) { rotate([90,90,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } translate([15.5,9.5,-7]) { rotate([90,90,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } //Ball bearing mount 3 translate([15.5,-11.5,-3.75]) { difference() { cube([2, 2, 9.5], center=true); cube([1.6, 1.6, 13], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([15.5,-9.5,-2]) { rotate([90,90,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } translate([15.5,-9.5,-7]) { rotate([90,90,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } //Ball bearing mount 4 translate([-15.5,-11.5,-3.75]) { difference() { cube([2, 2, 9.5], center=true); cube([1.6, 1.6, 13], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([-15.5,-9.5,-2]) { rotate([90,90,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } translate([-15.5,-9.5,-7]) { rotate([90,90,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } }//End Y-axis --------------------------------------------------- translate([3,9,0]) { difference() { cube([76, 2, 2], center=true); cube([77, 1.6, 1.6], center=true); } } translate([3,-9,0]) { difference() { cube([76, 2, 2], center=true); cube([77, 1.6, 1.6], center=true); } } translate([3,0,2]) { difference() { cube([76, 2, 2], center=true); cube([77, 1.6, 1.6], center=true); } } //Ladder translate([-34,0,0]) { difference() { cube([2, 16, 2], center=true); cube([1.6, 21, 1.6], center=true); } } translate([-16.5,0,0]) { difference() { cube([2, 16, 2], center=true); cube([1.6, 21, 1.6], center=true); } } translate([0,0,0]) { difference() { cube([2, 12, 2], center=true); cube([1.6, 21, 1.6], center=true); } } translate([14.5,0,0]) { difference() { cube([2, 16, 2], center=true); cube([1.6, 21, 1.6], center=true); } } translate([31,0,0]) { difference() { cube([2, 16, 2], center=true); cube([1.6, 21, 1.6], center=true); } } translate([40,0,0]) { difference() { cube([2, 16, 2], center=true); cube([1.6, 21, 1.6], center=true); } } //Free end thread translate([-36,0,1.5]) { difference() { cube([2, 2, 9], center=true); cube([1.6, 1.6, 21], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([-37.5,0,4.5]) { rotate([90,0,90]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } //Fixed end thread translate([36,0,4.5]) { difference() { cube([2, 16, 2], center=true); cube([1.6, 21, 1.6], center=true); } } translate([38,7,2.25]) { difference() { cube([2, 2, 6.5], center=true); cube([1.6, 1.6, 21], center=true); } } translate([38,-7,2.25]) { difference() { cube([2, 2, 6.5], center=true); cube([1.6, 1.6, 21], center=true); } } translate([34,7,2.25]) { difference() { cube([2, 2, 6.5], center=true); cube([1.6, 1.6, 21], center=true); } } translate([34,-7,2.25]) { difference() { cube([2, 2, 6.5], center=true); cube([1.6, 1.6, 21], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([34.5,0,4.5]) { rotate([90,0,90]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } translate([37.5,0,4.5]) { rotate([90,0,90]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } //Ball bearing mount 1 translate([-16.5,7,-4.25]) { difference() { cube([2, 2, 10.5], center=true); cube([1.6, 1.6, 13], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([-14.5,7,-3]) { rotate([90,0,90]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } translate([-14.5,7,-8]) { rotate([90,0,90]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } //Ball bearing mount 2 translate([-16.5,-7,-4.25]) { difference() { cube([2, 2, 10.5], center=true); cube([1.6, 1.6, 12], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([-14.5,-7,-3]) { rotate([90,0,90]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } //Ball bearing translate([-14.5,-7,-8]) { rotate([90,0,90]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } translate([-18.5,0,-6]) { difference() { cube([2, 16, 2], center=true); cube([1.6, 21, 1.6], center=true); } } //Ball bearing mount 3 translate([16.5,-7,-4.25]) { difference() { cube([2, 2, 10.5], center=true); cube([1.6, 1.6, 12], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([14.5,-7,-3]) { rotate([90,0,90]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } //Ball bearing translate([14.5,-7,-8]) { rotate([90,0,90]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } //Ball bearing mount 4 translate([16.5,7,-4.25]) { difference() { cube([2, 2, 10.5], center=true); cube([1.6, 1.6, 12], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([14.5,7,-3]) { rotate([90,0,90]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } //Ball bearing translate([14.5,7,-8]) { rotate([90,0,90]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } translate([18.5,0,-6]) { difference() { cube([2, 16, 2], center=true); cube([1.6, 21, 1.6], center=true); } } //Ball bearing mount 5 translate([0,7,0]) { difference() { cube([10, 2, 2], center=true); cube([11, 1.6, 1.6], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([2.5,7,-2.5]) { rotate([0,0,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } //Ball bearing translate([-2.5,7,-2.5]) { rotate([0,0,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } //Ball bearing mount 6 translate([0,-7,0]) { difference() { cube([10, 2, 2], center=true); cube([11, 1.6, 1.6], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([2.5,-7,-2.5]) { rotate([0,0,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } translate([-2.5,-7,-2.5]) { rotate([0,0,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } } //Main frame +++++++++++++++++++++++++++++++++++++++++++++++++++++ translate([0,0,0]) { translate([-14,-1,-10]) { difference() { cube([2, 82, 2], center=true); cube([1.6, 83, 1.6], center=true); } } translate([14,-1,-10]) { difference() { cube([2, 82, 2], center=true); cube([1.6, 83, 1.6], center=true); } } translate([14,-1,10]) { difference() { cube([2, 82, 2], center=true); cube([1.6, 83, 1.6], center=true); } } translate([-14,-1,10]) { difference() { cube([2, 82, 2], center=true); cube([1.6, 83, 1.6], center=true); } } //Middle guide X axis translate([0,-12,12]) { difference() { cube([2, 60, 2], center=true); cube([1.6, 83, 1.6], center=true); } } //Fixed end thread X axis translate([0,21,15.5]) { difference() { cube([26, 2, 2], center=true); cube([27, 1.6, 1.6], center=true); } } translate([0,17,17.5]) { difference() { cube([26, 2, 2], center=true); cube([27, 1.6, 1.6], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([0,19.5,15.5]) { rotate([90,90,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } translate([0,22.5,15.5]) { rotate([90,90,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } //Free end thread X axis translate([0,-43,12]) { difference() { cube([2, 2, 10], center=true); cube([1.6, 1.6, 11], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([0,-44.5,15.5]) { rotate([90,90,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } //Fixed end thread Z axis translate([0,-4,66]) { difference() { cube([26, 2, 2], center=true); cube([27, 1.6, 1.6], center=true); } } translate([0,0,66]) { difference() { cube([26, 2, 2], center=true); cube([27, 1.6, 1.6], center=true); } } translate([0,-4,70]) { difference() { cube([26, 2, 2], center=true); cube([27, 1.6, 1.6], center=true); } } translate([0,0,70]) { difference() { cube([26, 2, 2], center=true); cube([27, 1.6, 1.6], center=true); } } translate([0,-4,68]) { difference() { cube([2, 10, 2], center=true); cube([1.6, 11, 1.6], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([0,-7.5,66.5]) { rotate([0,0,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } translate([0,-7.5,69.5]) { rotate([0,0,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } //Free end thread Z axis translate([0,-5,34]) { difference() { cube([2, 8, 2], center=true); cube([1.6, 11, 1.6], center=true); } } //Ball bearing color( [0.0, 1.0, 0.0, 1.0] ) { translate([0,-7.5,32.5]) { rotate([0,0,0]) { difference() { cylinder($fn=60, h=1, r1=1.5, r2=1.5, center=true); cylinder($fn=60, h=3.2, r1=0.5, r2=0.5, center=true); } } } } //Ladder Z axis translate([0,-2,36]) { difference() { cube([22, 2, 2], center=true); cube([27, 1.6, 1.6], center=true); } } translate([0,-2,47.5]) { difference() { cube([22, 2, 2], center=true); cube([27, 1.6, 1.6], center=true); } } translate([0,-2,57.5]) { difference() { cube([22, 2, 2], center=true); cube([27, 1.6, 1.6], center=true); } } translate([12,-2,52]) { difference() { cube([2, 2, 38], center=true); cube([1.6, 1.6, 41], center=true); } } translate([-12,-2,52]) { difference() { cube([2, 2, 38], center=true); cube([1.6, 1.6, 41], center=true); } } //Middle guide Z axis translate([0,-4,50]) { difference() { cube([2, 2, 30], center=true); cube([1.6, 1.6, 31], center=true); } } //Ladder X axis translate([0,-41,10]) { difference() { cube([26, 2, 2], center=true); cube([27, 1.6, 1.6], center=true); } } translate([0,-3,10]) { difference() { cube([26, 2, 2], center=true); cube([27, 1.6, 1.6], center=true); } } translate([0,-23,10]) { difference() { cube([26, 2, 2], center=true); cube([27, 1.6, 1.6], center=true); } } translate([0,17,10]) { difference() { cube([26, 2, 2], center=true); cube([27, 1.6, 1.6], center=true); } } //End ladder //Bottom ladder translate([0,-41,-8]) { difference() { cube([30, 2, 2], center=true); cube([31, 1.6, 1.6], center=true); } } translate([0,-23,-8]) { difference() { cube([30, 2, 2], center=true); cube([31, 1.6, 1.6], center=true); } } translate([0,-3,-8]) { difference() { cube([30, 2, 2], center=true); cube([31, 1.6, 1.6], center=true); } } translate([0,17,-8]) { difference() { cube([30, 2, 2], center=true); cube([31, 1.6, 1.6], center=true); } } //vertical ladder //right translate([12,-39,0]) { difference() { cube([2, 2, 22], center=true); cube([1.6, 1.6, 23], center=true); } } translate([12,-21,0]) { difference() { cube([2, 2, 22], center=true); cube([1.6, 1.6, 23], center=true); } } translate([12,-1,0]) { difference() { cube([2, 2, 22], center=true); cube([1.6, 1.6, 23], center=true); } } //Left translate([-12,-39,0]) { difference() { cube([2, 2, 22], center=true); cube([1.6, 1.6, 23], center=true); } } translate([-12,-21,0]) { difference() { cube([2, 2, 22], center=true); cube([1.6, 1.6, 23], center=true); } } translate([-12,-1,0]) { difference() { cube([2, 2, 22], center=true); cube([1.6, 1.6, 23], center=true); } } //Tower translate([12,39,29]) { difference() { cube([2, 2, 80], center=true); cube([1.6, 1.6, 81], center=true); } } translate([-12,39,29]) { difference() { cube([2, 2, 80], center=true); cube([1.6, 1.6, 81], center=true); } } translate([12,19,29]) { difference() { cube([2, 2, 80], center=true); cube([1.6, 1.6, 81], center=true); } } translate([-12,19,29]) { difference() { cube([2, 2, 80], center=true); cube([1.6, 1.6, 81], center=true); } } //Side ladders tower //right translate([10,17.5,68]) { difference() { cube([2, 45, 2], center=true); cube([1.6, 46, 1.6], center=true); } } translate([10,18.5,49.5]) { difference() { cube([2, 43, 2], center=true); cube([1.6, 44, 1.6], center=true); } } translate([10,18.5,34]) { difference() { cube([2, 43, 2], center=true); cube([1.6, 44, 1.6], center=true); } } //Left translate([-10,17.5,68]) { difference() { cube([2, 45, 2], center=true); cube([1.6, 46, 1.6], center=true); } } translate([-10,18.5,49.5]) { difference() { cube([2, 43, 2], center=true); cube([1.6, 44, 1.6], center=true); } } translate([-10,18.5,34]) { difference() { cube([2, 43, 2], center=true); cube([1.6, 44, 1.6], center=true); } } //Rear translate([0,37,66]) { difference() { cube([26, 2, 2], center=true); cube([27, 1.6, 1.6], center=true); } } translate([0,37,36]) { difference() { cube([26, 2, 2], center=true); cube([27, 1.6, 1.6], center=true); } } translate([0,37,-8]) { difference() { cube([30, 2, 2], center=true); cube([31, 1.6, 1.6], center=true); } } //End side ladders }