]> www.fi.muni.cz Git - things.git/commitdiff
work in progress - not tested yet
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Fri, 22 Mar 2019 12:38:44 +0000 (13:38 +0100)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Fri, 22 Mar 2019 12:38:44 +0000 (13:38 +0100)
servo-tube-holder.scad

index d26f344cb07fd12ba2b35ede7c9c193aeac087b5..64ea5f54b42422930c2269842157b6eb2b05ba16 100644 (file)
@@ -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])