4 // lid_diam = 40; // w/o the protrusions
15 module cyl_with_round_top(r, h, w_to_h) {
16 cylinder(r = r, h = h);
17 translate([0, 0, h]) scale([1, 1, w_to_h])
21 module cyl4(r1, h1, d1, r2, h2, d2, w_to_h) {
23 for (y = [-1, 1]) scale([1, y, 1])
25 cyl_with_round_top(r=r1, h=h1, w_to_h = w_to_h);
26 for (y = [-1, 1]) scale([1, y, 1])
28 cyl_with_round_top(r=r2, h=h2, w_to_h = w_to_h);
33 [7, body_h1, body_l/2],
34 [11, body_h1 + 1*(body_h2-body_h1)/5, body_l/3],
35 [14, body_h1 + 2*(body_h2-body_h1)/5, body_l/4],
36 [19, body_h1 + 3*(body_h2-body_h1)/5, body_l/7],
37 [22, body_h1 + 4*(body_h2-body_h1)/5, body_l/12],
42 for (i = [0:len(params)-2]) {
43 cyl4(params[i][0], params[i][1], params[i][2],
44 params[i+1][0], params[i+1][1], params[i+1][2],
52 translate([0, 0, -eps])
53 cylinder(r1 = 43/2, r2 = 41/2, h = body_h2 + 44*w_to_h);
54 for (angle = [0:360/30:360]) rotate([0, 0, angle]) hull() {
55 translate([-43/2, 0, -2*eps])
56 cylinder(r=1.5, h=eps, $fn = 3);
57 translate([-41/2, 0, body_h2+46*w_to_h+2*eps])
58 cylinder(r=1.5, h=eps, $fn = 3);