summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--Makefile1
-rw-r--r--fanduct.scad3
2 files changed, 3 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 998b0ac..c52cfe7 100644
--- a/Makefile
+++ b/Makefile
@@ -1,15 +1,16 @@
1-include Makefile.local 1-include Makefile.local
2 2
3OPENSCAD_APP?=/Applications/OpenSCAD.app 3OPENSCAD_APP?=/Applications/OpenSCAD.app
4OPENSCAD_BIN?=${OPENSCAD_APP}/Contents/MacOS/OpenSCAD 4OPENSCAD_BIN?=${OPENSCAD_APP}/Contents/MacOS/OpenSCAD
5OPENSCAD_FLAGS=-D draft=false
5 6
6default: fanduct-circular.stl fanduct-3jets.stl fanduct-dual.stl 7default: fanduct-circular.stl fanduct-3jets.stl fanduct-dual.stl
7 8
8clean: 9clean:
9 rm -f *.stl 10 rm -f *.stl
10 11
11fanduct-%.stl: fanduct-%.scad fanduct.scad 12fanduct-%.stl: fanduct-%.scad fanduct.scad
12 13
13 14
14%.stl: %.scad 15%.stl: %.scad
15 ${OPENSCAD_BIN} ${OPENSCAD_FLAGS} -o "$@" "$<" 16 ${OPENSCAD_BIN} ${OPENSCAD_FLAGS} -o "$@" "$<"
diff --git a/fanduct.scad b/fanduct.scad
index 690a4c8..8d0414f 100644
--- a/fanduct.scad
+++ b/fanduct.scad
@@ -19,49 +19,50 @@ inlet_away = 15; // how far away inlet is
19inlet_long_l = inlet_short_l+inlet_h; 19inlet_long_l = inlet_short_l+inlet_h;
20function hypothenuse(a,b) = sqrt(pow(a,2)+pow(b,2)); 20function hypothenuse(a,b) = sqrt(pow(a,2)+pow(b,2));
21 21
22silicone_shell = 2; 22silicone_shell = 2;
23heater_clearance = dual 23heater_clearance = dual
24 ? max(20,15.5) - 4.5 + silicone_shell 24 ? max(20,15.5) - 4.5 + silicone_shell
25 : max( 25 : max(
26 hypothenuse(16/2 +silicone_shell, 20-4.5 +silicone_shell),// E3D v6 26 hypothenuse(16/2 +silicone_shell, 20-4.5 +silicone_shell),// E3D v6
27 hypothenuse(11.5-4.5 +silicone_shell, 15.5 +silicone_shell)// E3D volcano 27 hypothenuse(11.5-4.5 +silicone_shell, 15.5 +silicone_shell)// E3D volcano
28 ); 28 );
29 29
30 fanduct_elevation = 3; // fanduct elevation above nozzle tip 30 fanduct_elevation = 3; // fanduct elevation above nozzle tip
31 fanduct_blowtarget = -2; // what to blow at 31 fanduct_blowtarget = -2; // what to blow at
32 fanduct_h = 6; // inner height of the duct 32 fanduct_h = 6; // inner height of the duct
33 fanduct_w = 7; // inner width of the duct 33 fanduct_w = 7; // inner width of the duct
34 fanduct_shell=1.2; // shell thickness 34 fanduct_shell=1.2; // shell thickness
35 fanduct_ir = heater_clearance+5; // inner radius 35 fanduct_ir = heater_clearance+5; // inner radius
36 36
37 jet_angle = 60-2; // angular width of the jet 37 jet_angle = 60-2; // angular width of the jet
38 38
39hotend_clearance = heater_clearance; 39hotend_clearance = heater_clearance;
40 40
41 snapper_d = 8; snapper_overlap=0.2;// snip snap 41 snapper_d = 8; snapper_overlap=0.2;// snip snap
42 42
43smooth_f = 120; 43draft=true;
44smooth_f = draft? 30 : 120;
44 45
45to_midduct = fanduct_ir+fanduct_shell+fanduct_w/2; 46to_midduct = fanduct_ir+fanduct_shell+fanduct_w/2;
46dual_spots = [ [+space_behind_nozzle, -(to_midduct+nozzles_apart/2)], 47dual_spots = [ [+space_behind_nozzle, -(to_midduct+nozzles_apart/2)],
47 [- to_midduct, -(to_midduct+nozzles_apart/2)], 48 [- to_midduct, -(to_midduct+nozzles_apart/2)],
48 [- to_midduct, 0] ]; 49 [- to_midduct, 0] ];
49 50
50module fanduct(type=type,ductshape=ductshape,dual=dual) { 51module fanduct(type=type,ductshape=ductshape,dual=dual) {
51 // ***duct is all around! 52 // ***duct is all around!
52 module duct(what) { 53 module duct(what) {
53 module single() { 54 module single() {
54 if(what=="in") { 55 if(what=="in") {
55 sh = fanduct_w+2*fanduct_shell; sv = fanduct_h+2*fanduct_shell; 56 sh = fanduct_w+2*fanduct_shell; sv = fanduct_h+2*fanduct_shell;
56 smax = max(sh,sv); 57 smax = max(sh,sv);
57 rotate_extrude($fn=smooth_f) 58 rotate_extrude($fn=smooth_f)
58 if(ductshape=="round") 59 if(ductshape=="round")
59 translate([sh/2+fanduct_ir,sv/2]) 60 translate([sh/2+fanduct_ir,sv/2])
60 scale([sh/smax,sv/smax]) 61 scale([sh/smax,sv/smax])
61 circle(d=smax,$fn=4*smax); 62 circle(d=smax,$fn=4*smax);
62 else if(ductshape=="square") 63 else if(ductshape=="square")
63 translate([fanduct_ir,0]) 64 translate([fanduct_ir,0])
64 square([sh,sv]); 65 square([sh,sv]);
65 }else if(what=="out") { 66 }else if(what=="out") {
66 sh = fanduct_w; sv = fanduct_h; 67 sh = fanduct_w; sv = fanduct_h;
67 smax = max(sh,sv); 68 smax = max(sh,sv);