-rw-r--r-- | fanduct.scad | 6 |
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 | |||
@@ -341,35 +341,37 @@ module fanduct(type=type,ductshape=ductshape,dual=dual) { | |||
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 | } |