]> www.fi.muni.cz Git - things.git/commitdiff
printed modifications
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Wed, 10 Apr 2019 12:28:37 +0000 (14:28 +0200)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Wed, 10 Apr 2019 12:28:37 +0000 (14:28 +0200)
fin-joiner.scad
servo-tube-holder-half-center.scad
servo-tube-holder-half-side.scad
wing-tube-joint.scad

index f295762f227604c46ceef730d1a79e9df5d55492..53e0711ba749b95577b41e9cc82782de744df47c 100644 (file)
@@ -4,14 +4,14 @@ infty = 200;
 wall = 1.5;
 thin_wall = 0.6;
 
-stab_tube_d = 2.0 + 0.5;
+stab_tube_d = 2.0 + 0.8;
 stab_tube_l = 15;
 
 stab_tube_off = 4;
 stab_tube_wall = 1.0;
 pulley_d = 8;
 
-fuse_tube_d = 8.0;
+fuse_tube_d = 8.0 + 0.2;
 fuse_tube_l = 12;
 
 slot_w = 4;
@@ -41,7 +41,7 @@ module body() {
                translate([fuse_tube_d/2 + wall/2, -thin_wall/2, fuse_tube_l - eps])
                        cube([eps, thin_wall, eps]);
                translate([fuse_tube_d/2 + wall/2, -3*stab_tube_wall/2, stab_tube_d+1.5*stab_tube_wall])
-                       cube([eps, 3*stab_tube_wall, eps]);
+                       cube([slot_w+wall, 3*stab_tube_wall, stab_tube_off]);
        }
 }
 
index 3a227936dc85ff2fa4a9a7a39cd538cd66259d1f..6baa16cfd26097834c92f526db30c21957ce80d1 100644 (file)
@@ -5,24 +5,25 @@ wall = 1.0;
 
 tube_d = 8.0 + 0.5;
 
-clip_w = 6;
-
 slot_w = 3;
 
-support_l = 12;
-servo_w = 12.5;
+servo_w = 12.5+0.5;
+servo_side_l = 5 - 0.5;
+
+clip_w = servo_side_l + wall;
 
-cable_w = 5;
-cable_zoff = 2;
+servo_zoff = 14 + 2.0 + tube_d/2;
+servo_screw_hole = 1.2;
+servo_slot_z = 2 + 0.5;
 
-module clip(support_zoff) {
+module clip() {
 difference() {
        hull() {
                // clip cylinder
                cylinder(r = tube_d/2 + wall, h = clip_w);
                // under the servo
-               translate([-servo_w/2-wall, tube_d/2+support_zoff, 0])
-                       cube([servo_w+2*wall, support_l + wall, clip_w]);
+               translate([-servo_w/2-wall, servo_zoff-wall, 0])
+                       cube([servo_w+2*wall, servo_slot_z + 2*wall, clip_w]);
        }
 
        // fuse tube
@@ -34,18 +35,17 @@ difference() {
                cube([slot_w, tube_d, clip_w + 2*eps]);
 
        // servo
-       translate([-servo_w/2, tube_d/2+support_zoff+wall, wall])
-               cube([servo_w, support_l + eps, clip_w]);
-       // cable hole
-       translate([-cable_w/2, tube_d/2+support_zoff+cable_zoff+wall, -eps])
-               cube([cable_w, support_l + eps, clip_w]);
+       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, tube_d, 0])
-       clip(support_zoff = 0);
+translate([servo_w/2+2*wall, 0, 0])
+clip();
 
-for (x = [-1, 1]) scale([x, -1, 1])
-translate([servo_w, tube_d, 0])
-       clip(support_zoff = 3);
index d3a596ba9ee4ecc1765ac12d367fb917149633a0..f309500ffe0fdb9778d99ae15f3dcaccd7a1b6b1 100644 (file)
@@ -12,8 +12,8 @@ slot_w = 3;
 
 servo_w = 12.5+0.5;
 servo_zoff = 16 + 2.0-tube_d/2-servo_w/2; // od stredu trubice po osu otaceni
-servo_xoff = 11 - 4.0 - tube_d/2;
-servo_slot_z = 2.5 + 0.3;
+servo_slot_z = 2.5 + 0.1;
+servo_xoff = -servo_slot_z/2;
 servo_screw_hole = 1.2;
 
 module main() {
index e3322dbc640b34925cbbf707a720c7bf3655f39b..95ceef3bc7df9bf1eaf01e54311cecd5c24483cd 100644 (file)
@@ -4,37 +4,96 @@ infty = 200;
 wall = 1.5;
 thin_wall = 0.6;
 
-fuse_tube_d = 8.0;
-fuse_tube_l = 4;
-
-slot_w = 5;
-
-base_w = 60;
-base_l = 25;
-
-module body() {
-       hull() {
-//             translate([-fuse_tube_d/2-wall, -fuse_tube_l/2, 0])
-//                     cube([fuse_tube_d + 2*wall, fuse_tube_l, fuse_tube_d + 2*wall]);
-               translate([0, fuse_tube_l/2, fuse_tube_d/2+wall])
-               rotate([90, 0, 0])
-                       cylinder(r = fuse_tube_d/2+wall, h = fuse_tube_l);
-               translate([-fuse_tube_d/2-wall, -base_l/2+wall/2, 0])
-                       cube([fuse_tube_d + 2*wall, base_l-wall, thin_wall]);
+tube_d = 8.0 + 0.2;
+base_w = 65;
+base_l = 30;
+
+tube_d = 6 + 0.1;
+tube_zoff = 3;
+
+base_w = 65;
+base_l = 30;
+
+tube_l = base_l;
+base_overhang = 0.9; // factor of base_w, base_l
+
+tube_zoff = 2;
+
+module polyhole(r1, h1, fn) {
+    rotate([0,0,180])
+        cylinder(h = h1, r = r1 / cos (180 / fn), $fn = fn);
+}
+
+module body(tube_zoff) {
+       // base
+       // scale([1, base_l/base_w, 1])
+       // cylinder(r = base_w/2, h = thin_wall);
+       translate([-base_w/2, -base_l/2, 0]) cube([base_w, base_l, thin_wall]);
+
+       // diagonal supports
+       for (x = [-1,1])
+       for (y = [-1,1]) 
+       scale([x, y, 1])  hull() {
+               translate([base_overhang*base_w/2-thin_wall/2, base_overhang*base_l/2-thin_wall/2, 0])
+                       cylinder(r = thin_wall/2, h = thin_wall, $fn = 16);
+               translate([0, -tube_l/3+thin_wall/2, 0])
+                       cylinder(r = thin_wall/2, h = tube_zoff + tube_d, $fn = 16);
+       }
+
+       // side supports
+       for (x = [-1,1])
+       for (y = [-1,1]) 
+       scale([x, y, 1])  hull() {
+               translate([base_overhang*base_w/2-thin_wall/2, base_overhang*base_l/2-thin_wall/2, 0])
+                       cylinder(r = thin_wall/2, h = thin_wall, $fn = 16);
+               translate([0, tube_l/2-thin_wall/2, 0])
+                       cylinder(r = thin_wall/2, h = tube_zoff + tube_d, $fn = 16);
+       }
+
+       // under the tube supports
+       for (y = [-1,1]) 
+       scale([1, y, 1])  hull() {
+               translate([0, base_overhang*base_l/2, 0])
+                       cylinder(r = thin_wall/2, h = thin_wall, $fn = 16);
+               translate([-thin_wall/2, 0, 0])
+                       cube([thin_wall, tube_l/2, tube_zoff]);
+       }
+
+       // side bottom tube supports
+       for (x = [-1,1])
+       scale([x, 1, 1]) {
+               translate([tube_d/2, -tube_l/2, 0])
+                       cube([wall, tube_l, tube_zoff + tube_d/2]);
+               translate([tube_d/2+wall, -wall, 0])
+                       cube([wall, 2*wall, tube_zoff + tube_d/2]);
+       }
+
+       // upper cylinder clip
+       translate([0, -tube_l/2, tube_d/2 + tube_zoff])
+       intersection() {
+               rotate([-90, 0, 0]) union() {
+                       cylinder(r = tube_d/2 + wall, h = tube_l, $fn = 16);
+                       translate([0, 0, tube_l/2 - wall])
+                               cylinder(r = tube_d/2 + 2*wall,
+                                       h = 2*wall);
+               }
+               translate([-tube_d/2-2*wall, 0, 0])
+                       cube([tube_d + 4*wall, tube_l, tube_d]);
        }
-       scale([1, base_l/base_w, 1])
-               cylinder(r = base_w/2, h = thin_wall);
 }
 
-module holder() {
+module wing_tube_support(tube_zoff) {
        difference() {
-               body();
-               translate([0, infty/2, fuse_tube_d/2+wall])
-               rotate([90, 0, 0])
-                       cylinder(r = fuse_tube_d/2, h = infty + 2*eps);
-               translate([-slot_w/2, -infty/2, fuse_tube_d/2+wall])
-                       cube([slot_w, infty, fuse_tube_d/2+wall+eps]);
+               body(tube_zoff);
+               // main tube
+               translate([0, -base_l/2-eps, tube_d/2+tube_zoff])
+               rotate([-90, 0, 0])
+                       polyhole(tube_d/2, base_l + 2*eps, 6);
+                       // cylinder(r = tube_d/2, h = base_l + 2*eps, $fn = 6);
+               // upper clip
+               translate([-infty/2, -infty/2, tube_zoff + tube_d + wall])
+                       cube(infty);
        }
 }
 
-holder();
+wing_tube_support(tube_zoff);