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) (unidiff) | |
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 | |||
@@ -14,6 +14,8 @@ module multimixer( | |||
14 | pf = pushfit_embeddest, | 14 | pf = pushfit_embeddest, |
15 | debug = 0, // how many inputs -1 the debug cutout spans | 15 | debug = 0, // how many inputs -1 the debug cutout spans |
16 | print = false, | 16 | print = false, |
17 | |||
18 | liner_d_tolerance=.2 | ||
17 | ) { | 19 | ) { |
18 | fnd = 4*PI; fnr = 2*fnd; | 20 | fnd = 4*PI; fnr = 2*fnd; |
19 | 21 | ||
@@ -22,13 +24,14 @@ module multimixer( | |||
22 | 24 | ||
23 | angular_step = 360/inputs; | 25 | angular_step = 360/inputs; |
24 | inputogon_angle = 180*(inputs-2)/inputs; | 26 | inputogon_angle = 180*(inputs-2)/inputs; |
27 | lod = liner_od+liner_d_tolerance; // effective liner diameter | ||
25 | 28 | ||
26 | sinsin = sin(angle)*sin(angular_step/2); | 29 | sinsin = sin(angle)*sin(angular_step/2); |
27 | function l_to(d) = d*cos(asin(sinsin))/sinsin; | 30 | function l_to(d) = d*cos(asin(sinsin))/sinsin; |
28 | l_output = liner_od; | 31 | l_output = lod; |
29 | l_input = l_to(pushfit_d/2+minshell); | 32 | l_input = l_to(pushfit_d/2+minshell); |
30 | l_fork = l_to(liner_id/2); | 33 | l_fork = l_to(liner_id/2); |
31 | l_narrow = l_to(liner_od/2+minshell); | 34 | l_narrow = l_to(lod/2+minshell); |
32 | 35 | ||
33 | module forinputs() { | 36 | module forinputs() { |
34 | for(zr=[0:angular_step:359]) rotate([0,0,zr]) rotate([0,angle,0]) children(); | 37 | for(zr=[0:angular_step:359]) rotate([0,0,zr]) rotate([0,angle,0]) children(); |
@@ -76,15 +79,15 @@ module multimixer( | |||
76 | forinputs() { | 79 | forinputs() { |
77 | translate([0,0,l_input]) pushfit(pf); | 80 | translate([0,0,l_input]) pushfit(pf); |
78 | translate([0,0,l_narrow]) { | 81 | translate([0,0,l_narrow]) { |
79 | cylinder(d=liner_od,h=l_input+1-l_narrow,$fn=liner_od*fnd); | 82 | cylinder(d=lod,h=l_input+1-l_narrow,$fn=lod*fnd); |
80 | mirror([0,0,1]) translate([0,0,-epsilon]) | 83 | mirror([0,0,1]) translate([0,0,-epsilon]) |
81 | cylinder(d1=(liner_id+liner_od)/2,d2=liner_id,h=liner_id,$fn=liner_od*fnd); | 84 | cylinder(d1=(liner_id+lod)/2,d2=liner_id,h=liner_id,$fn=lod*fnd); |
82 | } | 85 | } |
83 | cylinder(d=liner_id,h=l_input+epsilon,$fn=liner_id*fnd); | 86 | cylinder(d=liner_id,h=l_input+epsilon,$fn=liner_id*fnd); |
84 | } | 87 | } |
85 | foroutput() { | 88 | foroutput() { |
86 | translate([0,0,l_output]) pushfit(pf); | 89 | translate([0,0,l_output]) pushfit(pf); |
87 | cylinder(d=liner_od,h=l_input+1,$fn=liner_od*fnd); | 90 | cylinder(d=lod,h=l_output+1,$fn=lod*fnd); |
88 | } | 91 | } |
89 | hull() { | 92 | hull() { |
90 | forinputs() | 93 | forinputs() |