]> www.fi.muni.cz Git - things.git/blob - fin-joiner.scad
top joiner for the all-flying fin
[things.git] / fin-joiner.scad
1 eps = 0.01;
2 infty = 200;
3
4 wall = 1.5;
5 thin_wall = 0.6;
6
7 stab_tube_d = 3.0 + 0.5;
8 stab_tube_l = 25;
9
10 stab_tube_off = 3;
11 pulley_d = 10;
12
13 fuse_tube_d = 8.0;
14 fuse_tube_l = 12;
15
16 slot_w = 3;
17
18 base_d = 15;
19 base_h = 0.6;
20
21 module body() {
22         // fuse tube
23         cylinder(r = fuse_tube_d/2 + wall, h = fuse_tube_l);
24
25         // stab tube
26         hull() {
27                 translate([fuse_tube_d/2 + wall + stab_tube_off, 0, stab_tube_d/2+wall])
28                 rotate([0, 90, 0])
29                         cylinder(r = stab_tube_d/2+wall, h = stab_tube_l);
30                 translate([fuse_tube_d/2 + wall + stab_tube_off, -stab_tube_d/2, 0])
31                         cube([stab_tube_l, stab_tube_d, eps]);
32         }
33         // joiner
34         hull() {
35                 // stab tube tip
36                 translate([fuse_tube_d/2 + wall + stab_tube_off + stab_tube_l - eps,
37                         -thin_wall/2, stab_tube_d + 1.5*wall])
38                         cube([eps, thin_wall, eps]);
39                 // fuse tube tip
40                 translate([fuse_tube_d/2 + wall/2, -thin_wall/2, fuse_tube_l - eps])
41                         cube([eps, thin_wall, eps]);
42                 translate([fuse_tube_d/2 + wall/2, -3*wall/2, stab_tube_d+1.5*wall])
43                         cube([eps, 3*wall, eps]);
44         }
45 }
46
47 difference() {
48         body();
49         // fuse tube
50         translate([0, 0, -eps])
51                 cylinder(r = fuse_tube_d/2, h = fuse_tube_l + 2*eps);
52         // fuse slot
53         translate([-fuse_tube_d, -slot_w/2, -eps])
54                 cube([fuse_tube_d, slot_w, fuse_tube_l + 2*eps]);
55         // stab tube
56         translate([0, 0, stab_tube_d/2+wall])
57         rotate([0, 90, 0])
58                 cylinder(r = stab_tube_d/2, h = stab_tube_l + stab_tube_off + fuse_tube_d/2 + wall + eps );
59 }
60