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();