-rw-r--r-- | pushfittery.scad | 1 |
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 @@ | |||
1 | layer_height=.2; | ||
1 | draft = true; | 2 | draft = true; |
2 | 3 | ||
3 | use <threads.scad>; | 4 | use <threads.scad>; |
4 | 5 | ||
5 | function pf_(d,k) = d[search([k],d)[0]][1]; | 6 | function pf_(d,k) = d[search([k],d)[0]][1]; |
6 | function pf_d(pf) = pf_(pf,"d"); | 7 | function pf_d(pf) = pf_(pf,"d"); |
7 | function pf_h(pf) = pf_(pf,"h"); | 8 | function pf_h(pf) = pf_(pf,"h"); |
8 | module pushfit(pf,draft=draft) { | 9 | module 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 |