phPoints_middle = [ [ -0.55, 0, -3 ], //0 [ 0.55, 0, -3 ], //1 [ 0.55, 12, -4.25 ], //2 [ -0.55, 12, -4.25 ],//3 [ -0.55, 0, 3 ], //4 [ 0.55, 0, 3 ],//5 [ 0.55, 12, 4.25 ],//6 [ -0.55, 12, 4.25 ]];//7 phFaces_middle = [ [0,1,2,3], // bottom [4,5,1,0], // front [7,6,5,4], // top [5,6,2,1], // right [6,7,3,2], // back [7,4,0,3]]; // left // lower middle part polyhedron( phPoints_middle, phFaces_middle ); // upper middle part translate([0,28.5,0]) rotate(180) polyhedron( phPoints_middle, phFaces_middle ); // middle part color("Blue"){ translate([-0.55, 12, -4.25]) cube([1.1, 4.5, 8.5]); } //bottom color("Blue"){ translate([0, 0, -3]) cube([2.55, 1.1, 6]); } //top color("Blue"){ translate([0, 27.4, -3]) cube([2.55, 1.1, 6]); } //right lower part color("Green"){ translate([2.55,0,0]) polyhedron( phPoints_middle, phFaces_middle ); } //right upper part color("Green"){ translate([2.55,28.5,0]) rotate(180) polyhedron( phPoints_middle, phFaces_middle ); } /**** left part ****/ phPoints_upLeft = [ [ -0.55, 0, -3.8 ], //0 [ 0.55, 0, -3.8 ], //1 [ 0.55, 4, -4.25 ], //2 [ -0.55, 4, -4.25 ],//3 [ -0.55, 0, 3.8 ], //4 [ 0.55, 0, 3.8 ],//5 [ 0.55, 4, 4.25 ],//6 [ -0.55, 4, 4.25 ]];//7 difference() { // assemble left part union() { // lower left part color("Green"){ translate([-2,0,0]) rotate(3.6) polyhedron( phPoints_middle, phFaces_middle ); } //middle left part - outside r_outer=3.6/2; color("Blue"){ translate([-2.75, 14.25, -4.25]) cylinder(8.5, r_outer, r_outer, $fn=50); } // middle part color("Blue"){ translate([-3.3, 11.75, -4.25]) cube([1.1, 5, 8.5]); } // upper left part color("Green"){ translate([-2.55,20.7,0]) rotate(177) polyhedron( phPoints_upLeft, phFaces_middle ); } } // clear the middle of the left part r_delete=3.4/2; translate([-2.0, 14.25, -4.25]) cylinder(8.5, r_delete, r_delete, $fn=50); } // fill lower left part z_max=4.05; phPoints_fill = [ [ -1.55, 0, -3 ], //0 [ 0.55, 0, -3 ], //1 [ 0.55, 10, -z_max ], //2 [ -1.55, 10, -z_max ],//3 [ -1.55, 0, 3 ], //4 [ 0.55, 0, 3 ],//5 [ 0.55, 10, z_max ],//6 [ -1.55, 10, z_max ]];//7 color("Red"){ translate([-0.55,0,0]) polyhedron( phPoints_fill, phFaces_middle ); }