summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--mixer-embeddest.scad10
-rw-r--r--mixer.scad47
2 files changed, 41 insertions, 16 deletions
diff --git a/mixer-embeddest.scad b/mixer-embeddest.scad
new file mode 100644
index 0000000..576be47
--- a/dev/null
+++ b/mixer-embeddest.scad
@@ -0,0 +1,10 @@
+extrusion_width=.5;
+
+use <mixer.scad>;
+
+the_mixer(
+ pushfit_type="embeddest",
+ pushfit_d = 8,
+ pushfit_h = 7,
+ interpushfit = extrusion_width
+);
diff --git a/mixer.scad b/mixer.scad
index 7b2e5d4..a3510a2 100644
--- a/mixer.scad
+++ b/mixer.scad
@@ -15,9 +15,12 @@ module pushfit_thread(h=10) {
module the_mixer(
pushfit_d = 10, pushfit_h = 10,
- pushfit_type = "threaded", // threaded|embedded
+ pushfit_id = 6.5,
+ pushfit_type = "threaded", // threaded|embedded|embeddest
pushfit_ring_h = 4.7, // height of embedded pushfit ring
pushfit_insert_d = 8, // diameter of pushfit insert legs hole
+ pushfit_legspace_h = 3.2, // the height of legspace for embeddest variant
+ pushfit_inlet_ch = 1,
liner_d = 4, liner_id = 2,
filament_d = 1.75,
join_angle = 30,
@@ -29,13 +32,14 @@ module the_mixer(
liner_d_tolerance = .2,
) {
+ 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*PI*2);
+ 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);
+ cylinder(d1=ld+epsilon,d2=liner_id-epsilon,h=inh+2*epsilon,$fn=ld*fnd);
}
}
module pushfit() {
@@ -43,8 +47,16 @@ module the_mixer(
pushfit_thread(h=pushfit_h);
}else if(pushfit_type=="embedded") {
translate([0,0,pushfit_h-pushfit_ring_h])
- cylinder(d=pushfit_d,h=pushfit_ring_h,$fn=pushfit_d*PI*2);
- cylinder(d=pushfit_insert_d,h=pushfit_h,$fn=pushfit_insert_d*PI*2);
+ cylinder(d=pushfit_d,h=pushfit_ring_h,$fn=fnd);
+ cylinder(d=pushfit_insert_d,h=pushfit_h,$fn=pushfit_insert_d*fnd);
+ }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;
+ 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])
+ cylinder(d1=pushfit_id-2*epsilon,d2=pushfit_id+2*pushfit_inlet_ch+2,h=pushfit_inlet_ch+epsilon+1,$fn=(pushfit_id+2*pushfit_inlet_ch+2)*fnd);
}
}
@@ -52,7 +64,10 @@ module the_mixer(
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
- pfoo = pushfit_type=="threaded" ? 0 : (pushfit_h-pushfit_ring_h); // offset of pushfit offset
+ // 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;
@@ -62,21 +77,21 @@ module the_mixer(
rotate([0,0,s*join_angle/2])
for(ss=[-1,1])
translate([ss*pushfit_d/2,pfo+pushfit_h-outer_r-epsilon])
- cylinder(r=outer_r,h=h,center=true,$fn=outer_r*PI*4);
+ cylinder(r=outer_r,h=h,center=true,$fn=outer_r*fnr);
translate([s*pushfit_d/2,-output_l-pushfit_h+outer_r+epsilon,0])
- cylinder(r=outer_r,h=h,center=true,$fn=outer_r*PI*4);
+ cylinder(r=outer_r,h=h,center=true,$fn=outer_r*fnr);
}
}
for(s=[-1,1]) rotate([0,0,s*join_angle/2]) {
translate([0,linero,0]) rotate([-90,0,0])
- liner(l=pfo-linero+1,in="bottom");
- //cylinder(d=ld,h=pfo-linero+1,$fn=ld*PI*4);
+ liner(l=pfo-linero+epsilon,in="bottom");
+ //cylinder(d=ld,h=pfo-linero+1,$fn=ld*fnd);
translate([0,pfo,0]) rotate([-90,0,0])
pushfit();
}
rotate([90,0,0]) {
- liner(l=output_l+1,in="top");
- //cylinder(d=ld,h=output_l+1,$fn=ld*PI*4);
+ liner(l=output_l+epsilon,in="top");
+ //cylinder(d=ld,h=output_l+1,$fn=ld*fnd);
translate([0,0,output_l])
pushfit();
}
@@ -84,18 +99,18 @@ module the_mixer(
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*PI*4);
+ cylinder(d=ld,h=epsilon,$fn=ld*fnd);
}
rotate([90,0,0])
- cylinder(d=ld,h=epsilon,$fn=ld*PI*4);
+ cylinder(d=ld,h=epsilon,$fn=ld*fnd);
}
}
}
module this() {
the_mixer(
- pushfit_type="embedded",
- pushfit_d = 12,
+ pushfit_type="embeddest",
+ pushfit_d = 8,
pushfit_h = 7,
interpushfit = extrusion_width
);