8 center_l = base_l - base_w;
13 tip_rv_off = base_l/2-2;
16 axle_hole = 1.2 + 0.5;
26 translate([-base_l/2, 0 ])
27 cube([base_l, wall, base_w]);
29 // center reinforcement
31 translate([-center_l/2, wall, base_w/2])
33 scale([1, center_h/center_w, 1])
34 cylinder(r = center_w, h = center_l, $fn = 4);
35 translate([-infty/2, eps, 0])
40 translate([-axle_bot_w/2, wall, base_w/2-axle_bot_l/2])
41 cube([axle_bot_w, eps, axle_bot_l]);
42 translate([-axle_top_w/2, wall+axle_h, base_w/2-axle_top_l/2])
43 cube([axle_top_w, eps, axle_top_l]);
50 translate([base_l/2, tip_r, 0])
51 cylinder(r = tip_r, h = base_w, $fn = 128);
52 translate([base_l/2, tip_r, -eps])
53 cylinder(r = tip_r - wall, h = base_w+2*eps, $fn = 128);
55 // the appropriate quarter of the tube only
56 translate([base_l/2, -eps, -eps])
57 cube([tip_r + eps, tip_r + eps, base_w+2*eps]);
59 translate([tip_rv_off, -eps, base_w/2-eps])
61 cylinder(r = tip_rv, h = base_w + 2*eps);
70 translate([-axle_slot/2, wall+axle_h/2, 0])
71 cube([axle_slot, infty, base_w]);
73 translate([0, wall+axle_h/2, 0])
74 cylinder(r = axle_hole/2, h = base_w, $fn = 6);
80 // left and right part
81 for (i = [-1, 1]) scale([1, i, 1])