summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--pushfittery.scad1
1 files changed, 1 insertions, 0 deletions
diff --git a/pushfittery.scad b/pushfittery.scad
index adebec2..ee3bbd0 100644
--- a/pushfittery.scad
+++ b/pushfittery.scad
@@ -1,43 +1,44 @@
1layer_height=.2;
1draft = true; 2draft = true;
2 3
3use <threads.scad>; 4use <threads.scad>;
4 5
5function pf_(d,k) = d[search([k],d)[0]][1]; 6function pf_(d,k) = d[search([k],d)[0]][1];
6function pf_d(pf) = pf_(pf,"d"); 7function pf_d(pf) = pf_(pf,"d");
7function pf_h(pf) = pf_(pf,"h"); 8function pf_h(pf) = pf_(pf,"h");
8module pushfit(pf,draft=draft) { 9module pushfit(pf,draft=draft) {
9 fnd = 2*PI; epsilon=.01; 10 fnd = 2*PI; epsilon=.01;
10 type = pf_(pf,"type"); 11 type = pf_(pf,"type");
11 h = pf_h(pf); 12 h = pf_h(pf);
12 if(type=="threaded") { 13 if(type=="threaded") {
13 minch = 25.4; 14 minch = 25.4;
14 d = (pf_d(pf) + pf_(pf,"d_tolerance"))/minch; 15 d = (pf_d(pf) + pf_(pf,"d_tolerance"))/minch;
15 tpi = pf_(pf,"tpi"); 16 tpi = pf_(pf,"tpi");
16 if(draft) cylinder(d=d*minch,h=h+epsilon); 17 if(draft) cylinder(d=d*minch,h=h+epsilon);
17 else english_thread(diameter=d,threads_per_inch=tpi,length=h/minch+epsilon,internal=true); 18 else english_thread(diameter=d,threads_per_inch=tpi,length=h/minch+epsilon,internal=true);
18 slitl = d*minch+layer_height; 19 slitl = d*minch+layer_height;
19 slitw = 0.8*d*minch/2; 20 slitw = 0.8*d*minch/2;
20 echo(slitw,slitl); 21 echo(slitw,slitl);
21 translate([-slitw/2,-slitl/2,0]) cube([slitw,slitl,h+epsilon]); 22 translate([-slitw/2,-slitl/2,0]) cube([slitw,slitl,h+epsilon]);
22 }else if(type=="embedded") { 23 }else if(type=="embedded") {
23 d = pf_d(pf); 24 d = pf_d(pf);
24 h_ring = pf_(pf,"h_ring"); 25 h_ring = pf_(pf,"h_ring");
25 d_insert = pf_(pf,"d_insert"); 26 d_insert = pf_(pf,"d_insert");
26 $fn = d*fnd; 27 $fn = d*fnd;
27 translate([0,0,h-h_ring]) cylinder(d=d,h=h_ring+epsilon); 28 translate([0,0,h-h_ring]) cylinder(d=d,h=h_ring+epsilon);
28 cylinder(d=d_insert,h=h); 29 cylinder(d=d_insert,h=h);
29 }else if(type=="embeddest") { 30 }else if(type=="embeddest") {
30 d = pf_d(pf); 31 d = pf_d(pf);
31 id = pf_(pf,"id"); 32 id = pf_(pf,"id");
32 h_legspace = pf_(pf,"h_legspace"); 33 h_legspace = pf_(pf,"h_legspace");
33 ch = pf_(pf,"ch"); 34 ch = pf_(pf,"ch");
34 $fn = d*fnd; 35 $fn = d*fnd;
35 cylinder(d=id,h=h+1); 36 cylinder(d=id,h=h+1);
36 cylinder(d=d,h=h_legspace); 37 cylinder(d=d,h=h_legspace);
37 dd = (d-id)/2; 38 dd = (d-id)/2;
38 translate([0,0,h_legspace-epsilon]) 39 translate([0,0,h_legspace-epsilon])
39 cylinder(d1=d,d2=id-2*epsilon,h=dd+epsilon); 40 cylinder(d1=d,d2=id-2*epsilon,h=dd+epsilon);
40 translate([0,0,h-ch-epsilon]) 41 translate([0,0,h-ch-epsilon])
41 cylinder(d1=id-2*epsilon,d2=id+2*ch+2,h=ch+epsilon+1); 42 cylinder(d1=id-2*epsilon,d2=id+2*ch+2,h=ch+epsilon+1);
42 } 43 }
43}//pushfit module 44}//pushfit module