summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--fanduct.scad17
1 files changed, 12 insertions, 5 deletions
diff --git a/fanduct.scad b/fanduct.scad
index 75a3bb1..7a9e205 100644
--- a/fanduct.scad
+++ b/fanduct.scad
@@ -21,11 +21,12 @@ fanduct_ir = heater_clearance+5; // inner radius
21 jet_angle = 60-2; // angular width of the jet 21 jet_angle = 60-2; // angular width of the jet
22 22
23 inlet_w = 12.5; // inlet width 23 inlet_w = 12.5; // inlet width
24 inlet_h = 17; // inlet height 24 inlet_h = 17; // inlet height
25 inlet_l = 7; // inlet length of protrusion (or depth of intrusion:)) 25 inlet_short_l = 7;// inlet length of protrusion (or depth of intrusion:))
26 inlet_away = 15;// how far away inlet is 26 inlet_away = 15;// how far away inlet is
27 27
28inlet_long_l = inlet_short_l+inlet_h;
28hotend_clearance = heater_clearance; 29hotend_clearance = heater_clearance;
29 30
30 snapper_d = 8; snapper_overlap=0.2;// snip snap 31 snapper_d = 8; snapper_overlap=0.2;// snip snap
31 32
@@ -187,17 +188,23 @@ module fanduct(type=type,ductshape=ductshape) {
187 children(); 188 children();
188 } 189 }
189 if(what=="in") { 190 if(what=="in") {
190 placeit() translate([0,-inlet_w/2,0]) { 191 placeit() translate([0,-inlet_w/2,0]) {
191 cube(size=[inlet_h,inlet_w,inlet_l+fanduct_shell]); 192 difference() {
193 cube(size=[inlet_h,inlet_w,inlet_long_l+fanduct_shell]);
194 translate([inlet_h+fanduct_shell,0,inlet_long_l+fanduct_shell])
195 rotate([-90,0,0])
196 translate([0,0,-1])
197 cylinder(r=inlet_h,h=inlet_w+2*fanduct_shell+2,$fn=inlet_h*4);
198 }
192 // supports 199 // supports
193 for(i=[-1,0,1]) 200 for(i=[-1,0,1])
194 translate([-fanduct_shell, 201 translate([-fanduct_shell,
195 (i+1)*(inlet_w-extrusion_width)/2, 202 (i+1)*(inlet_w-extrusion_width)/2,
196 -inlet_away-fanduct_w/2]) 203 -inlet_away-fanduct_w/2])
197 cube(size=[fanduct_shell, 204 cube(size=[fanduct_shell,
198 extrusion_width, 205 extrusion_width,
199 inlet_l+fanduct_shell+inlet_away+fanduct_w/2]); 206 inlet_long_l+fanduct_shell+inlet_away+fanduct_w/2]);
200 } 207 }
201 hull() { 208 hull() {
202 placeit() translate([-fanduct_shell,-inlet_w/2-fanduct_shell,0]) 209 placeit() translate([-fanduct_shell,-inlet_w/2-fanduct_shell,0])
203 cube(size=[inlet_h+2*fanduct_shell,inlet_w+2*fanduct_shell,fanduct_shell]); 210 cube(size=[inlet_h+2*fanduct_shell,inlet_w+2*fanduct_shell,fanduct_shell]);
@@ -206,9 +213,9 @@ module fanduct(type=type,ductshape=ductshape) {
206 cube(size=[1,inlet_w+fanduct_shell,fanduct_shell*2+fanduct_h]); 213 cube(size=[1,inlet_w+fanduct_shell,fanduct_shell*2+fanduct_h]);
207 } 214 }
208 }else if(what=="out") { 215 }else if(what=="out") {
209 placeit() translate([fanduct_shell,-inlet_w/2+fanduct_shell,0]) 216 placeit() translate([fanduct_shell,-inlet_w/2+fanduct_shell,0])
210 cube(size=[inlet_h-2*fanduct_shell,inlet_w-2*fanduct_shell,inlet_l+fanduct_shell+1]); 217 cube(size=[inlet_h-2*fanduct_shell,inlet_w-2*fanduct_shell,inlet_long_l+fanduct_shell+1]);
211 hull() { 218 hull() {
212 placeit() translate([fanduct_shell,-inlet_w/2+fanduct_shell,0]) 219 placeit() translate([fanduct_shell,-inlet_w/2+fanduct_shell,0])
213 cube(size=[inlet_h-2*fanduct_shell,inlet_w-2*fanduct_shell,fanduct_shell]); 220 cube(size=[inlet_h-2*fanduct_shell,inlet_w-2*fanduct_shell,fanduct_shell]);
214 translate([-fanduct_ir-fanduct_shell-fanduct_w/2,0,fanduct_shell]) 221 translate([-fanduct_ir-fanduct_shell-fanduct_w/2,0,fanduct_shell])
@@ -253,9 +260,9 @@ module fanduct(type=type,ductshape=ductshape) {
253 } 260 }
254 } 261 }
255} 262}
256 263
257view="vcut"; // hcut|vcut|* 264view="*"; // hcut|vcut|*
258 265
259hinfinity=4*(fanduct_ir+fanduct_shell*2+fanduct_w+inlet_away); 266hinfinity=4*(fanduct_ir+fanduct_shell*2+fanduct_w+inlet_away);
260vinfinity=2*(fanduct_shell*2+fanduct_h+inlet_h); 267vinfinity=2*(fanduct_shell*2+fanduct_h+inlet_h);
261if(view=="hcut") { 268if(view=="hcut") {