author | Michael Krelin <hacker@klever.net> | 2017-10-31 22:22:38 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2017-10-31 22:22:38 (UTC) |
commit | 5539359e3a7a4437e043854865fc254209d1cb86 (patch) (side-by-side diff) | |
tree | 715aa476b433773971d05f5755303b0c5126bfe0 | |
parent | 91595f88cbae50b7f12821f947b55c17d8c50dd7 (diff) | |
download | extrudery-5539359e3a7a4437e043854865fc254209d1cb86.zip extrudery-5539359e3a7a4437e043854865fc254209d1cb86.tar.gz extrudery-5539359e3a7a4437e043854865fc254209d1cb86.tar.bz2 |
material mixer: embedded pushfits support
-rw-r--r-- | mixer-embedded.scad | 10 | ||||
-rw-r--r-- | mixer-threaded.scad | 3 | ||||
-rw-r--r-- | mixer.scad | 40 |
3 files changed, 44 insertions, 9 deletions
diff --git a/mixer-embedded.scad b/mixer-embedded.scad new file mode 100644 index 0000000..397572f --- a/dev/null +++ b/mixer-embedded.scad @@ -0,0 +1,10 @@ +extrusion_width=.4; + +use <mixer.scad>; + +the_mixer( + pushfit_type="embedded", + pushfit_d = 12, + pushfit_h = 7, + interpushfit = extrusion_width +); diff --git a/mixer-threaded.scad b/mixer-threaded.scad new file mode 100644 index 0000000..ff3c0aa --- a/dev/null +++ b/mixer-threaded.scad @@ -0,0 +1,3 @@ +use <mixer.scad>; + +the_mixer(); @@ -1,5 +1,5 @@ -layer_height=0.2; extrusion_width=0.4; +layer_height=0.2; extrusion_width=0.45; epsilon=0.01; $fs=0.125; draft=true; @@ -14,14 +14,17 @@ module pushfit_thread(h=10) { } module the_mixer( pushfit_d = 10, pushfit_h = 10, + pushfit_type = "threaded", // threaded|embedded + pushfit_ring_h = 4.7, // height of embedded pushfit ring + pushfit_insert_d = 8, // diameter of pushfit insert legs hole liner_d = 4, liner_id = 2, filament_d = 1.75, join_angle = 30, - interpushfit = 2*extrusion_width, // space between two pushfit's threads - pushfit_s = 2, // shell around pushfit threads + 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 outer_r = 3, // outer radius liner_d_tolerance = .2, @@ -34,14 +37,24 @@ module the_mixer( translate([0,0,-epsilon]) cylinder(d1=ld+epsilon,d2=liner_id-epsilon,h=inh+2*epsilon); } } + module pushfit() { + if(pushfit_type=="threaded") { + 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); + } + } 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 - pfo = pfR/tan(join_angle/2); // pushfit thread ofset + pfoo = pushfit_type=="threaded" ? 0 : (pushfit_h-pushfit_ring_h); // offset of pushfit offset + pfo = pfR/tan(join_angle/2)-pfoo; // pushfit thread ofset h = pushfit_d+pushfit_s*2; difference() { hull() { @@ -58,15 +71,15 @@ module the_mixer( 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); translate([0,pfo,0]) rotate([-90,0,0]) - pushfit_thread(h=pushfit_h); + pushfit(); } rotate([90,0,0]) { liner(l=output_l+1,in="top"); //cylinder(d=ld,h=output_l+1,$fn=ld*PI*4); translate([0,0,output_l]) - pushfit_thread(h=pushfit_h); + pushfit(); } hull() { for(s=[-1,1]) rotate([0,0,s*join_angle/2]) { rotate([-90,0,0]) @@ -78,11 +91,20 @@ module the_mixer( } } } -if(false) { +module this() { + the_mixer( + pushfit_type="embedded", + pushfit_d = 12, + pushfit_h = 7, + interpushfit = extrusion_width + ); +} + +if(!false) { difference() { - the_mixer(); + this(); cylinder(d=100,h=100); } }else - the_mixer(); + this(); |