summaryrefslogtreecommitdiffabout
path: root/fanduct.scad
authorMichael Krelin <hacker@klever.net>2016-05-30 22:59:27 (UTC)
committer Michael Krelin <hacker@klever.net>2016-05-30 22:59:27 (UTC)
commitd2f2c94ddbbf6c00b6ea89257f8f3e242f9216bd (patch) (unidiff)
tree9a46be41f0f7f953ea1c3bb24c2f740f279fcefc /fanduct.scad
parent045e95f7882a47bd5dc017705f6743a61e6a5214 (diff)
downloadfanductory-d2f2c94ddbbf6c00b6ea89257f8f3e242f9216bd.zip
fanductory-d2f2c94ddbbf6c00b6ea89257f8f3e242f9216bd.tar.gz
fanductory-d2f2c94ddbbf6c00b6ea89257f8f3e242f9216bd.tar.bz2
widen duct a bit
Diffstat (limited to 'fanduct.scad') (more/less context) (ignore whitespace changes)
-rw-r--r--fanduct.scad2
1 files changed, 1 insertions, 1 deletions
diff --git a/fanduct.scad b/fanduct.scad
index b8994d4..7fc1ff4 100644
--- a/fanduct.scad
+++ b/fanduct.scad
@@ -1,108 +1,108 @@
1use <snapper.scad>; 1use <snapper.scad>;
2 extrusion_width=.5; layer_height=.2; // print parameters 2 extrusion_width=.5; layer_height=.2; // print parameters
3 3
4 epsilon=.005; // for finer cuts 4 epsilon=.005; // for finer cuts
5 5
6 heater_w = 16; // heatblock width 6 heater_w = 16; // heatblock width
7 heater_l = 20; // heatblock length 7 heater_l = 20; // heatblock length
8 nozzle_offset=4.5;// nozzle offset from the edge of heatblock 8 nozzle_offset=4.5;// nozzle offset from the edge of heatblock
9 9
10 fanduct_elevation = 3; // fanduct elevation above nozzle tip 10 fanduct_elevation = 3; // fanduct elevation above nozzle tip
11 fanduct_h = 6; // inner height of the duct 11 fanduct_h = 6; // inner height of the duct
12 fanduct_w = 6; // inner width of the duct 12 fanduct_w = 7; // 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; 37 sh = fanduct_w+2*fanduct_shell; sv = fanduct_h+2*fanduct_shell;
38 smax = max(sh,sv); 38 smax = max(sh,sv);
39 rotate_extrude($fn=smooth_f) 39 rotate_extrude($fn=smooth_f)
40 translate([sh/2+fanduct_ir,sv/2]) 40 translate([sh/2+fanduct_ir,sv/2])
41 scale([sh/smax,sv/smax]) 41 scale([sh/smax,sv/smax])
42 circle(d=smax,$fn=4*smax); 42 circle(d=smax,$fn=4*smax);
43 }else if(what=="out") { 43 }else if(what=="out") {
44 sh = fanduct_w; sv = fanduct_h; 44 sh = fanduct_w; sv = fanduct_h;
45 smax = max(sh,sv); 45 smax = max(sh,sv);
46 rotate_extrude($fn=smooth_f) 46 rotate_extrude($fn=smooth_f)
47 translate([sh/2+fanduct_shell+fanduct_ir,sv/2+fanduct_shell]) 47 translate([sh/2+fanduct_shell+fanduct_ir,sv/2+fanduct_shell])
48 scale([sh/smax,sv/smax]) 48 scale([sh/smax,sv/smax])
49 circle(d=smax,$fn=4*smax); 49 circle(d=smax,$fn=4*smax);
50 } 50 }
51 } 51 }
52 52
53 // ***bumps for easier position adjustments in line with hotend 53 // ***bumps for easier position adjustments in line with hotend
54 module marks(what) { 54 module marks(what) {
55 if(what=="in") { 55 if(what=="in") {
56 for(y=[-1,1]) 56 for(y=[-1,1])
57 hull() for(z=[0,-fanduct_shell-fanduct_h/2]) 57 hull() for(z=[0,-fanduct_shell-fanduct_h/2])
58 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])
59 rotate([90,0,0]) { 59 rotate([90,0,0]) {
60 cylinder(r=fanduct_shell,h=fanduct_w,center=true,$fn=30); 60 cylinder(r=fanduct_shell,h=fanduct_w,center=true,$fn=30);
61 for(z=[-1,1]) translate([0,0,z*fanduct_w/2]) 61 for(z=[-1,1]) translate([0,0,z*fanduct_w/2])
62 sphere(r=fanduct_shell,$fn=30); 62 sphere(r=fanduct_shell,$fn=30);
63 } 63 }
64 } 64 }
65 } 65 }
66 66
67 // ***output 67 // ***output
68 module output(what,type=type) { 68 module output(what,type=type) {
69 module guideline(xyxy) { 69 module guideline(xyxy) {
70 module pin(xy) { 70 module pin(xy) {
71 translate([xy[0],xy[1],0]) 71 translate([xy[0],xy[1],0])
72 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);
73 } 73 }
74 xyxyxy=concat(xyxy,[[0,0]]); 74 xyxyxy=concat(xyxy,[[0,0]]);
75 for(i=[0:1:len(xyxyxy)-2]) 75 for(i=[0:1:len(xyxyxy)-2])
76 hull() for(j=[i,i+1]) pin(xyxyxy[j]); 76 hull() for(j=[i,i+1]) pin(xyxyxy[j]);
77 } 77 }
78 78
79 module circus(what) { 79 module circus(what) {
80 if(what=="in") { 80 if(what=="in") {
81 difference() { 81 difference() {
82 rotate_extrude($fn=smooth_f) 82 rotate_extrude($fn=smooth_f)
83 polygon([ 83 polygon([
84 [0,-fanduct_elevation], 84 [0,-fanduct_elevation],
85 [fanduct_ir+fanduct_shell,fanduct_shell+fanduct_h/2], 85 [fanduct_ir+fanduct_shell,fanduct_shell+fanduct_h/2],
86 [fanduct_ir+fanduct_shell+fanduct_w/2,0], 86 [fanduct_ir+fanduct_shell+fanduct_w/2,0],
87 [0,-fanduct_elevation-.1]]); 87 [0,-fanduct_elevation-.1]]);
88 translate([0,0,-1]) 88 translate([0,0,-1])
89 cylinder(r=hotend_clearance,h=fanduct_h+2*fanduct_shell+2,$fn=smooth_f); 89 cylinder(r=hotend_clearance,h=fanduct_h+2*fanduct_shell+2,$fn=smooth_f);
90 mirror([0,0,1]) 90 mirror([0,0,1])
91 translate([0,0,-epsilon]) 91 translate([0,0,-epsilon])
92 cylinder(r=fanduct_ir+fanduct_shell+1,h=fanduct_elevation+.1+2); 92 cylinder(r=fanduct_ir+fanduct_shell+1,h=fanduct_elevation+.1+2);
93 } 93 }
94 }else if(what=="out") { 94 }else if(what=="out") {
95 rotate_extrude($fn=smooth_f) 95 rotate_extrude($fn=smooth_f)
96 polygon([ 96 polygon([
97 [0,-fanduct_elevation], 97 [0,-fanduct_elevation],
98 [fanduct_ir+fanduct_shell+1,fanduct_h/2], 98 [fanduct_ir+fanduct_shell+1,fanduct_h/2],
99 [fanduct_ir+fanduct_w/2+fanduct_shell+1,fanduct_shell], 99 [fanduct_ir+fanduct_w/2+fanduct_shell+1,fanduct_shell],
100 [0,-fanduct_elevation-.1]]); 100 [0,-fanduct_elevation-.1]]);
101 }else if(what=="airguides") { 101 }else if(what=="airguides") {
102 inr = fanduct_ir+fanduct_shell; our = inr+fanduct_w; 102 inr = fanduct_ir+fanduct_shell; our = inr+fanduct_w;
103 union() { 103 union() {
104 for(my=[0,1]) mirror([0,my,0]) { 104 for(my=[0,1]) mirror([0,my,0]) {
105 guideline([ 105 guideline([
106 [-our,inlet_w/6], 106 [-our,inlet_w/6],
107 [-inr*sin(60),inr*cos(60)] 107 [-inr*sin(60),inr*cos(60)]
108 ]); 108 ]);