]> www.fi.muni.cz Git - things.git/blob - fin-joiner.scad
switch holder.scad
[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 = 2.0 + 0.8;
8 stab_tube_l = 15;
9
10 stab_tube_off = 4;
11 stab_tube_wall = 1.0;
12 pulley_d = 8;
13
14 fuse_tube_d = 8.0 + 0.2;
15 fuse_tube_l = 25;
16
17 slot_w = 4;
18
19 base_d = 15;
20 base_h = 0.6;
21
22 module body() {
23         // fuse tube
24         cylinder(r = fuse_tube_d/2 + wall, h = fuse_tube_l);
25
26         // stab tube
27         hull() {
28                 translate([fuse_tube_d/2 + wall + stab_tube_off, 0, stab_tube_d/2+stab_tube_wall])
29                 rotate([0, 90, 0])
30                         cylinder(r = stab_tube_d/2+stab_tube_wall, h = stab_tube_l);
31                 translate([fuse_tube_d/2 + wall + stab_tube_off, -stab_tube_d/2, 0])
32                         cube([stab_tube_l, stab_tube_d, eps]);
33         }
34         // joiner
35         hull() {
36                 // stab tube tip
37                 translate([fuse_tube_d/2 + wall + stab_tube_off + stab_tube_l - eps,
38                         -thin_wall/2, stab_tube_d + 1.5*stab_tube_wall])
39                         cube([eps, thin_wall, eps]);
40                 // fuse tube tip
41                 translate([fuse_tube_d/2 + wall/2, -thin_wall/2, fuse_tube_l - eps])
42                         cube([eps, thin_wall, eps]);
43                 translate([fuse_tube_d/2 + wall/2, -3*stab_tube_wall/2, stab_tube_d+1.5*stab_tube_wall])
44                         cube([slot_w+wall, 3*stab_tube_wall, stab_tube_off]);
45         }
46 }
47
48 difference() {
49         body();
50         // fuse tube
51         translate([0, 0, -eps])
52                 cylinder(r = fuse_tube_d/2, h = fuse_tube_l + 2*eps);
53         // fuse slot
54         translate([-fuse_tube_d, -slot_w/2, -eps])
55                 cube([fuse_tube_d, slot_w, fuse_tube_l + 2*eps]);
56         // stab tube
57         translate([0, 0, stab_tube_d/2+stab_tube_wall])
58         rotate([0, 90, 0])
59                 cylinder(r = stab_tube_d/2, h = stab_tube_l + stab_tube_off + fuse_tube_d/2 + wall + eps, $fn = 6);
60         // pulley
61         translate([fuse_tube_d/2+wall, 0, stab_tube_d/2+stab_tube_wall])
62         rotate([0, 90, 0])
63         rotate([0, 0, 90])
64                 cylinder(r = pulley_d/2, h = stab_tube_off, $fn = 6);
65         // bottom side
66         translate([-fuse_tube_d/2-wall, 0, pulley_d/2 + stab_tube_d + 1.5*stab_tube_wall])
67         rotate ([0, 30, 0])
68         translate([-infty, -infty/2, -infty/2])
69                 cube(infty);
70 }
71