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) (unidiff) | |
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 @@ | |||
1 | extrusion_width=.4; | ||
2 | |||
3 | use <mixer.scad>; | ||
4 | |||
5 | the_mixer( | ||
6 | pushfit_type="embedded", | ||
7 | pushfit_d = 12, | ||
8 | pushfit_h = 7, | ||
9 | interpushfit = extrusion_width | ||
10 | ); | ||
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 @@ | |||
1 | use <mixer.scad>; | ||
2 | |||
3 | the_mixer(); | ||
@@ -1,3 +1,3 @@ | |||
1 | layer_height=0.2; extrusion_width=0.4; | 1 | layer_height=0.2; extrusion_width=0.45; |
2 | epsilon=0.01; | 2 | epsilon=0.01; |
3 | $fs=0.125; | 3 | $fs=0.125; |
@@ -16,10 +16,13 @@ module pushfit_thread(h=10) { | |||
16 | module the_mixer( | 16 | module the_mixer( |
17 | pushfit_d = 10, pushfit_h = 10, | 17 | pushfit_d = 10, pushfit_h = 10, |
18 | pushfit_type = "threaded", // threaded|embedded | ||
19 | pushfit_ring_h = 4.7, // height of embedded pushfit ring | ||
20 | pushfit_insert_d = 8, // diameter of pushfit insert legs hole | ||
18 | liner_d = 4, liner_id = 2, | 21 | liner_d = 4, liner_id = 2, |
19 | filament_d = 1.75, | 22 | filament_d = 1.75, |
20 | join_angle = 30, | 23 | join_angle = 30, |
21 | 24 | ||
22 | interpushfit = 2*extrusion_width, // space between two pushfit's threads | 25 | interpushfit = 2*extrusion_width, // space between two pushfit holes |
23 | pushfit_s = 2, // shell around pushfit threads | 26 | pushfit_s = 2, // shell around pushfit holes |
24 | output_l = 4, // length of output after before pushfit | 27 | output_l = 4, // length of output after before pushfit |
25 | outer_r = 3, // outer radius | 28 | outer_r = 3, // outer radius |
@@ -36,4 +39,13 @@ module the_mixer( | |||
36 | } | 39 | } |
37 | } | 40 | } |
41 | module pushfit() { | ||
42 | if(pushfit_type=="threaded") { | ||
43 | pushfit_thread(h=pushfit_h); | ||
44 | }else if(pushfit_type=="embedded") { | ||
45 | translate([0,0,pushfit_h-pushfit_ring_h]) | ||
46 | cylinder(d=pushfit_d,h=pushfit_ring_h,$fn=pushfit_d*PI*2); | ||
47 | cylinder(d=pushfit_insert_d,h=pushfit_h,$fn=pushfit_insert_d*PI*2); | ||
48 | } | ||
49 | } | ||
38 | 50 | ||
39 | ld = liner_d+liner_d_tolerance; | 51 | ld = liner_d+liner_d_tolerance; |
@@ -41,5 +53,6 @@ module the_mixer( | |||
41 | pfrx = interpushfit/2/cos(join_angle/2); // radial margin | 53 | pfrx = interpushfit/2/cos(join_angle/2); // radial margin |
42 | pfR = pushfit_d/2+pfrx; // radius of pushfit with margin | 54 | pfR = pushfit_d/2+pfrx; // radius of pushfit with margin |
43 | pfo = pfR/tan(join_angle/2); // pushfit thread ofset | 55 | pfoo = pushfit_type=="threaded" ? 0 : (pushfit_h-pushfit_ring_h); // offset of pushfit offset |
56 | pfo = pfR/tan(join_angle/2)-pfoo; // pushfit thread ofset | ||
44 | 57 | ||
45 | h = pushfit_d+pushfit_s*2; | 58 | h = pushfit_d+pushfit_s*2; |
@@ -60,5 +73,5 @@ module the_mixer( | |||
60 | //cylinder(d=ld,h=pfo-linero+1,$fn=ld*PI*4); | 73 | //cylinder(d=ld,h=pfo-linero+1,$fn=ld*PI*4); |
61 | translate([0,pfo,0]) rotate([-90,0,0]) | 74 | translate([0,pfo,0]) rotate([-90,0,0]) |
62 | pushfit_thread(h=pushfit_h); | 75 | pushfit(); |
63 | } | 76 | } |
64 | rotate([90,0,0]) { | 77 | rotate([90,0,0]) { |
@@ -66,5 +79,5 @@ module the_mixer( | |||
66 | //cylinder(d=ld,h=output_l+1,$fn=ld*PI*4); | 79 | //cylinder(d=ld,h=output_l+1,$fn=ld*PI*4); |
67 | translate([0,0,output_l]) | 80 | translate([0,0,output_l]) |
68 | pushfit_thread(h=pushfit_h); | 81 | pushfit(); |
69 | } | 82 | } |
70 | hull() { | 83 | hull() { |
@@ -80,9 +93,18 @@ module the_mixer( | |||
80 | } | 93 | } |
81 | 94 | ||
82 | if(false) { | 95 | module this() { |
96 | the_mixer( | ||
97 | pushfit_type="embedded", | ||
98 | pushfit_d = 12, | ||
99 | pushfit_h = 7, | ||
100 | interpushfit = extrusion_width | ||
101 | ); | ||
102 | } | ||
103 | |||
104 | if(!false) { | ||
83 | difference() { | 105 | difference() { |
84 | the_mixer(); | 106 | this(); |
85 | cylinder(d=100,h=100); | 107 | cylinder(d=100,h=100); |
86 | } | 108 | } |
87 | }else | 109 | }else |
88 | the_mixer(); | 110 | this(); |