0 | 0 |
include <dims.scad>
|
|
1 |
use <cap.scad>
|
1 | 2 |
|
2 | 3 |
brace_w = 10;
|
3 | 4 |
brace_h = 4;
|
4 | 5 |
|
5 | 6 |
module brace() {
|
6 | |
translate([-otid/2, -brace_w/2, cap_depth - brace_h])
|
|
7 |
translate([-otid/2, -brace_w/2, -cap_height])
|
7 | 8 |
cube([otid, brace_w, brace_h]);
|
8 | 9 |
}
|
9 | 10 |
|
|
11 | 12 |
union() {
|
12 | 13 |
difference() {
|
13 | 14 |
union() {
|
14 | |
cylinder(h=cap_depth, r=otid/2);
|
|
15 |
cylinder(h=cap_depth, r1=otid / 2, r2=(otid - 2) / 2);
|
15 | 16 |
translate([0, 0, -cap_height])
|
16 | 17 |
cylinder(h=cap_height, r=otod/2);
|
17 | 18 |
}
|
18 | 19 |
translate([0, 0, -cap_height-eps]) {
|
19 | 20 |
cylinder(h=cap_height+cap_depth+2*eps,
|
20 | 21 |
r=otid/2-wall_thickness);
|
21 | |
translate([-channel_w/2, 0, 0])
|
22 | |
cube([channel_w, otod/2+eps, cap_height+3*eps]);
|
|
22 |
rotate([90, 0, 0])
|
|
23 |
cylinder(h = otod/2 + eps, r = channel_w/2);
|
23 | 24 |
}
|
24 | 25 |
}
|
25 | 26 |
intersection() {
|
26 | |
difference() {
|
27 | |
union() {
|
28 | |
rotate([0, 0, 45]) brace();
|
29 | |
rotate([0, 0, -45]) brace();
|
30 | |
translate([-itod/2, -itod/2, -wall_thickness])
|
31 | |
linear_extrude(height=cap_depth+wall_thickness)
|
32 | |
offset(wall_thickness)
|
33 | |
square([itod, itod]);
|
|
27 |
union() {
|
|
28 |
rotate([0, 0, 45]) brace();
|
|
29 |
rotate([0, 0, -45]) brace();
|
|
30 |
translate([0, 0, -cap_height]) {
|
|
31 |
rotate([0, 0, 45]) diag(cap_height + cap_depth);
|
|
32 |
rotate([0, 0, -45]) diag(cap_height + cap_depth);
|
34 | 33 |
}
|
35 | |
translate([0, 0, -eps])
|
36 | |
linear_extrude(height=cap_depth + 2 * eps)
|
37 | |
translate([-itod/2+itcr, -itod/2+itcr])
|
38 | |
offset(itcr)
|
39 | |
square([itod-2*itcr, itod-2*itcr]);
|
40 | 34 |
}
|
41 | 35 |
translate([0, 0, -cap_height])
|
42 | 36 |
cylinder(h=cap_depth+cap_height, r=otid/2 - wall_thickness / 2);
|