infty = 300;
fuse_w = 60;
-fuse_h = 30-3;
-fuse_l = 80;
+fuse_h = 33-3;
+fuse_l = 100;
wall = 2;
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);
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();
+