summaryrefslogtreecommitdiff
path: root/mixer.scad
authorMichael Krelin <hacker@klever.net>2018-07-31 19:31:44 (UTC)
committer Michael Krelin <hacker@klever.net>2018-07-31 19:31:44 (UTC)
commit04f03386761d24bf28759d2dbefa7c9bd10a3726 (patch) (side-by-side diff)
treeb0fcc721ee33730af7c0e5572df020442abad815 /mixer.scad
parentda262d91847673cd90269f164fc8ca5081333e3b (diff)
downloadextrudery-04f03386761d24bf28759d2dbefa7c9bd10a3726.zip
extrudery-04f03386761d24bf28759d2dbefa7c9bd10a3726.tar.gz
extrudery-04f03386761d24bf28759d2dbefa7c9bd10a3726.tar.bz2
mixer: committing narrow-channel version
but basically I abandon this design
Diffstat (limited to 'mixer.scad') (more/less context) (ignore whitespace changes)
-rw-r--r--mixer.scad77
1 files changed, 49 insertions, 28 deletions
diff --git a/mixer.scad b/mixer.scad
index 3740ae5..c298482 100644
--- a/mixer.scad
+++ b/mixer.scad
@@ -24,22 +24,54 @@ module the_mixer(
liner_d = 4, liner_id = 2, // ptfe liner inner and outer diameters
filament_d = 1.75,
join_angle = 30,
+ joint = "wide", // wide|narrow
interpushfit = 2*extrusion_width, // space between two pushfit holes
pushfit_s = 2, // shell around pushfit holes
- output_l = 4, // length of output after before pushfit
+ output_l = 4, // length of output liner after before pushfit
outer_r = 3, // outer radius
liner_d_tolerance = .2,
+ filament_d_tolerance = .25
) {
fnd = PI*2*2; fnr = fnd*2;
- module liner(l,in) {
- inh=ld-liner_id;
- union() {
- translate([0,0,inh])
- cylinder(d=ld,h=l-inh,$fn=ld*fnd);
- translate([0,0,-epsilon])
- cylinder(d1=ld+epsilon,d2=liner_id-epsilon,h=inh+2*epsilon,$fn=ld*fnd);
+
+ ld = liner_d+liner_d_tolerance;
+ fd = filament_d+filament_d_tolerance;
+ linero = ld/2/tan(join_angle/2); // liner offset
+
+ jd = (joint=="narrow") ? fd : ld; // joint diameter
+ jo = (joint=="narrow") ? jd/2/tan(join_angle/2) : linero; // joint offset
+
+ pfrx = interpushfit/2/cos(join_angle/2); // radial margin
+ pfR = pushfit_d/2+pfrx; // radius of pushfit with margin
+ // offset of pushfit offset
+ pfoo = (pushfit_type=="threaded") ? 0 :
+ (pushfit_type=="embedded") ? (pushfit_h-pushfit_ring_h) :
+ (pushfit_type=="embeddest") ? 0 : undef;
+ pfo = pfR/tan(join_angle/2)-pfoo; // pushfit thread ofset
+
+ h = pushfit_d+pushfit_s*2;
+
+ module liner(l,in,offset=0,linero) {
+ lo = linero==undef ? l/2 : linero;
+ translate([0,0,offset])
+ if(joint=="narrow") {
+ $fn = max(fd,ld,jd)*fnd;
+ cylinder(d=fd,h=l);
+ //if(in=="top") cylinder(d1=jd,d2=fd,h=(jd-fd)/2);
+ translate([0,0,lo])
+ cylinder(d=ld,h=l-lo);
+ if(in=="bottom") translate([0,0,lo+epsilon]) mirror([0,0,1])
+ cylinder(d1=(liner_id+ld)/2,d2=fd,h=(liner_id+ld-fd)/2);
+ }else{
+ inh=ld-liner_id;
+ union() {
+ translate([0,0,inh])
+ cylinder(d=ld,h=l-inh,$fn=ld*fnd);
+ translate([0,0,-epsilon])
+ cylinder(d1=ld+epsilon,d2=liner_id-epsilon,h=inh+2*epsilon,$fn=ld*fnd);
+ }
}
}
module pushfit() {
@@ -52,7 +84,7 @@ module the_mixer(
}else if(pushfit_type=="embeddest") {
cylinder(d=pushfit_id,h=pushfit_h+1,$fn=pushfit_insert_d*fnd);
cylinder(d=pushfit_d,h=pushfit_legspace_h,$fn=pushfit_d*fnd);
- dd = pushfit_d-pushfit_id;
+ dd = (pushfit_d-pushfit_id)/2;
translate([0,0,pushfit_legspace_h-epsilon])
cylinder(d1=pushfit_d,d2=pushfit_id-2*epsilon,h=dd+epsilon,$fn=pushfit_d*fnd);
translate([0,0,pushfit_h-pushfit_inlet_ch-epsilon])
@@ -60,17 +92,6 @@ module the_mixer(
}
}
- ld = liner_d+liner_d_tolerance;
- linero = ld/2/tan(join_angle/2); // liner offset
- pfrx = interpushfit/2/cos(join_angle/2); // radial margin
- pfR = pushfit_d/2+pfrx; // radius of pushfit with margin
- // offset of pushfit offset
- pfoo = (pushfit_type=="threaded") ? 0 :
- (pushfit_type=="embedded") ? (pushfit_h-pushfit_ring_h) :
- (pushfit_type=="embeddest") ? 0 : undef;
- pfo = pfR/tan(join_angle/2)-pfoo; // pushfit thread ofset
-
- h = pushfit_d+pushfit_s*2;
difference() {
hull() {
for(s=[-1,1]) {
@@ -83,14 +104,13 @@ module the_mixer(
}
}
for(s=[-1,1]) rotate([0,0,s*join_angle/2]) {
- translate([0,linero,0]) rotate([-90,0,0])
- liner(l=pfo-linero+epsilon,in="bottom");
- //cylinder(d=ld,h=pfo-linero+1,$fn=ld*fnd);
+ rotate([-90,0,0])
+ liner(l=pfo-jo+epsilon,in="bottom",offset=jo);
translate([0,pfo,0]) rotate([-90,0,0])
pushfit();
}
rotate([90,0,0]) {
- liner(l=output_l+epsilon,in="top");
+ liner(l=output_l+epsilon,in="top",linero=0);
//cylinder(d=ld,h=output_l+1,$fn=ld*fnd);
translate([0,0,output_l])
pushfit();
@@ -98,11 +118,11 @@ module the_mixer(
hull() {
for(s=[-1,1]) rotate([0,0,s*join_angle/2]) {
rotate([-90,0,0])
- translate([0,0,linero])
- cylinder(d=ld,h=epsilon,$fn=ld*fnd);
+ translate([0,0,jo])
+ cylinder(d=jd,h=epsilon,$fn=jd*fnd);
}
rotate([90,0,0])
- cylinder(d=ld,h=epsilon,$fn=ld*fnd);
+ cylinder(d=jd,h=epsilon,$fn=jd*fnd);
}
}
}
@@ -112,7 +132,8 @@ module this() {
pushfit_type="embeddest",
pushfit_d = 8,
pushfit_h = 7,
- interpushfit = extrusion_width
+ interpushfit = extrusion_width,
+ joint = "narrow"
);
}