]> www.fi.muni.cz Git - things.git/blob - mini-arrow-fuselage-front.scad
mini arrow fuselage front part - hardened bottom
[things.git] / mini-arrow-fuselage-front.scad
1 eps = 0.01;
2 infty = 300;
3
4 fuse_w = 60;
5 fuse_h = 30-3;
6 fuse_l = 80;
7
8 wall = 2;
9
10 front_h = 5;
11
12 wing_hole_x = 25;
13 wing_hole_l = 25;
14 wing_hole_h = 12;
15
16 difference() {
17         translate([0, -fuse_w/2, 0]) intersection() {
18                 cube([fuse_l, fuse_w, fuse_h]);
19                 translate([0, 0, front_h])
20                         scale([fuse_l/(fuse_h-front_h), 1, 1])
21                         rotate([-90, 0, 0])
22                                 cylinder(r = fuse_h-front_h,
23                                         h = fuse_w, $fn = 128);
24         }
25         // inner space
26         difference() {
27                 translate([-eps, -fuse_w/2+wall, wall])
28                         cube([fuse_l + 2*eps, fuse_w-2*wall, fuse_h]);
29                 // front beams
30                 translate([fuse_l, fuse_w/2, wall + 5])
31                         rotate([0, 60, 0]) 
32                         translate([0, -infty/2, -infty/2]) cube(infty);
33                 // sides
34                 for (y = [-1, 1]) scale([1, y, 1])
35                 translate([0, fuse_w/2, -10*0.707])
36                         rotate([45, 0, 0])
37                         cube([fuse_l, 10, 10]);
38         };
39         // wing hole
40         translate([wing_hole_x, -fuse_w/2-eps, wall])
41                 cube([wing_hole_l, fuse_w + 2*eps, wing_hole_h]);
42
43         // center squares
44         for (x = [9:16:fuse_l - 15])
45         for (y = [0,16])
46         for (n = [0, 16/2])
47         for (s = [-1, 1])
48                 scale([1, s, 1])
49                 translate([x+n, y-n, -eps])
50                         cylinder(r = 6, h = wall + 2*eps, $fn = 4);
51 }