include include h = 190; w = 35; t = 10; d = 100; top_d = 150; $fn=36*5; // main vertical part cuboid([w,t,h]); // bottom down(h/2 - t/2) fwd(d/2) difference() { cuboid([w,d,t]); for(i=[-w/3, w/3]) { for(j=[0, d/3]) { left(i) fwd(j) screw_hole("M4,10", head="flat"); } } } bot_d = 30; up(bot_d/2) fwd(bot_d/2) down(h/2 - t/2) difference() { cuboid([w,bot_d,bot_d]); xrot(45) up(bot_d + 2) cuboid([bot_d*2,bot_d*2,bot_d*2]); //up(bot_d/2 + t/2) fwd(bot_d/2 + t/2) yrot(90) cyl(d=bot_d*2, h=w+1); } // top up(h/2 - t/2) up(top_d/(sqrt(2)*2)) yrot(180) up(h/2 + top_d/4 - t) // upside down difference() { union() { yrot(90) fwd(top_d/3) cyl(d=top_d, h=w); down(w) fwd(w/2) cuboid([w,w*2,top_d]); down(w/2) fwd(5) xrot(45) cuboid([w,w*2,w*2]); } yrot(90) fwd(top_d/3) cyl(d=top_d - t*2, h=w + 1); up(top_d/5.6) cuboid([top_d*2,top_d*2,top_d]); back(50) cuboid([w+1,100,h]); down(top_d) cuboid([top_d*2,top_d*2,top_d]);// upside down }