union() { //variables thicknes=8.5; material=1.1; leg_length=12; //middle part translate([-material/2, 0 ,0]) cube([material, 28.5, thicknes]); //bottom color("Blue"){ translate([-2.1, 0, 0]) cube([2.5*material+3, material, thicknes]); } //top color("Blue"){ translate([0, 27.4, 0]) cube([2+material/2, material, thicknes]); } //right lower part color("Green"){ translate([2+material/2, 0, 0]) cube([material, 12, thicknes]); } //right upper part color("Green"){ translate([2+material/2, 28.5-leg_length, 0]) cube([material, leg_length, thicknes]); } /**** left part ****/ difference() { // assemble left part union() { // lower left part color("Green"){ translate([-2,0,0]) rotate(6.2) cube([material, leg_length, thicknes]); } //middle left part - outside r_outer=3.6/2; color("Blue"){ translate([-2.75, 14.25, 0]) cylinder(thicknes, r_outer, r_outer, $fn=50); } // middle part color("Blue"){ translate([-3.3, 11.75, 0]) cube([material, 5, thicknes]); } // upper left part color("Green"){ translate([-3.3,16.7,0]) rotate(-6.2) cube([material, 3, thicknes]); } } // clear the middle of the left part r_delete=3.4/2; translate([-2.0, 14.25, 0]) cylinder(8.5, r_delete, r_delete, $fn=50); } // fill lower left color("Red"){ translate([-material*1.8, 0, 0]) cube([material*1.8, 10, thicknes]); } }