author | Michael Krelin <hacker@klever.net> | 2016-07-22 15:58:12 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2016-07-22 15:58:12 (UTC) |
commit | b111117f933cfa683a2d19bb1962a566f2a49f8f (patch) (unidiff) | |
tree | b74000656232716110fa03519129350cff7e9adc /fanduct.scad | |
parent | 57ffe20dcc5e5c0077272e8a0a3bb093d4da001d (diff) | |
download | fanductory-master.zip fanductory-master.tar.gz fanductory-master.tar.bz2 |
-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 | |||
@@ -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 | } |