0 | 0 |
include <dims.scad>
|
1 | 1 |
|
2 | |
module diag(h) {
|
3 | |
d = sqrt(2 * itid * itid)/2;
|
|
2 |
module diag_outline() {
|
|
3 |
d = sqrt(2 * itid * itid)/2 - 1;
|
4 | 4 |
wt = 1.8;
|
5 | |
linear_extrude(height=h, center=false, scale=(itid-1)/itid)
|
6 | |
polygon([[-d, 0], [-d+wt, wt], [d-wt, wt],
|
7 | |
[d, 0], [d-wt, -wt], [-d+wt, -wt]]);
|
|
5 |
polygon([[-d, 0], [-d+wt, wt], [d-wt, wt],
|
|
6 |
[d, 0], [d-wt, -wt], [-d+wt, -wt]]);
|
|
7 |
}
|
|
8 |
|
|
9 |
module diag() {
|
|
10 |
linear_extrude(height=cross_depth, center=false)
|
|
11 |
diag_outline();
|
|
12 |
rotate([0, 180, 0])
|
|
13 |
linear_extrude(height=stem_cross_support_height, center=false, scale=(stem_diam - 2)/itid)
|
|
14 |
diag_outline();
|
8 | 15 |
}
|
9 | 16 |
|
10 | 17 |
module cap() {
|
|
17 | 24 |
translate([0, 0, cap_height])
|
18 | 25 |
cylinder(h=cap_depth+eps, r=otid / 2 - wall_thickness);
|
19 | 26 |
}
|
20 | |
|
21 | |
union() {
|
22 | |
rotate([0,0,45]) diag(cap_height+cross_depth);
|
23 | |
rotate([0,0,-45]) diag(cap_height+cross_depth);
|
|
27 |
translate([0, 0, stem_height]) {
|
|
28 |
union() {
|
|
29 |
rotate([0,0,45]) diag();
|
|
30 |
rotate([0,0,-45]) diag();
|
|
31 |
}
|
24 | 32 |
}
|
|
33 |
cylinder(h=stem_height, r=stem_diam/2);
|
|
34 |
translate([0, 0, stem_height]) cylinder(h=cross_depth, r1=stem_diam/2, r2=0);
|
|
35 |
translate([0, 0, cap_height]) cylinder(h=stem_cross_support_height, r1=itid/2 - 1, r2=stem_diam/2);
|
25 | 36 |
}
|
26 | 37 |
|
27 | 38 |
cap();
|