summaryrefslogtreecommitdiff
authorMichael Krelin <hacker@klever.net>2018-07-25 21:42:12 (UTC)
committer Michael Krelin <hacker@klever.net>2018-07-25 21:42:12 (UTC)
commit66ee4d791039758827518a354b2d964348c863b6 (patch) (unidiff)
tree6a48d998dfc99cb97545a1b03c96c5ce5172ab8c
parent5ab7711ef9b9180121e7dc4e8d33afd5a5ff97d1 (diff)
downloadextrudery-66ee4d791039758827518a354b2d964348c863b6.zip
extrudery-66ee4d791039758827518a354b2d964348c863b6.tar.gz
extrudery-66ee4d791039758827518a354b2d964348c863b6.tar.bz2
add liner tolerance
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--multimixer.scad13
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()