]> www.fi.muni.cz Git - things.git/blobdiff - mini-arrow-fuselage-front.scad
Mini arrow fuselage components
[things.git] / mini-arrow-fuselage-front.scad
diff --git a/mini-arrow-fuselage-front.scad b/mini-arrow-fuselage-front.scad
new file mode 100644 (file)
index 0000000..7875dfa
--- /dev/null
@@ -0,0 +1,46 @@
+eps = 0.01;
+infty = 300;
+
+fuse_w = 60;
+fuse_h = 30-3;
+fuse_l = 80;
+
+wall = 2;
+
+front_h = 5;
+
+wing_hole_x = 25;
+wing_hole_l = 25;
+wing_hole_h = 12;
+
+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])
+                       rotate([-90, 0, 0])
+                               cylinder(r = fuse_h-front_h,
+                                       h = fuse_w, $fn = 128);
+       }
+       // inner space
+       difference() {
+               translate([-eps, -fuse_w/2+wall, wall])
+                       cube([fuse_l + 2*eps, fuse_w-2*wall, fuse_h]);
+               // front beams
+               translate([fuse_l, fuse_w/2, wall + 5])
+                       rotate([0, 60, 0]) 
+                       translate([0, -infty/2, -infty/2]) cube(infty);
+       };
+       // 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 (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);
+}