summaryrefslogtreecommitdiffabout
path: root/fanduct.scad
authorMichael Krelin <hacker@klever.net>2016-05-29 21:12:15 (UTC)
committer Michael Krelin <hacker@klever.net>2016-05-29 21:12:15 (UTC)
commit1bc06881cec07ceaafc0b98310b2424feda5f354 (patch) (unidiff)
treea976223bd80e8370c3e4773affe85289ba7eb300 /fanduct.scad
parent255f4886db8797a9b1c8079f6a166e92e4eb1f4c (diff)
downloadfanductory-1bc06881cec07ceaafc0b98310b2424feda5f354.zip
fanductory-1bc06881cec07ceaafc0b98310b2424feda5f354.tar.gz
fanductory-1bc06881cec07ceaafc0b98310b2424feda5f354.tar.bz2
toroidal duct
Diffstat (limited to 'fanduct.scad') (more/less context) (ignore whitespace changes)
-rw-r--r--fanduct.scad18
1 files changed, 10 insertions, 8 deletions
diff --git a/fanduct.scad b/fanduct.scad
index a843023..41048bf 100644
--- a/fanduct.scad
+++ b/fanduct.scad
@@ -13,59 +13,61 @@ fanduct_w = 6; // inner width of the duct
13 fanduct_shell=1.2; // shell thickness 13 fanduct_shell=1.2; // shell thickness
14 fanduct_ir = sqrt(pow(heater_w/2,2)+pow(heater_l-nozzle_offset,2))+5;// inner radius 14 fanduct_ir = sqrt(pow(heater_w/2,2)+pow(heater_l-nozzle_offset,2))+5;// inner radius
15 15
16 jet_angle = 60; // angular width of the jet 16 jet_angle = 60; // angular width of the jet
17 17
18 inlet_w = 12.5; // inlet width 18 inlet_w = 12.5; // inlet width
19 inlet_h = 17; // inlet height 19 inlet_h = 17; // inlet height
20 inlet_l = 7; // inlet length of protrusion (or depth of intrusion:)) 20 inlet_l = 7; // inlet length of protrusion (or depth of intrusion:))
21 inlet_away = 15;// how far away inlet is 21 inlet_away = 15;// how far away inlet is
22 22
23hotend_clearance = 12; 23hotend_clearance = 12;
24 24
25 snapper_d = 8; snapper_overlap=0.2;// snip snap 25 snapper_d = 8; snapper_overlap=0.2;// snip snap
26 26
27smooth_f = 120; 27smooth_f = 120;
28 28
29type="3jets"; // "3jets" ; // circular|3jets 29type="3jets"; // "3jets" ; // circular|3jets
30 30
31 31
32module fanduct(type=type) { 32module fanduct(type=type) {
33 33
34 // ***duct is all around! 34 // ***duct is all around!
35 module duct(what) { 35 module duct(what) {
36 if(what=="in") { 36 if(what=="in") {
37 sh = fanduct_w+2*fanduct_shell; sv = fanduct_h+2*fanduct_shell;
38 smax = max(sh,sv);
37 rotate_extrude($fn=smooth_f) 39 rotate_extrude($fn=smooth_f)
38 translate([fanduct_ir,0]) 40 translate([sh/2+fanduct_ir,sv/2])
39 square([fanduct_w+2*fanduct_shell,fanduct_h+2*fanduct_shell]); 41 scale([sh/smax,sv/smax])
42 circle(d=smax,$fn=4*smax);
40 }else if(what=="out") { 43 }else if(what=="out") {
44 sh = fanduct_w; sv = fanduct_h;
45 smax = max(sh,sv);
41 rotate_extrude($fn=smooth_f) 46 rotate_extrude($fn=smooth_f)
42 translate([fanduct_ir+fanduct_shell,fanduct_shell]) 47 translate([sh/2+fanduct_shell+fanduct_ir,sv/2+fanduct_shell])
43 union() { 48 scale([sh/smax,sv/smax])
44 square([fanduct_w,fanduct_h/2]); 49 circle(d=smax,$fn=4*smax);
45 translate([fanduct_w/2,fanduct_h-fanduct_w/2])
46 rotate([0,0,90]) circle(d=fanduct_w,$fn=36);
47 }
48 } 50 }
49 } 51 }
50 52
51 // ***bumps for easier position adjustments in line with hotend 53 // ***bumps for easier position adjustments in line with hotend
52 module marks(what) { 54 module marks(what) {
53 if(what=="in") { 55 if(what=="in") {
54 for(y=[-1,1]) 56 for(y=[-1,1])
55 hull() for(z=[0,-fanduct_shell-fanduct_h/2]) 57 hull() for(z=[0,-fanduct_shell-fanduct_h/2])
56 translate([0,y*(fanduct_ir+fanduct_shell+fanduct_w/2),fanduct_shell*2+fanduct_h+z]) 58 translate([0,y*(fanduct_ir+fanduct_shell+fanduct_w/2),fanduct_shell*2+fanduct_h+z])
57 rotate([90,0,0]) { 59 rotate([90,0,0]) {
58 cylinder(r=fanduct_shell,h=fanduct_w,center=true,$fn=30); 60 cylinder(r=fanduct_shell,h=fanduct_w,center=true,$fn=30);
59 for(z=[-1,1]) translate([0,0,z*fanduct_w/2]) 61 for(z=[-1,1]) translate([0,0,z*fanduct_w/2])
60 sphere(r=fanduct_shell,$fn=30); 62 sphere(r=fanduct_shell,$fn=30);
61 } 63 }
62 } 64 }
63 } 65 }
64 66
65 // ***output 67 // ***output
66 module output(what,type=type) { 68 module output(what,type=type) {
67 module guideline(xyxy) { 69 module guideline(xyxy) {
68 module pin(xy) { 70 module pin(xy) {
69 translate([xy[0],xy[1],0]) 71 translate([xy[0],xy[1],0])
70 cylinder(d=2*extrusion_width,h=2*fanduct_shell+inlet_h,$fn=6); 72 cylinder(d=2*extrusion_width,h=2*fanduct_shell+inlet_h,$fn=6);
71 } 73 }