]> www.fi.muni.cz Git - things.git/blob - madstab-joiner-end.scad
printed objects
[things.git] / madstab-joiner-end.scad
1 eps = 0.01;
2 infty = 200;
3
4 wall = 2.0;
5 thin_wall = 0.6;
6
7 stab_tube_d = 2.0 + 0.5;
8 stab_tube_d2 = stab_tube_d;
9 stab_tube_l = 20;
10 stab_tube_wall = 1;
11
12 fuse_tube_d = 8.0;
13 fuse_tube_l = 12;
14
15 slot_w = 3.5;
16
17 base_d = 15;
18 base_h = 0.6;
19
20 module body() {
21         // fuse tube
22         hull() {
23                 translate([-fuse_tube_d/2-wall, -fuse_tube_l/2, 0])
24                         cube([fuse_tube_d + wall, fuse_tube_l, eps]);
25                 translate([0, fuse_tube_l/2, fuse_tube_d/2+wall])
26                 rotate([90, 0, 0])
27                         cylinder(r = fuse_tube_d/2 + wall, h = fuse_tube_l);
28         }
29         // stab tube
30         hull() {
31                 translate([-fuse_tube_d/2-wall, fuse_tube_l/2-eps, 0])
32                         cube([stab_tube_l, stab_tube_d2+2*eps, eps]);
33                 translate([-fuse_tube_d/2-wall, fuse_tube_l/2+stab_tube_d2/2, stab_tube_d2/2+stab_tube_wall])
34                 rotate([0, 90, 0])
35                         cylinder(r = stab_tube_d2/2+stab_tube_wall+eps, h = stab_tube_l);
36         }
37         // side support
38         hull() {
39                 translate([fuse_tube_d/2 - eps, -fuse_tube_l/2, 0])
40                         cube([eps, eps, thin_wall]);
41                 translate([fuse_tube_d/2 - eps, fuse_tube_l/2-eps, 0])
42                         cube([stab_tube_l - fuse_tube_d - wall, eps, thin_wall]);
43         }
44 }
45
46 difference() {
47         body();
48         // fuse tube hole
49         translate([0, fuse_tube_l/2+eps, fuse_tube_d/2+wall])
50         rotate([90, 0, 0])
51                 cylinder(r = fuse_tube_d/2, h = fuse_tube_l + 2*eps);
52         // fuse tube slot
53         translate([-slot_w/2, -fuse_tube_l/2-eps, fuse_tube_d/2+wall])
54                 cube([slot_w, fuse_tube_l + 2*eps, fuse_tube_d/2+wall+eps]);
55
56         // stab tube
57         translate([-fuse_tube_d/2-wall-eps, fuse_tube_l/2 + stab_tube_d2/2, stab_tube_d2/2 +stab_tube_wall])
58         rotate([0, 90, 0])
59                 cylinder(r = stab_tube_d2/2, h = stab_tube_l + 2*eps, $fn = 6);
60 }
61
62 // endpoint stopper
63
64 translate([0, 2*fuse_tube_l, 0])
65 difference() {
66         union() {
67                 cylinder(r = stab_tube_d/2 + wall, h = wall);
68                 translate([0, 0, wall-eps])
69                         cylinder(r1 = stab_tube_d/2 + wall, r2 = stab_tube_d/2+thin_wall, h = wall);
70         }
71         translate([0, 0, -eps])
72                 cylinder(r = stab_tube_d/2, h = 2*wall + 2*eps);
73 }
74