]> www.fi.muni.cz Git - things.git/blob - kaze-fuselage-holder.scad
balcony-doors-handle
[things.git] / kaze-fuselage-holder.scad
1 eps = 0.01;
2 infty = 200;
3
4 tube_d = 8.0 + 0.5;
5 tube_slot = 6;
6 wall = 1.2;
7
8 fuse_w = 45;
9 fuse_h = 40;
10
11 body_h = 15;
12 side_w = 8;
13 corner_d = 10;
14
15 thin_wall = 0.6;
16 supp_xoff = 0.75 * side_w;
17 supp_zoff = 0.75 * body_h;
18
19 module body() {
20         // base_plate
21         translate([-fuse_w/2, -fuse_h/2, 0])
22                 cube([fuse_w, fuse_h, thin_wall]);
23
24         // fuse tube
25         translate([0, fuse_h/2-tube_d/2-wall, 0])
26                 cylinder(r = tube_d/2+wall, h = body_h);
27
28         // side walls
29         for (x = [-1, 1]) scale([x, 1, 1])
30         translate([fuse_w/2-thin_wall, -fuse_h/2, 0])
31                 cube([thin_wall, fuse_h, body_h]);
32         for (y = [-1, 1]) scale([1, y, 1])
33         translate([-fuse_w/2, fuse_h/2-thin_wall, 0])
34                 cube([fuse_w, thin_wall, body_h]);
35
36         // side wall supports
37         for (x = [-1, 1]) scale([x, 1, 1])
38         hull() {
39                 translate([fuse_w/2-supp_xoff, -fuse_h/2, 0])
40                         cube([thin_wall, fuse_h, thin_wall]);
41                 translate([fuse_w/2-thin_wall, -fuse_h/2, supp_zoff])
42                         cube([thin_wall, fuse_h, thin_wall]);
43         }
44         for (y = [-1, 1]) scale([1, y, 1])
45         hull() {
46                 translate([-fuse_w/2, fuse_h/2-supp_xoff, 0])
47                         cube([fuse_w, thin_wall, thin_wall]);
48                 translate([-fuse_w/2, fuse_h/2-thin_wall, supp_zoff])
49                         cube([fuse_w, thin_wall, thin_wall]);
50         }
51 }
52
53 difference() {
54         body();
55         // hole in base plate
56         hull() {
57                 for (x = [-1, 1])
58                 for (y = [-1, 1])
59                 scale([x, y, 1])
60                 translate([-fuse_w/2+side_w+corner_d/2,
61                         -fuse_h/2+side_w+corner_d/2, -eps])
62                         cylinder(r = corner_d/2, h = thin_wall + 2*eps);
63         }
64         // fuse tube
65         translate([0, fuse_h/2-tube_d/2-wall, -eps])
66                 cylinder(r = tube_d/2, h = body_h + 2*eps);
67         // fuse tube slot
68         translate([-tube_slot/2, 0, -eps])
69                 cube([tube_slot, fuse_h/2-tube_d/2-wall, body_h +2*eps]);
70 }
71