eps = 0.01; infty = 200; wall = 1.0; tube_d = 8.0 + 0.5; slot_w = 3; servo_w = 12.5+0.5; servo_side_l = 5 - 0.5; clip_w = servo_side_l + wall; servo_zoff = 14 + 2.0 + tube_d/2; servo_screw_hole = 1.2; servo_slot_z = 2 + 0.5; module clip() { difference() { hull() { // clip cylinder cylinder(r = tube_d/2 + wall, h = clip_w); // under the servo translate([-servo_w/2-wall, servo_zoff-wall, 0]) cube([servo_w+2*wall, servo_slot_z + 2*wall, clip_w]); } // fuse tube translate([0, 0, -eps]) cylinder(r = tube_d/2, h = clip_w + 2*eps); // slot translate([-slot_w/2, -tube_d,, -eps]) cube([slot_w, tube_d, clip_w + 2*eps]); // servo translate([-servo_w/2, servo_zoff, wall]) cube([servo_w, servo_slot_z, clip_w]); // screw hole translate([0, 0, wall + 0.6*servo_side_l]) rotate([-90, 0, 0]) cylinder(r = servo_screw_hole/2, h = infty, $fn = 6); } } for (x = [-1, 1]) scale([x, 1, 1]) translate([servo_w/2+2*wall, 0, 0]) clip();