]> www.fi.muni.cz Git - things.git/blob - madstab-joiner-end.scad
alternative joiner for madstab at the end of tube
[things.git] / madstab-joiner-end.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_d2 = stab_tube_d;
9 stab_tube_l = 20;
10
11 fuse_tube_d = 8.0;
12 fuse_tube_l = 12;
13
14 slot_w = 3;
15
16 base_d = 15;
17 base_h = 0.6;
18
19 module body() {
20         // fuse tube
21         hull() {
22                 translate([-fuse_tube_d/2-wall, -fuse_tube_l/2, 0])
23                         cube([fuse_tube_d + wall, fuse_tube_l, eps]);
24                 translate([0, fuse_tube_l/2, fuse_tube_d/2+wall])
25                 rotate([90, 0, 0])
26                         cylinder(r = fuse_tube_d/2 + wall, h = fuse_tube_l);
27         }
28         // stab tube
29         hull() {
30                 translate([-fuse_tube_d/2-wall, fuse_tube_l/2-eps, 0])
31                         cube([stab_tube_l, stab_tube_d2+2*eps, eps]);
32                 translate([-fuse_tube_d/2-wall, fuse_tube_l/2+stab_tube_d2/2, stab_tube_d2/2+wall])
33                 rotate([0, 90, 0])
34                         cylinder(r = stab_tube_d2/2+wall+eps, h = stab_tube_l);
35         }
36 }
37
38 difference() {
39         body();
40         // fuse tube hole
41         translate([0, fuse_tube_l/2+eps, fuse_tube_d/2+wall])
42         rotate([90, 0, 0])
43                 cylinder(r = fuse_tube_d/2, h = fuse_tube_l + 2*eps);
44         // fuse tube slot
45         translate([-slot_w/2, -fuse_tube_l/2-eps, fuse_tube_d/2+wall])
46                 cube([slot_w, fuse_tube_l + 2*eps, fuse_tube_d/2+wall+eps]);
47
48         // stab tube
49         translate([-fuse_tube_d/2-wall-eps, fuse_tube_l/2 + stab_tube_d2/2, stab_tube_d2/2 +wall])
50         rotate([0, 90, 0])
51                 cylinder(r = stab_tube_d2/2, h = stab_tube_l + 2*eps);
52 }
53
54 // endpoint stopper
55
56 translate([0, 2*fuse_tube_l, 0])
57 difference() {
58         union() {
59                 cylinder(r = stab_tube_d/2 + wall, h = wall);
60                 translate([0, 0, wall-eps])
61                         cylinder(r1 = stab_tube_d/2 + wall, r2 = stab_tube_d/2+thin_wall, h = wall);
62         }
63         translate([0, 0, -eps])
64                 cylinder(r = stab_tube_d/2, h = 2*wall + 2*eps);
65 }
66