summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--fanduct.scad6
1 files changed, 4 insertions, 2 deletions
diff --git a/fanduct.scad b/fanduct.scad
index efc6a19..b1c9bd8 100644
--- a/fanduct.scad
+++ b/fanduct.scad
@@ -333,51 +333,53 @@ module fanduct(type=type,ductshape=ductshape,dual=dual) {
333 translate([0,nozzles_apart/2,0]) 333 translate([0,nozzles_apart/2,0])
334 for(a=[45,135]) rotate([0,0,a]) 334 for(a=[45,135]) rotate([0,0,a])
335 if(what=="in") { 335 if(what=="in") {
336 hull() { 336 hull() {
337 intersection() { 337 intersection() {
338 translate([md-fanduct_w/2,-jww/2,0]) 338 translate([md-fanduct_w/2,-jww/2,0])
339 cube(size=[fanduct_shell+fanduct_w/2,jww,od]); 339 cube(size=[fanduct_shell+fanduct_w/2,jww,od]);
340 rotate([0,0,-a]) translate([0,-nozzles_apart/2,0]) duct(what=what); 340 rotate([0,0,-a]) translate([0,-nozzles_apart/2,0]) duct(what=what);
341 } // intersection 341 } // intersection
342 translate([0,0,-fanduct_elevation]) sphere(r=.5); 342 translate([0,0,-fanduct_elevation]) sphere(r=.5);
343 } // hull 343 } // hull
344 }else if(what=="out") { 344 }else if(what=="out") {
345 hull() { 345 hull() {
346 intersection() { 346 intersection() {
347 translate([md-fanduct_w/2,-jww/2+fanduct_shell,fanduct_shell]) 347 translate([md-fanduct_w/2,-jww/2+fanduct_shell,fanduct_shell])
348 cube(size=[fanduct_w/2,jww-2*fanduct_shell,od-2*fanduct_shell]); 348 cube(size=[fanduct_w/2,jww-2*fanduct_shell,od-2*fanduct_shell]);
349 rotate([0,0,-a]) translate([0,-nozzles_apart/2,0]) duct(what=what); 349 rotate([0,0,-a]) translate([0,-nozzles_apart/2,0]) duct(what=what);
350 } // intersection 350 } // intersection
351 translate([0,0,-fanduct_elevation]) sphere(r=.5); 351 translate([0,0,-fanduct_elevation]) sphere(r=.5);
352 } // hull 352 } // hull
353 } // what=="out" 353 } // what=="out"
354 if(what=="in") { 354 if(what=="in") {
355 translate([0,0,-fanduct_elevation/2-1+epsilon]) 355 translate([0,0,-fanduct_elevation/2-1+epsilon])
356 cube(size=[2*(fanduct_ir+2*fanduct_shell+fanduct_w+1),nozzles_apart+2*(fanduct_ir+2*fanduct_shell+fanduct_w+1),fanduct_elevation+2],center=true); 356 cube(size=[2*(fanduct_ir+2*fanduct_shell+fanduct_w+1),nozzles_apart+2*(fanduct_ir+2*fanduct_shell+fanduct_w+1),fanduct_elevation+2],center=true);
357 cfn=4;
358 hc = hotend_clearance/cos(180/cfn);
357 for(my=[0,1]) mirror([0,my,0]) 359 for(my=[0,1]) mirror([0,my,0])
358 translate([0,nozzles_apart/2,-hotend_clearance]) 360 translate([0,nozzles_apart/2,-hc])
359 cylinder(r1=hotend_clearance*2,r2=0,h=hotend_clearance*2,$fn=4); 361 cylinder(r1=hc*2,r2=0,h=hc*2,$fn=cfn);
360 } 362 }
361 } // difference 363 } // difference
362 } 364 }
363 365
364 module dual_simple(what=what) { 366 module dual_simple(what=what) {
365 for(my=[0:1]) mirror([0,my,0]) if(what=="in") { 367 for(my=[0:1]) mirror([0,my,0]) if(what=="in") {
366 difference() { 368 difference() {
367 hull() { 369 hull() {
368 translate([0,nozzles_apart/2+fanduct_ir+fanduct_shell+fanduct_w/2,0]) 370 translate([0,nozzles_apart/2+fanduct_ir+fanduct_shell+fanduct_w/2,0])
369 cylinder(d=fanduct_w+2*fanduct_shell,h=fanduct_h*2/3+2*fanduct_shell); 371 cylinder(d=fanduct_w+2*fanduct_shell,h=fanduct_h*2/3+2*fanduct_shell);
370 translate([0,nozzles_apart/2,-fanduct_elevation+fanduct_blowtarget]) 372 translate([0,nozzles_apart/2,-fanduct_elevation+fanduct_blowtarget])
371 rotate([0,90,0]) cylinder(r=.5,h=fanduct_w*2,center=true); 373 rotate([0,90,0]) cylinder(r=.5,h=fanduct_w*2,center=true);
372 } 374 }
373 rr = 2*(fanduct_ir+fanduct_shell*2+fanduct_w+2); 375 rr = 2*(fanduct_ir+fanduct_shell*2+fanduct_w+2);
374 translate([-rr/2,0,0]) mirror([0,0,1]) cube(size=[rr,rr,rr]); 376 translate([-rr/2,0,0]) mirror([0,0,1]) cube(size=[rr,rr,rr]);
375 } 377 }
376 }else if(what=="out") { 378 }else if(what=="out") {
377 hull() { 379 hull() {
378 translate([0,nozzles_apart/2+fanduct_ir+fanduct_shell+fanduct_w/2,fanduct_shell]) 380 translate([0,nozzles_apart/2+fanduct_ir+fanduct_shell+fanduct_w/2,fanduct_shell])
379 cylinder(d=fanduct_w,h=fanduct_h*2/3); 381 cylinder(d=fanduct_w,h=fanduct_h*2/3);
380 translate([0,nozzles_apart/2,-fanduct_elevation+fanduct_blowtarget]) 382 translate([0,nozzles_apart/2,-fanduct_elevation+fanduct_blowtarget])
381 rotate([0,90,0]) cylinder(d=.5,h=fanduct_w*2,center=true); 383 rotate([0,90,0]) cylinder(d=.5,h=fanduct_w*2,center=true);
382 } 384 }
383 } 385 }