- translate([-axle_bot_w/2, wall, base_w/2-axle_bot_l/2])
- cube([axle_bot_w, eps, axle_bot_l]);
- translate([-axle_top_w/2, wall+axle_h, base_w/2-axle_top_l/2])
- cube([axle_top_w, eps, axle_top_l]);
- }
-
- // tip
- intersection() {
- // the main tube
- difference() {
- translate([base_l/2, tip_r, 0])
- cylinder(r = tip_r, h = base_w, $fn = 128);
- translate([base_l/2, tip_r, -eps])
- cylinder(r = tip_r - wall, h = base_w+2*eps, $fn = 128);
- }
- // the appropriate quarter of the tube only
- translate([base_l/2, -eps, -eps])
- cube([tip_r + eps, tip_r + eps, base_w+2*eps]);
- // make the tip round
- translate([tip_rv_off, -eps, base_w/2-eps])
- rotate([-90, 0, 0])
- cylinder(r = tip_rv, h = base_w + 2*eps);
+ translate([axle_x-axle_bot_w/2, -axle_bot_l/2, wall])
+ cube([axle_bot_w, axle_bot_l, eps]);
+ translate([axle_x-axle_top_w/2, -axle_top_l/2, wall+axle_h])
+ cube([axle_top_w, axle_top_l, eps]);