author | Michael Krelin <hacker@klever.net> | 2018-07-25 21:42:12 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2018-07-25 21:42:12 (UTC) |
commit | 66ee4d791039758827518a354b2d964348c863b6 (patch) (side-by-side diff) | |
tree | 6a48d998dfc99cb97545a1b03c96c5ce5172ab8c | |
parent | 5ab7711ef9b9180121e7dc4e8d33afd5a5ff97d1 (diff) | |
download | extrudery-66ee4d791039758827518a354b2d964348c863b6.zip extrudery-66ee4d791039758827518a354b2d964348c863b6.tar.gz extrudery-66ee4d791039758827518a354b2d964348c863b6.tar.bz2 |
add liner tolerance
-rw-r--r-- | multimixer.scad | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/multimixer.scad b/multimixer.scad index 80f41f1..c7b3489 100644 --- a/multimixer.scad +++ b/multimixer.scad @@ -11,27 +11,30 @@ module multimixer( inputs = 4, minshell = 2*extrusion_width, shell = 5*extrusion_width, pf = pushfit_embeddest, debug = 0, // how many inputs -1 the debug cutout spans print = false, + + liner_d_tolerance=.2 ) { fnd = 4*PI; fnr = 2*fnd; pushfit_d = pf_d(pf); pushfit_h = pf_h(pf); angular_step = 360/inputs; inputogon_angle = 180*(inputs-2)/inputs; + lod = liner_od+liner_d_tolerance; // effective liner diameter sinsin = sin(angle)*sin(angular_step/2); function l_to(d) = d*cos(asin(sinsin))/sinsin; - l_output = liner_od; + l_output = lod; l_input = l_to(pushfit_d/2+minshell); l_fork = l_to(liner_id/2); - l_narrow = l_to(liner_od/2+minshell); + l_narrow = l_to(lod/2+minshell); module forinputs() { for(zr=[0:angular_step:359]) rotate([0,0,zr]) rotate([0,angle,0]) children(); }//forinputs module module foroutput() { rotate([180,0,0]) children(); @@ -73,21 +76,21 @@ module multimixer( cylinder(d=pushfit_d+shell*2,h=epsilon,$fn=pushfit_d*fnd); } } forinputs() { translate([0,0,l_input]) pushfit(pf); translate([0,0,l_narrow]) { - cylinder(d=liner_od,h=l_input+1-l_narrow,$fn=liner_od*fnd); + cylinder(d=lod,h=l_input+1-l_narrow,$fn=lod*fnd); mirror([0,0,1]) translate([0,0,-epsilon]) - cylinder(d1=(liner_id+liner_od)/2,d2=liner_id,h=liner_id,$fn=liner_od*fnd); + cylinder(d1=(liner_id+lod)/2,d2=liner_id,h=liner_id,$fn=lod*fnd); } cylinder(d=liner_id,h=l_input+epsilon,$fn=liner_id*fnd); } foroutput() { translate([0,0,l_output]) pushfit(pf); - cylinder(d=liner_od,h=l_input+1,$fn=liner_od*fnd); + cylinder(d=lod,h=l_output+1,$fn=lod*fnd); } hull() { forinputs() translate([0,0,l_fork]) cylinder(d=liner_id,h=epsilon,$fn=liner_id*fnd); foroutput() cylinder(d=liner_id,h=epsilon,$fn=liner_id*fnd); |