]> www.fi.muni.cz Git - things.git/blob - mini-arrow-fuselage-front.scad
Mini arrow fuselage components
[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         };
34         // wing hole
35         translate([wing_hole_x, -fuse_w/2-eps, wall])
36                 cube([wing_hole_l, fuse_w + 2*eps, wing_hole_h]);
37
38         // center squares
39         for (x = [9:16:fuse_l - 15])
40         for (y = [0,16])
41         for (n = [0, 16/2])
42         for (s = [-1, 1])
43                 scale([1, s, 1])
44                 translate([x+n, y-n, -eps])
45                         cylinder(r = 6, h = wall + 2*eps, $fn = 4);
46 }