+infty = 100;
+eps = 0.01;
+
+module spacer() {
+ difference() {
+ cylinder(r = 33/2, h = 5);
+ translate([0, 0, -eps])
+ cylinder(r = 15/2, h = 5 + 2*eps);
+ }
+}
+
+module inner() {
+ difference() {
+ translate([-21/2, -21/2, 0])
+ cube([21, 21, 21]);
+ // hole
+ translate([0, 0, -eps])
+ cylinder(r = 11.5/2, h = 21 + 2*eps);
+ // hole - moiddle ring
+ translate([0, 0, 9])
+ cylinder(r = 12.5/2, h = 3);
+ // bottom cuts
+ for (x = [-1, 1]) scale([x, 1, 1])
+ translate([21/2-1, -infty/2, 0])
+ rotate([0, 45, 0])
+ cube(infty);
+ // bottom cuts
+ for (x = [-1, 1]) scale([x, 1, 1])
+ translate([21/2, -infty/2, 21-1])
+ rotate([0, -45, 0])
+ cube(infty);
+ }
+}
+
+// spacer();
+
+inner();