From 2c4225b2d26cbf982b69bf0c7083e02624f5dc68 Mon Sep 17 00:00:00 2001 From: "Jan \"Yenya\" Kasprzak" Date: Fri, 22 Mar 2019 13:38:44 +0100 Subject: [PATCH] work in progress - not tested yet --- servo-tube-holder.scad | 42 +++++++++++++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/servo-tube-holder.scad b/servo-tube-holder.scad index d26f344..64ea5f5 100644 --- a/servo-tube-holder.scad +++ b/servo-tube-holder.scad @@ -2,44 +2,68 @@ eps = 0.01; 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]) -- 2.43.0