summaryrefslogtreecommitdiffabout
Side-by-side diff
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
@@ -325,67 +325,69 @@ module fanduct(type=type,ductshape=ductshape,dual=dual) {
}
module dual_jets(what=what) {
od=fanduct_h*2/3+fanduct_shell;
md=fanduct_ir+fanduct_shell+fanduct_w/2;
jww = 2*md*sin(jet_angle/2);
difference() {
for(my=[0,1]) mirror([0,my,0])
translate([0,nozzles_apart/2,0])
for(a=[45,135]) rotate([0,0,a])
if(what=="in") {
hull() {
intersection() {
translate([md-fanduct_w/2,-jww/2,0])
cube(size=[fanduct_shell+fanduct_w/2,jww,od]);
rotate([0,0,-a]) translate([0,-nozzles_apart/2,0]) duct(what=what);
} // intersection
translate([0,0,-fanduct_elevation]) sphere(r=.5);
} // hull
}else if(what=="out") {
hull() {
intersection() {
translate([md-fanduct_w/2,-jww/2+fanduct_shell,fanduct_shell])
cube(size=[fanduct_w/2,jww-2*fanduct_shell,od-2*fanduct_shell]);
rotate([0,0,-a]) translate([0,-nozzles_apart/2,0]) duct(what=what);
} // intersection
translate([0,0,-fanduct_elevation]) sphere(r=.5);
} // hull
} // what=="out"
if(what=="in") {
translate([0,0,-fanduct_elevation/2-1+epsilon])
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);
+ cfn=4;
+ hc = hotend_clearance/cos(180/cfn);
for(my=[0,1]) mirror([0,my,0])
- translate([0,nozzles_apart/2,-hotend_clearance])
- cylinder(r1=hotend_clearance*2,r2=0,h=hotend_clearance*2,$fn=4);
+ translate([0,nozzles_apart/2,-hc])
+ cylinder(r1=hc*2,r2=0,h=hc*2,$fn=cfn);
}
} // difference
}
module dual_simple(what=what) {
for(my=[0:1]) mirror([0,my,0]) if(what=="in") {
difference() {
hull() {
translate([0,nozzles_apart/2+fanduct_ir+fanduct_shell+fanduct_w/2,0])
cylinder(d=fanduct_w+2*fanduct_shell,h=fanduct_h*2/3+2*fanduct_shell);
translate([0,nozzles_apart/2,-fanduct_elevation+fanduct_blowtarget])
rotate([0,90,0]) cylinder(r=.5,h=fanduct_w*2,center=true);
}
rr = 2*(fanduct_ir+fanduct_shell*2+fanduct_w+2);
translate([-rr/2,0,0]) mirror([0,0,1]) cube(size=[rr,rr,rr]);
}
}else if(what=="out") {
hull() {
translate([0,nozzles_apart/2+fanduct_ir+fanduct_shell+fanduct_w/2,fanduct_shell])
cylinder(d=fanduct_w,h=fanduct_h*2/3);
translate([0,nozzles_apart/2,-fanduct_elevation+fanduct_blowtarget])
rotate([0,90,0]) cylinder(d=.5,h=fanduct_w*2,center=true);
}
}
}
if(dual) {
if(type=="simple") dual_simple(what);
else if(type=="jets") dual_jets(what);
else dual(what);
}else if(type=="circular") circus(what);
else if(type=="jets") jets(what);