From 04f03386761d24bf28759d2dbefa7c9bd10a3726 Mon Sep 17 00:00:00 2001 From: Michael Krelin Date: Tue, 31 Jul 2018 19:31:44 +0000 Subject: mixer: committing narrow-channel version but basically I abandon this design --- (limited to 'mixer.scad') 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" ); } -- cgit v0.9.0.2