git.haldean.org h1a / d0591b0
new cap design with deeper support at the top haldean 10 months ago
3 changed file(s) with 32 addition(s) and 11 deletion(s). Raw diff Collapse all Expand all
00 include <dims.scad>
11
2 module diag(h) {
3 d = sqrt(2 * itid * itid)/2;
2 module diag_outline() {
3 d = sqrt(2 * itid * itid)/2 - 1;
44 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();
815 }
916
1017 module cap() {
1724 translate([0, 0, cap_height])
1825 cylinder(h=cap_depth+eps, r=otid / 2 - wall_thickness);
1926 }
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 }
2432 }
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);
2536 }
2637
2738 cap();
0 $fs = 1; // limit for interpolation element size
0 $fs = 0.5; // limit for interpolation element size
11 $fa = 0.1; // minimum subtended angle for interpolation element size
22
33 in2mm = 25.4;
1111 cap_depth = 10;
1212 cross_depth = 10;
1313 wall_thickness = 4;
14 stem_height = 35;
15 stem_diam = 7;
16 stem_cross_support_height = 8;
1417
1518 channel_w = 18;
1619
00 include <dims.scad>
1 use <cap.scad>
21
32 brace_w = 10;
43 brace_h = 4;
65 module brace() {
76 translate([-otid/2, -brace_w/2, -cap_height])
87 cube([otid, brace_w, brace_h]);
8 }
9
10 module diag(h) {
11 d = sqrt(2 * itid * itid)/2;
12 wt = 1.8;
13 linear_extrude(height=h, center=false, scale=(itid-1)/itid)
14 polygon([[-d, 0], [-d+wt, wt], [d-wt, wt],
15 [d, 0], [d-wt, -wt], [-d+wt, -wt]]);
916 }
1017
1118 module guide() {