infty = 200;
wall = 1.5;
-thin_wall = 1.0;
+thin_wall = 0.6;
fuse_tube_d = 8.0 + 0.5;
+tube_xoff = wall - 0.5;
+
clip_w = 6;
slot_w = 3;
+// 9g servo
servo_l = 23.0;
servo_w = 12.5;
-beam_w = fuse_tube_d/2 + wall;
+
+beam_w = fuse_tube_d/2 + wall - tube_xoff;
+beam_h = fuse_tube_d/2 + wall;
cable_w = 2.0;
cable_l = 5.0;
+
difference() {
union() {
// servo frame
translate([-wall, -servo_l/2-clip_w, 0])
- cube([servo_w + 2*wall, servo_l + 2*clip_w, wall]);
+ cube([servo_w + 2*wall, servo_l + 2*clip_w, thin_wall]);
+ // servo frame supports
+ for (y = [-1, 1])
+ scale([1, y, 1])
+ translate([0, servo_l/2 + clip_w - wall, 0])
+ hull() {
+ cube([servo_w/2 + cable_l/2, wall, thin_wall]);
+ cube([eps, wall, beam_h]);
+ }
// main beam
translate([-beam_w, -servo_l/2-clip_w, 0])
- cube([beam_w, servo_l + 2*clip_w, beam_w]);
+ cube([beam_w, servo_l + 2*clip_w, fuse_tube_d/2+wall]);
// clips
- for (y = [-1, 1]) scale([1, y, 1])
- translate([-fuse_tube_d - 2*wall, servo_l/2, 0])
- cube([fuse_tube_d + 2*wall, clip_w, fuse_tube_d + 2*wall]);
+ for (y = [-1, 1])
+ scale([1, y, 1])
+ translate([0, servo_l/2, 0])
+ hull() {
+ // bottom cube
+ translate([-0.75*fuse_tube_d - 2*wall + tube_xoff, 0, 0])
+ cube([0.75*fuse_tube_d + 2*wall, clip_w, fuse_tube_d/2 + wall + eps]);
+ // cylinder
+ translate([-fuse_tube_d/2 - wall + tube_xoff, 0, fuse_tube_d/2 + wall])
+ rotate([-90, 0, 0])
+ cylinder(r = fuse_tube_d/2 + wall, h = clip_w);
+ }
+
}
// hole for servo
translate([0, -servo_l/2, -eps])
cube([servo_w, servo_l, wall + 2*eps]);
// fuse tube
- translate([-fuse_tube_d/2-wall, servo_l/2+clip_w+eps, fuse_tube_d/2+wall])
+ translate([-fuse_tube_d/2-wall + tube_xoff, servo_l/2+clip_w+eps, fuse_tube_d/2+wall])
rotate([90, 0, 0])
cylinder(r = fuse_tube_d/2, h = servo_l +2*clip_w + 2*eps);
// fuse tube slot
- translate([-fuse_tube_d/2-wall-slot_w/2, -servo_l/2-clip_w-eps, fuse_tube_d/2+wall])
+ translate([-fuse_tube_d/2-wall-slot_w/2 + tube_xoff, -servo_l/2-clip_w-eps, fuse_tube_d/2+wall])
cube([slot_w, servo_l + 2*clip_w + 2*eps, fuse_tube_d/2+wall+eps]);
// cable hole
for (y = [-1, 1]) scale ([1, y, 1])