author | Michael Krelin <hacker@klever.net> | 2018-07-25 05:59:03 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2018-07-25 05:59:03 (UTC) |
commit | 0d6c302f5e23490aec29d6e8cc2dffc0adce8602 (patch) (side-by-side diff) | |
tree | 3337b5a77e38f0e49cb30d1fa1f9357d1699ad97 /pushfittery.scad | |
parent | 3f077364320ef368c4fd64d476c6e9fd9394c07a (diff) | |
download | extrudery-0d6c302f5e23490aec29d6e8cc2dffc0adce8602.zip extrudery-0d6c302f5e23490aec29d6e8cc2dffc0adce8602.tar.gz extrudery-0d6c302f5e23490aec29d6e8cc2dffc0adce8602.tar.bz2 |
draft of the more materials mixer
-rw-r--r-- | pushfittery.scad | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/pushfittery.scad b/pushfittery.scad new file mode 100644 index 0000000..adebec2 --- a/dev/null +++ b/pushfittery.scad @@ -0,0 +1,43 @@ +draft = true; + +use <threads.scad>; + +function pf_(d,k) = d[search([k],d)[0]][1]; +function pf_d(pf) = pf_(pf,"d"); +function pf_h(pf) = pf_(pf,"h"); +module pushfit(pf,draft=draft) { + fnd = 2*PI; epsilon=.01; + type = pf_(pf,"type"); + h = pf_h(pf); + if(type=="threaded") { + minch = 25.4; + d = (pf_d(pf) + pf_(pf,"d_tolerance"))/minch; + tpi = pf_(pf,"tpi"); + if(draft) cylinder(d=d*minch,h=h+epsilon); + else english_thread(diameter=d,threads_per_inch=tpi,length=h/minch+epsilon,internal=true); + slitl = d*minch+layer_height; + slitw = 0.8*d*minch/2; + echo(slitw,slitl); + translate([-slitw/2,-slitl/2,0]) cube([slitw,slitl,h+epsilon]); + }else if(type=="embedded") { + d = pf_d(pf); + h_ring = pf_(pf,"h_ring"); + d_insert = pf_(pf,"d_insert"); + $fn = d*fnd; + translate([0,0,h-h_ring]) cylinder(d=d,h=h_ring+epsilon); + cylinder(d=d_insert,h=h); + }else if(type=="embeddest") { + d = pf_d(pf); + id = pf_(pf,"id"); + h_legspace = pf_(pf,"h_legspace"); + ch = pf_(pf,"ch"); + $fn = d*fnd; + cylinder(d=id,h=h+1); + cylinder(d=d,h=h_legspace); + dd = (d-id)/2; + translate([0,0,h_legspace-epsilon]) + cylinder(d1=d,d2=id-2*epsilon,h=dd+epsilon); + translate([0,0,h-ch-epsilon]) + cylinder(d1=id-2*epsilon,d2=id+2*ch+2,h=ch+epsilon+1); + } +}//pushfit module |