-infty = 100;
+infty = 60;
eps = 0.01;
+body_h = 4.5;
+d_out = 33;
+d_in = 15;
+
module spacer() {
difference() {
- cylinder(r = 33/2, h = 5);
+ cylinder(r = d_out/2, h = body_h);
translate([0, 0, -eps])
- cylinder(r = 15/2, h = 5 + 2*eps);
+ cylinder(r = d_in/2, h = body_h + 2*eps);
}
}
+cube_d = 21;
+hole_d = 11.5;
+hole_d2 = 13;
+side_cut = 1.5;
+
module inner() {
difference() {
- translate([-21/2, -21/2, 0])
- cube([21, 21, 21]);
+ translate([-cube_d/2, -cube_d/2, 0])
+ cube([cube_d, cube_d, cube_d]);
// hole
translate([0, 0, -eps])
- cylinder(r = 11.5/2, h = 21 + 2*eps);
+ cylinder(r = hole_d/2, h = cube_d + 2*eps);
// hole - moiddle ring
- translate([0, 0, 9])
- cylinder(r = 12.5/2, h = 3);
+ translate([0, 0, cube_d/2])
+ for (z = [-1, 1]) scale([1, 1, z])
+ cylinder(r1 = hole_d2/2, r2 = hole_d/2, h = 1.5);
// bottom cuts
for (x = [-1, 1]) scale([x, 1, 1])
- translate([21/2-1, -infty/2, 0])
+ translate([cube_d/2-side_cut, -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])
+ translate([cube_d/2, -infty/2, cube_d-side_cut])
rotate([0, -45, 0])
cube(infty);
}
}
-// spacer();
+spacer();
-inner();
+translate([d_out, 0, 0]) inner();