wall = 2;
corner_d = 3;
-inner_w = 16 + 0.3;
+inner_w = 16 + 0.6;
outer_w = 22.5 - 0.3;
body_h = 45;
-hole_d = 7;
+hole_d = 7*1.1;
hole_off = 29;
-
-
-
-
+module body() {
+ hull() for (angle = [45:90:360]) rotate([0, 0, angle])
+ translate([outer_w/sqrt(2)-corner_d*sqrt(2)/2, 0, 0])
+ cylinder(r=corner_d/2, h = body_h, $fn = 8);
+ hull() for (angle = [45:90:360]) rotate([0, 0, angle])
+ translate([(outer_w+2*wall)/sqrt(2)-corner_d*sqrt(2)/2, 0, 0])
+ cylinder(r=corner_d/2, h = side_space, $fn = 8);
+}
+
+difference() {
+ body();
+ translate([-inner_w/2, -inner_w/2, -eps])
+ cube([inner_w, inner_w, body_h + 2*eps]);
+ translate([0, infty/2, hole_off])
+ rotate([90, 0, 0])
+ cylinder(r = hole_d/2, h=infty, $fn = 6);
+}