]> www.fi.muni.cz Git - things.git/blobdiff - mini-arrow-fuselage-front.scad
switch holder.scad
[things.git] / mini-arrow-fuselage-front.scad
index 7875dfa457dd321392799ff9d468706f9617b3d2..dbb27c19ab4bddf232a9c58b2edd21794f95dcb0 100644 (file)
@@ -2,8 +2,8 @@ eps = 0.01;
 infty = 300;
 
 fuse_w = 60;
-fuse_h = 30-3;
-fuse_l = 80;
+fuse_h = 33-3;
+fuse_l = 100;
 
 wall = 2;
 
@@ -11,13 +11,21 @@ front_h = 5;
 
 wing_hole_x = 25;
 wing_hole_l = 25;
-wing_hole_h = 12;
+wing_hole_h = 8;
+
+rear_edge_w = 4;
+rear_edge_h = 19 -3 ; // see front_rod_h from mini-arrow-fuselage.scad
+rear_edge_l = 132-121.5; // fuse_l - front_rod_x from mini-arrow-fuselage.scad
+
+include <mini-arrow-spring2.scad>
+spring_width = 23;
+spring_beam_w = 3;
 
 difference() {
        translate([0, -fuse_w/2, 0]) intersection() {
-               cube([fuse_l, fuse_w, fuse_h]);
-               translate([0, 0, front_h])
-                       scale([fuse_l/(fuse_h-front_h), 1, 1])
+               cube([fuse_l - spring_width + spring_beam_w, fuse_w, fuse_h]);
+               translate([rear_edge_l, 0, front_h])
+                       scale([(fuse_l-rear_edge_l)/(fuse_h-front_h), 1, 1])
                        rotate([-90, 0, 0])
                                cylinder(r = fuse_h-front_h,
                                        h = fuse_w, $fn = 128);
@@ -30,17 +38,35 @@ difference() {
                translate([fuse_l, fuse_w/2, wall + 5])
                        rotate([0, 60, 0]) 
                        translate([0, -infty/2, -infty/2]) cube(infty);
+               // sides
+               for (y = [-1, 1]) scale([1, y, 1])
+               translate([0, fuse_w/2, -10*0.707])
+                       rotate([45, 0, 0])
+                       cube([fuse_l, 10, 10]);
+               // rear end
+               for (y = [-1, 1]) scale([1, y, 1])
+               translate([0, fuse_w/2, 0])
+                       rotate([0, 0, 60])
+                       cylinder(r = rear_edge_w, h = rear_edge_h, $fn = 4);
        };
        // wing hole
        translate([wing_hole_x, -fuse_w/2-eps, wall])
                cube([wing_hole_l, fuse_w + 2*eps, wing_hole_h]);
 
        // center squares
-       for (x = [9:16:fuse_l - 15])
+       for (x = [9:16:fuse_l - 30])
        for (y = [0,16])
        for (n = [0, 16/2])
        for (s = [-1, 1])
                scale([1, s, 1])
                translate([x+n, y-n, -eps])
                        cylinder(r = 6, h = wall + 2*eps, $fn = 4);
+       // top underhang
+       translate([rear_edge_l-infty, -infty/2, rear_edge_h])
+               cube(infty);
 }
+
+translate([fuse_l - spring_width/2, 0, 0])
+rotate([0, 0, 90])
+       spring();
+