summaryrefslogtreecommitdiff
Side-by-side diff
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(
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;
@@ -22,13 +24,14 @@ module multimixer(
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();
@@ -76,15 +79,15 @@ module multimixer(
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()