summaryrefslogtreecommitdiffabout
authorMichael Krelin <hacker@klever.net>2016-05-30 23:05:36 (UTC)
committer Michael Krelin <hacker@klever.net>2016-05-30 23:05:36 (UTC)
commitc11d5b7e8f4b8f0e7a20d81dd813a21e19b705c3 (patch) (unidiff)
treec361a9b9a84be5e1983404afdc98f3e77298664e
parentd2f2c94ddbbf6c00b6ea89257f8f3e242f9216bd (diff)
downloadfanductory-c11d5b7e8f4b8f0e7a20d81dd813a21e19b705c3.zip
fanductory-c11d5b7e8f4b8f0e7a20d81dd813a21e19b705c3.tar.gz
fanductory-c11d5b7e8f4b8f0e7a20d81dd813a21e19b705c3.tar.bz2
make the blow target adjustable
blow a bit below layer printed to target the neighborhood instead of the very nozzle
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--fanduct.scad9
1 files changed, 5 insertions, 4 deletions
diff --git a/fanduct.scad b/fanduct.scad
index 7fc1ff4..f4bb705 100644
--- a/fanduct.scad
+++ b/fanduct.scad
@@ -5,12 +5,13 @@ 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_blowtarget = -2; // what to blow at
11 fanduct_h = 6; // inner height of the duct 12 fanduct_h = 6; // inner height of the duct
12 fanduct_w = 7; // inner width of the duct 13 fanduct_w = 7; // inner width of the duct
13 fanduct_shell=1.2; // shell thickness 14 fanduct_shell=1.2; // shell thickness
14 fanduct_ir = sqrt(pow(heater_w/2,2)+pow(heater_l-nozzle_offset,2))+5;// inner radius 15 fanduct_ir = sqrt(pow(heater_w/2,2)+pow(heater_l-nozzle_offset,2))+5;// inner radius
15 16
16 jet_angle = 60; // angular width of the jet 17 jet_angle = 60; // angular width of the jet
@@ -78,29 +79,29 @@ module fanduct(type=type) {
78 79
79 module circus(what) { 80 module circus(what) {
80 if(what=="in") { 81 if(what=="in") {
81 difference() { 82 difference() {
82 rotate_extrude($fn=smooth_f) 83 rotate_extrude($fn=smooth_f)
83 polygon([ 84 polygon([
84 [0,-fanduct_elevation], 85 [0,-fanduct_elevation+fanduct_blowtarget+epsilon],
85 [fanduct_ir+fanduct_shell,fanduct_shell+fanduct_h/2], 86 [fanduct_ir+fanduct_shell,fanduct_shell+fanduct_h/2],
86 [fanduct_ir+fanduct_shell+fanduct_w/2,0], 87 [fanduct_ir+fanduct_shell+fanduct_w/2,0],
87 [0,-fanduct_elevation-.1]]); 88 [0,-fanduct_elevation+fanduct_blowtarget-epsilon]]);
88 translate([0,0,-1]) 89 translate([0,0,-1])
89 cylinder(r=hotend_clearance,h=fanduct_h+2*fanduct_shell+2,$fn=smooth_f); 90 cylinder(r=hotend_clearance,h=fanduct_h+2*fanduct_shell+2,$fn=smooth_f);
90 mirror([0,0,1]) 91 mirror([0,0,1])
91 translate([0,0,-epsilon]) 92 translate([0,0,-epsilon])
92 cylinder(r=fanduct_ir+fanduct_shell+1,h=fanduct_elevation+.1+2); 93 cylinder(r=fanduct_ir+fanduct_shell+1,h=fanduct_elevation+.1+2);
93 } 94 }
94 }else if(what=="out") { 95 }else if(what=="out") {
95 rotate_extrude($fn=smooth_f) 96 rotate_extrude($fn=smooth_f)
96 polygon([ 97 polygon([
97 [0,-fanduct_elevation], 98 [0,-fanduct_elevation+fanduct_blowtarget+epsilon],
98 [fanduct_ir+fanduct_shell+1,fanduct_h/2], 99 [fanduct_ir+fanduct_shell+1,fanduct_h/2],
99 [fanduct_ir+fanduct_w/2+fanduct_shell+1,fanduct_shell], 100 [fanduct_ir+fanduct_w/2+fanduct_shell+1,fanduct_shell],
100 [0,-fanduct_elevation-.1]]); 101 [0,-fanduct_elevation+fanduct_blowtarget-epsilon]]);
101 }else if(what=="airguides") { 102 }else if(what=="airguides") {
102 inr = fanduct_ir+fanduct_shell; our = inr+fanduct_w; 103 inr = fanduct_ir+fanduct_shell; our = inr+fanduct_w;
103 union() { 104 union() {
104 for(my=[0,1]) mirror([0,my,0]) { 105 for(my=[0,1]) mirror([0,my,0]) {
105 guideline([ 106 guideline([
106 [-our,inlet_w/6], 107 [-our,inlet_w/6],