15 bottom_leg_z = bottom_h-wall;
20 leg_l = bottom_sep + 3*wall;
25 module main_shape(h, l, w1, w2, s) {
27 for (x = [-1, 1]) scale ([x, 1, 1])
28 translate([l/2-w1*s/2, 0, 0])
30 cylinder(r1 = w1/2, r2 = w2/2, h = h);
34 module hollow_main_shape(h, l, w1, w2, s) {
36 main_shape(h, l+2*wall,
39 translate([0, 0, wall])
40 main_shape(h, l, w1, w2, s);
44 module bottom_main() {
45 hollow_main_shape(bottom_h, body_l+2*wall+bottom_sep, body_w1+2*wall+bottom_sep, body_w2+2*wall+bottom_sep, end_scale);
49 for (y = [-1, 1]) for (x = [-1, 1]) scale([x, y, 1])
50 translate([leg_off/2, body_w1/2+wall-eps, 0])
52 cube([leg_w, eps, leg_h1]);
53 translate([0, leg_l-eps, 0])
54 cube([leg_w, eps, leg_h2]);
60 hollow_main_shape(body_h, body_l, body_w1, body_w2, end_scale);
62 translate([0, 0, -eps])
63 cylinder(r = center_hole_d/2, h = wall + 2*eps);
67 translate([0, 0, -bottom_leg_z]) bottom_main();
74 translate([0, 0, bottom_leg_z]) legs();
79 // translate([0, 0, bottom_h + wall]) pot();
80 translate([0, body_w2 + bottom_sep + leg_l + 2*wall, 0]) pot();