]> www.fi.muni.cz Git - things.git/blob - mini-arrow-fuselage-front.scad
switch holder.scad
[things.git] / mini-arrow-fuselage-front.scad
1 eps = 0.01;
2 infty = 300;
3
4 fuse_w = 60;
5 fuse_h = 33-3;
6 fuse_l = 100;
7
8 wall = 2;
9
10 front_h = 5;
11
12 wing_hole_x = 25;
13 wing_hole_l = 25;
14 wing_hole_h = 8;
15
16 rear_edge_w = 4;
17 rear_edge_h = 19 -3 ; // see front_rod_h from mini-arrow-fuselage.scad
18 rear_edge_l = 132-121.5; // fuse_l - front_rod_x from mini-arrow-fuselage.scad
19
20 include <mini-arrow-spring2.scad>
21 spring_width = 23;
22 spring_beam_w = 3;
23
24 difference() {
25         translate([0, -fuse_w/2, 0]) intersection() {
26                 cube([fuse_l - spring_width + spring_beam_w, fuse_w, fuse_h]);
27                 translate([rear_edge_l, 0, front_h])
28                         scale([(fuse_l-rear_edge_l)/(fuse_h-front_h), 1, 1])
29                         rotate([-90, 0, 0])
30                                 cylinder(r = fuse_h-front_h,
31                                         h = fuse_w, $fn = 128);
32         }
33         // inner space
34         difference() {
35                 translate([-eps, -fuse_w/2+wall, wall])
36                         cube([fuse_l + 2*eps, fuse_w-2*wall, fuse_h]);
37                 // front beams
38                 translate([fuse_l, fuse_w/2, wall + 5])
39                         rotate([0, 60, 0]) 
40                         translate([0, -infty/2, -infty/2]) cube(infty);
41                 // sides
42                 for (y = [-1, 1]) scale([1, y, 1])
43                 translate([0, fuse_w/2, -10*0.707])
44                         rotate([45, 0, 0])
45                         cube([fuse_l, 10, 10]);
46                 // rear end
47                 for (y = [-1, 1]) scale([1, y, 1])
48                 translate([0, fuse_w/2, 0])
49                         rotate([0, 0, 60])
50                         cylinder(r = rear_edge_w, h = rear_edge_h, $fn = 4);
51         };
52         // wing hole
53         translate([wing_hole_x, -fuse_w/2-eps, wall])
54                 cube([wing_hole_l, fuse_w + 2*eps, wing_hole_h]);
55
56         // center squares
57         for (x = [9:16:fuse_l - 30])
58         for (y = [0,16])
59         for (n = [0, 16/2])
60         for (s = [-1, 1])
61                 scale([1, s, 1])
62                 translate([x+n, y-n, -eps])
63                         cylinder(r = 6, h = wall + 2*eps, $fn = 4);
64         // top underhang
65         translate([rear_edge_l-infty, -infty/2, rear_edge_h])
66                 cube(infty);
67 }
68
69 translate([fuse_l - spring_width/2, 0, 0])
70 rotate([0, 0, 90])
71         spring();
72