]> www.fi.muni.cz Git - things.git/commitdiff
wing-tube-support: smaller simpler asymmetric version
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Mon, 11 Mar 2019 18:06:11 +0000 (19:06 +0100)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Mon, 11 Mar 2019 18:06:11 +0000 (19:06 +0100)
wing-tube-support.scad

index b43ffaafed5df19b56e64c7f8656c13c8f806a89..908a7b2c230b54ea01bfeb9b0a8db60443d53de4 100644 (file)
@@ -1,92 +1,67 @@
 eps = 0.01;
-infty = 200;
+infty = 100;
 
 wall = 1.5;
 thin_wall = 0.6;
 
-tube_d = 10;
-tube_zoff = thin_wall + 3;
+tube_d = 6;
+tube_zoff = 3;
 
-base_w = 60;
-base_l = 45;
+base_front = 15;
+base_rear  = 25;
+base_w = base_front + base_rear;
+base_l = 15;
 
-/*
-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]);
-       }
-}
-
-module holder() {
-       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]);
-       }
-}
-*/
+tube_l = base_l/2;
+base_overhang = 0.9; // factor of base_front, base_r, base_l
 
 module body() {
        // 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]);
+       translate([-base_rear, -base_l/2, 0]) cube([base_w, base_l, thin_wall]);
 
-       // side supports
+       // front diagonal supports
        for (y = [-1,1]) 
-       for (x = [-1,1])
-       scale([x, y, 1])  hull() {
-               translate([base_w/2-thin_wall, -base_l/2, 0])
-                       cube([thin_wall, thin_wall, thin_wall]);
-               translate([-thin_wall/2, -base_l/2, 0])
-                       cube([thin_wall, thin_wall, tube_zoff + tube_d-thin_wall]);
+       scale([1, y, 1])  hull() {
+               translate([base_overhang*base_front-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);
        }
 
-       // diagonal supports
+       // rear diagonal supports
        for (y = [-1,1]) 
-       for (x = [-1,1])
-       scale([x, y, 1])  hull() {
-               translate([base_w/2-thin_wall/2, base_l/3, 0])
+       scale([1, y, 1])  hull() {
+               translate([-base_overhang*base_rear+thin_wall/2, base_overhang*base_l/2-thin_wall/2, 0])
                        cylinder(r = thin_wall/2, h = thin_wall, $fn = 16);
-               translate([0, -base_l/2+thin_wall/2, 0])
-                       cylinder(r = thin_wall/2, h = tube_zoff + tube_d - 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);
        }
 
        // under the tube supports
        for (y = [-1,1]) 
        scale([1, y, 1])  hull() {
-               translate([thin_wall/2, -base_l/4, 0])
-                       cube([thin_wall, thin_wall, thin_wall]);
-               translate([-thin_wall/2, -base_l/2, 0])
-                       cube([thin_wall, thin_wall, tube_zoff + 2*tube_d/3]);
+               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 (y = [-1,1]) 
        for (x = [-1,1])
-       scale([x, y, 1])  hull() {
-               translate([tube_d/2, base_l/3, 0])
-                       cube([thin_wall, base_l/6, tube_zoff + tube_d/2]);
+       scale([x, 1, 1]) {
+               translate([tube_d/2, -tube_l/2, 0])
+                       cube([thin_wall, tube_l, tube_zoff + tube_d/2]);
        }
 
        // upper cylinder clip
-       for (y = [-1,1])
-       scale([1, y, 1])
-       translate([0, base_l/3, tube_d/2 + tube_zoff])
+       translate([0, -tube_l/2, tube_d/2 + tube_zoff])
        intersection() {
                rotate([-90, 0, 0])
-                       cylinder(r = tube_d/2 + thin_wall, h = base_l/6);
+                       cylinder(r = tube_d/2 + thin_wall, h = tube_l);
                translate([-tube_d/2-thin_wall, 0, 0])
-                       cube([tube_d + 2*thin_wall, base_l/6, tube_d/3]);
+                       cube([tube_d + 2*thin_wall, tube_l, tube_d]);
        }
 }
 
@@ -96,13 +71,16 @@ difference() {
        translate([0, -base_l/2-eps, tube_d/2+tube_zoff])
        rotate([-90, 0, 0])
                cylinder(r = tube_d/2, h = base_l + 2*eps);
-       // central hole in the base plate
-       translate([0, 0, -eps]) scale ([1, base_l/base_w, 1])
-               cylinder(r = base_w/6, h = thin_wall+2*eps);
-       // side holes in the base plate
-       for (y = [-1, 1])
-       for (x = [-1, 1])
-       scale([x, y, 1])
-       translate([0.3*base_w, 0.3*base_l, -eps]) 
-               cylinder(r = base_w/10, h = thin_wall+2*eps);
+       // upper clip
+       translate([-infty/2, -infty/2, tube_zoff + 5*tube_d/6])
+               cube(infty);
+
+       // front-side hole
+       translate([0.6*base_front, 0, -eps])
+               scale([1, base_l/base_front, 1])
+               cylinder(r = base_front/4, h = thin_wall + 2*eps);
+       // rear-side hole
+       translate([-0.6*base_rear, 0, -eps])
+               scale([1, base_l/base_rear, 1])
+               cylinder(r = base_rear/4, h = thin_wall + 2*eps);
 }