thin_wall = 0.6;
stab_tube_d = 2.0 + 0.5;
-stab_tube_d2 = stab_tube_d;
-stab_tube_l = 20;
-stab_tube_wall = 1;
+stab_tube_l = 24;
+stab_tube_wall = 1.5;
+stab_tube_xoff = 2;
fuse_tube_d = 8.0;
fuse_tube_l = 12;
base_d = 15;
base_h = 0.6;
+fiber_hole_d = 1.2;
+
module body() {
// fuse tube
hull() {
rotate([90, 0, 0])
cylinder(r = fuse_tube_d/2 + wall, h = fuse_tube_l);
}
- // stab tube
+ // stab tube + support
hull() {
- translate([-fuse_tube_d/2-wall, fuse_tube_l/2-eps, 0])
- cube([stab_tube_l, stab_tube_d2+2*eps, eps]);
- translate([-fuse_tube_d/2-wall, fuse_tube_l/2+stab_tube_d2/2, stab_tube_d2/2+stab_tube_wall])
- rotate([0, 90, 0])
- cylinder(r = stab_tube_d2/2+stab_tube_wall+eps, h = stab_tube_l);
- }
- // side support
- hull() {
- translate([fuse_tube_d/2 - eps, -fuse_tube_l/2, 0])
- cube([eps, eps, thin_wall]);
- translate([fuse_tube_d/2 - eps, fuse_tube_l/2-eps, 0])
- cube([stab_tube_l - fuse_tube_d - wall, eps, thin_wall]);
+ translate([-fuse_tube_d/2-stab_tube_xoff-wall, fuse_tube_l/2-wall, 0])
+ cube([stab_tube_l, stab_tube_d/2+wall, stab_tube_d + 2*stab_tube_wall]);
+ translate([-fuse_tube_d/2 - wall, -fuse_tube_l/2, 0])
+ cube([fuse_tube_d + wall, eps, thin_wall]);
}
}
cube([slot_w, fuse_tube_l + 2*eps, fuse_tube_d/2+wall+eps]);
// stab tube
- translate([-fuse_tube_d/2-wall-eps, fuse_tube_l/2 + stab_tube_d2/2, stab_tube_d2/2 +stab_tube_wall])
+ translate([-fuse_tube_d/2-stab_tube_xoff-wall-eps, fuse_tube_l/2 + stab_tube_d/2, stab_tube_d/2 +stab_tube_wall])
rotate([0, 90, 0])
- cylinder(r = stab_tube_d2/2, h = stab_tube_l + 2*eps, $fn = 6);
+ cylinder(r = stab_tube_d/2, h = stab_tube_l + 2*eps, $fn = 6);
+
+ // right fiber hole
+ translate([-fuse_tube_d/2-wall-fiber_hole_d/2, fuse_tube_l/2-wall-fiber_hole_d/2, -eps])
+ cylinder(r = fiber_hole_d/2, h = stab_tube_d + 2*stab_tube_wall + 2*eps, $fn = 6);
+ // right fiber slot
+ translate([-fuse_tube_d/2-wall-fiber_hole_d/2, fuse_tube_l/2+stab_tube_d/2, -eps])
+ cylinder(r = fiber_hole_d/2, h = stab_tube_d + 2*stab_tube_wall + 2*eps, $fn = 6);
+ // left fiber hole
+ translate([stab_tube_l-fuse_tube_d/2-stab_tube_xoff-2*wall-fiber_hole_d/2, fuse_tube_l/2-wall-fiber_hole_d/2, -eps])
+ cylinder(r = fiber_hole_d/2, h = stab_tube_d + 2*stab_tube_wall + 2*eps, $fn = 6);
+ // left fiber slot
+ translate([stab_tube_l-fuse_tube_d/2-stab_tube_xoff-2*wall-fiber_hole_d/2, fuse_tube_l/2+stab_tube_d/2, -eps])
+ cylinder(r = fiber_hole_d/2, h = stab_tube_d + 2*stab_tube_wall + 2*eps, $fn = 6);
}
// endpoint stopper
+/*
translate([0, 2*fuse_tube_l, 0])
difference() {
union() {
translate([0, 0, -eps])
cylinder(r = stab_tube_d/2, h = 2*wall + 2*eps);
}
+*/