--- /dev/null
+//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]);
+ }
\ No newline at end of file