]> www.fi.muni.cz Git - things.git/blob - madstab-joiner-end.scad
switch holder.scad
[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_l = 24;
9 stab_tube_wall = 1.5;
10 stab_tube_xoff = 2;
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 fiber_hole_d = 1.2;
21
22 module body() {
23         // fuse tube
24         hull() {
25                 translate([-fuse_tube_d/2-wall, -fuse_tube_l/2, 0])
26                         cube([fuse_tube_d + wall, fuse_tube_l, eps]);
27                 translate([0, fuse_tube_l/2, fuse_tube_d/2+wall])
28                 rotate([90, 0, 0])
29                         cylinder(r = fuse_tube_d/2 + wall, h = fuse_tube_l);
30         }
31         // stab tube + support
32         hull() {
33                 translate([-fuse_tube_d/2-stab_tube_xoff-wall, fuse_tube_l/2-wall, 0])
34                         cube([stab_tube_l, stab_tube_d/2+wall, stab_tube_d + 2*stab_tube_wall]);
35                 translate([-fuse_tube_d/2 - wall, -fuse_tube_l/2, 0])
36                         cube([fuse_tube_d + wall, eps, thin_wall]);
37         }
38 }
39
40 difference() {
41         body();
42         // fuse tube hole
43         translate([0, fuse_tube_l/2+eps, fuse_tube_d/2+wall])
44         rotate([90, 0, 0])
45                 cylinder(r = fuse_tube_d/2, h = fuse_tube_l + 2*eps);
46         // fuse tube slot
47         translate([-slot_w/2, -fuse_tube_l/2-eps, fuse_tube_d/2+wall])
48                 cube([slot_w, fuse_tube_l + 2*eps, fuse_tube_d/2+wall+eps]);
49
50         // stab tube
51         translate([-fuse_tube_d/2-stab_tube_xoff-wall-eps, fuse_tube_l/2 + stab_tube_d/2, stab_tube_d/2 +stab_tube_wall])
52         rotate([0, 90, 0])
53                 cylinder(r = stab_tube_d/2, h = stab_tube_l + 2*eps, $fn = 6);
54
55         // right fiber hole
56         translate([-fuse_tube_d/2-wall-fiber_hole_d/2, fuse_tube_l/2-wall-fiber_hole_d/2, -eps])
57                 cylinder(r = fiber_hole_d/2, h = stab_tube_d + 2*stab_tube_wall + 2*eps, $fn = 6);
58         // right fiber slot
59         translate([-fuse_tube_d/2-wall-fiber_hole_d/2, fuse_tube_l/2+stab_tube_d/2, -eps])
60                 cylinder(r = fiber_hole_d/2, h = stab_tube_d + 2*stab_tube_wall + 2*eps, $fn = 6);
61         // left fiber hole
62         translate([stab_tube_l-fuse_tube_d/2-stab_tube_xoff-2*wall-fiber_hole_d/2, fuse_tube_l/2-wall-fiber_hole_d/2, -eps])
63                 cylinder(r = fiber_hole_d/2, h = stab_tube_d + 2*stab_tube_wall + 2*eps, $fn = 6);
64         // left fiber slot
65         translate([stab_tube_l-fuse_tube_d/2-stab_tube_xoff-2*wall-fiber_hole_d/2, fuse_tube_l/2+stab_tube_d/2, -eps])
66                 cylinder(r = fiber_hole_d/2, h = stab_tube_d + 2*stab_tube_wall + 2*eps, $fn = 6);
67 }
68
69 // endpoint stopper
70
71 /*
72 translate([0, 2*fuse_tube_l, 0])
73 difference() {
74         union() {
75                 cylinder(r = stab_tube_d/2 + wall, h = wall);
76                 translate([0, 0, wall-eps])
77                         cylinder(r1 = stab_tube_d/2 + wall, r2 = stab_tube_d/2+thin_wall, h = wall);
78         }
79         translate([0, 0, -eps])
80                 cylinder(r = stab_tube_d/2, h = 2*wall + 2*eps);
81 }
82 */
83