eps = 0.01; infty = 200; wall = 1.5; tube_d = 8.0 + 0.5; clip_w = 6; slot_w = 3; slot_angle = 180+45; fiber_hole = 2; support_l = tube_d/2 + 10; difference() { union() { // clip cylinder cylinder(r = tube_d/2 + wall, h = clip_w); // fiber x-dir hull() { cylinder(r = fiber_hole/2+wall, h = clip_w); translate([tube_d/2+fiber_hole/2, 0, 0]) cylinder(r = fiber_hole/2+wall, h = clip_w, $fn = 16); } // fiber y-dir hull() { cylinder(r = fiber_hole/2+wall, h = clip_w); translate([0, tube_d/2+fiber_hole/2, 0]) cylinder(r = fiber_hole/2+wall, h = clip_w, $fn = 16); } } // fuse tube translate([0, 0, -eps]) cylinder(r = tube_d/2, h = clip_w + 2*eps); // slot rotate([0, 0, slot_angle]) translate([0, -slot_w/2, -eps]) cube([tube_d, slot_w, clip_w + 2*eps]); // fiber hole x-dir translate([0, -wall/2, -eps]) cube([tube_d/2+fiber_hole/2, wall, clip_w+2*eps]); translate([tube_d/2+fiber_hole/2, 0, -eps]) cylinder(r = fiber_hole/2, h = clip_w+2*eps, $fn = 16); // fiber hole y-dir translate([-wall/2, 0, -eps]) cube([wall, tube_d/2+fiber_hole/2, clip_w+2*eps]); translate([0, tube_d/2+fiber_hole/2, -eps]) cylinder(r = fiber_hole/2, h = clip_w+2*eps, $fn = 16); }