15 spike_dist = body_l/(spike_count + 1);
19 translate([-spike_w_top/2, 0, body_h/2-eps])
20 cube([spike_w_top, bar_diam/2+wall/2, eps]);
21 translate([-spike_w_bot/2, 0, -body_h/2])
22 cube([spike_w_bot, bar_diam/2 + wall + spike_l, eps]);
28 translate([-body_l/2, 0, 0])
30 cylinder(r = bar_diam/2 + wall, h = body_l);
31 for (i = [-spike_count/2:1:spike_count/2])
32 translate([i*spike_dist, 0, 0]) spike();
36 translate([-body_l/2-eps, 0, 0])
38 cylinder(r = bar_diam/2, h = body_l + 2*eps);
40 translate([-infty/2, -infty/2, -infty-body_h/2]) cube(infty);
42 translate([-infty/2, -infty/2, body_h/2]) cube(infty);
44 translate([-infty/2, -infty, -infty/2]) cube(infty);