21 cylinder(r = base_d/2, h = base_wall);
24 rotate([0, motor_angle, 0])
25 cylinder(r = tube_d/2 + tube_wall, h = tube_h);
26 translate([-infty/2, -infty/2, 0])
30 for (angle = [45, 135, 225, 315])
31 rotate([0, 0, angle]) hull() {
32 translate([-eps/2, -tube_d/2, -eps/2])
33 cube([eps, tube_d, eps]);
34 translate([base_d/2, -eps/2, -eps/2])
36 translate([tube_d/2, -eps/2, 0.9*tube_h])
42 translate([0, 0, -eps])
43 cylinder(r = screw_hole/2, h = base_wall + 2*eps, $fn = 6);
44 translate([0, 0, base_wall/2])
45 cylinder(r1 = screw_hole/2,
46 r2 = screw_hole/2 + base_wall/2,
47 h = base_wall/2+eps, $fn = 6);
53 for (x = [-1, 1]) translate([x*screw_d1/2, 0, 0])
55 for (y = [-1, 1]) translate([0, y*screw_d2/2, 0])
58 rotate([0, motor_angle, 0])
59 translate([0, 0, -infty/2])
60 cylinder(r = tube_d/2, h = infty);
63 translate([-cable_slot_w/2, base_d/2-cable_slot_h, -eps])
64 cube([cable_slot_w, 2*cable_slot_h, infty]);