summaryrefslogtreecommitdiffabout
authorMichael Krelin <hacker@klever.net>2016-05-29 21:10:43 (UTC)
committer Michael Krelin <hacker@klever.net>2016-05-29 21:10:43 (UTC)
commit2ad350e5b2661fa64d3b04588b9b0986f29a72b9 (patch) (unidiff)
tree8abd233aa65fb79c35eb1abd54fe6ccf0c67ee80
parent6369f8a5865e1ce85d5b7a0520da47adbe86eba1 (diff)
downloadfanductory-2ad350e5b2661fa64d3b04588b9b0986f29a72b9.zip
fanductory-2ad350e5b2661fa64d3b04588b9b0986f29a72b9.tar.gz
fanductory-2ad350e5b2661fa64d3b04588b9b0986f29a72b9.tar.bz2
circular output going deeper
and deeper and deeper and deeper insiiiiiiiiiide
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--fanduct.scad4
1 files changed, 2 insertions, 2 deletions
diff --git a/fanduct.scad b/fanduct.scad
index e16c5ae..72143e2 100644
--- a/fanduct.scad
+++ b/fanduct.scad
@@ -36,111 +36,111 @@ module fanduct(type=type) {
36 if(what=="in") { 36 if(what=="in") {
37 rotate_extrude($fn=smooth_f) 37 rotate_extrude($fn=smooth_f)
38 translate([fanduct_ir,0]) 38 translate([fanduct_ir,0])
39 square([fanduct_w+2*fanduct_shell,fanduct_h+2*fanduct_shell]); 39 square([fanduct_w+2*fanduct_shell,fanduct_h+2*fanduct_shell]);
40 }else if(what=="out") { 40 }else if(what=="out") {
41 rotate_extrude($fn=smooth_f) 41 rotate_extrude($fn=smooth_f)
42 translate([fanduct_ir+fanduct_shell,fanduct_shell]) 42 translate([fanduct_ir+fanduct_shell,fanduct_shell])
43 union() { 43 union() {
44 square([fanduct_w,fanduct_h/2]); 44 square([fanduct_w,fanduct_h/2]);
45 translate([fanduct_w/2,fanduct_h-fanduct_w/2]) 45 translate([fanduct_w/2,fanduct_h-fanduct_w/2])
46 rotate([0,0,90]) circle(d=fanduct_w,$fn=36); 46 rotate([0,0,90]) circle(d=fanduct_w,$fn=36);
47 } 47 }
48 } 48 }
49 } 49 }
50 50
51 // ***bumps for easier position adjustments in line with hotend 51 // ***bumps for easier position adjustments in line with hotend
52 module marks(what) { 52 module marks(what) {
53 if(what=="in") { 53 if(what=="in") {
54 for(y=[-1,1]) 54 for(y=[-1,1])
55 hull() for(z=[0,-fanduct_shell-fanduct_h/2]) 55 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]) 56 translate([0,y*(fanduct_ir+fanduct_shell+fanduct_w/2),fanduct_shell*2+fanduct_h+z])
57 rotate([90,0,0]) { 57 rotate([90,0,0]) {
58 cylinder(r=fanduct_shell,h=fanduct_w,center=true,$fn=30); 58 cylinder(r=fanduct_shell,h=fanduct_w,center=true,$fn=30);
59 for(z=[-1,1]) translate([0,0,z*fanduct_w/2]) 59 for(z=[-1,1]) translate([0,0,z*fanduct_w/2])
60 sphere(r=fanduct_shell,$fn=30); 60 sphere(r=fanduct_shell,$fn=30);
61 } 61 }
62 } 62 }
63 } 63 }
64 64
65 // ***output 65 // ***output
66 module output(what,type=type) { 66 module output(what,type=type) {
67 module guideline(xyxy) { 67 module guideline(xyxy) {
68 module pin(xy) { 68 module pin(xy) {
69 translate([xy[0],xy[1],0]) 69 translate([xy[0],xy[1],0])
70 cylinder(d=2*extrusion_width,h=2*fanduct_shell+inlet_h,$fn=6); 70 cylinder(d=2*extrusion_width,h=2*fanduct_shell+inlet_h,$fn=6);
71 } 71 }
72 xyxyxy=concat(xyxy,[[0,0]]); 72 xyxyxy=concat(xyxy,[[0,0]]);
73 for(i=[0:1:len(xyxyxy)-2]) 73 for(i=[0:1:len(xyxyxy)-2])
74 hull() for(j=[i,i+1]) pin(xyxyxy[j]); 74 hull() for(j=[i,i+1]) pin(xyxyxy[j]);
75 } 75 }
76 76
77 module circus(what) { 77 module circus(what) {
78 if(what=="in") { 78 if(what=="in") {
79 difference() { 79 difference() {
80 rotate_extrude($fn=smooth_f) 80 rotate_extrude($fn=smooth_f)
81 polygon([ 81 polygon([
82 [0,-fanduct_elevation], 82 [0,-fanduct_elevation],
83 [fanduct_ir+fanduct_shell,fanduct_shell+fanduct_h/2], 83 [fanduct_ir+fanduct_shell,fanduct_shell+fanduct_h/2],
84 [fanduct_ir+fanduct_shell,0], 84 [fanduct_ir+fanduct_shell+fanduct_w/2,0],
85 [0,-fanduct_elevation-.1]]); 85 [0,-fanduct_elevation-.1]]);
86 translate([0,0,-1]) 86 translate([0,0,-1])
87 cylinder(r=hotend_clearance,h=fanduct_h+2*fanduct_shell+2,$fn=smooth_f); 87 cylinder(r=hotend_clearance,h=fanduct_h+2*fanduct_shell+2,$fn=smooth_f);
88 mirror([0,0,1]) 88 mirror([0,0,1])
89 translate([0,0,-epsilon]) 89 translate([0,0,-epsilon])
90 cylinder(r=fanduct_ir+fanduct_shell+1,h=fanduct_elevation+.1+2); 90 cylinder(r=fanduct_ir+fanduct_shell+1,h=fanduct_elevation+.1+2);
91 } 91 }
92 }else if(what=="out") { 92 }else if(what=="out") {
93 difference() { 93 difference() {
94 rotate_extrude($fn=smooth_f) 94 rotate_extrude($fn=smooth_f)
95 polygon([ 95 polygon([
96 [0,-fanduct_elevation], 96 [0,-fanduct_elevation],
97 [fanduct_ir+fanduct_shell+1,fanduct_h/2], 97 [fanduct_ir+fanduct_shell+1,fanduct_h/2],
98 [fanduct_ir+fanduct_shell+1,fanduct_shell], 98 [fanduct_ir+fanduct_w/2+fanduct_shell+1,fanduct_shell],
99 [0,-fanduct_elevation-.1]]); 99 [0,-fanduct_elevation-.1]]);
100 circus("airguides"); 100 circus("airguides");
101 } 101 }
102 }else if(what=="airguides") { 102 }else if(what=="airguides") {
103 inr = fanduct_ir+fanduct_shell; our = inr+fanduct_w; 103 inr = fanduct_ir+fanduct_shell; our = inr+fanduct_w;
104 union() { 104 union() {
105 for(my=[0,1]) mirror([0,my,0]) { 105 for(my=[0,1]) mirror([0,my,0]) {
106 guideline([ 106 guideline([
107 [-our,inlet_w/6], 107 [-our,inlet_w/6],
108 [-inr*sin(60),inr*cos(60)] 108 [-inr*sin(60),inr*cos(60)]
109 ]); 109 ]);
110 a0=30; as=15; a1=180; 110 a0=30; as=15; a1=180;
111 for(a=[a0+as:as:a1]) { 111 for(a=[a0+as:as:a1]) {
112 f = as/(a1-a+as); 112 f = as/(a1-a+as);
113 rotate([0,0,a]) guideline([[-inr-fanduct_w*f,0]]); 113 rotate([0,0,a]) guideline([[-inr-fanduct_w*f,0]]);
114 } 114 }
115 guideline([ 115 guideline([
116 [-our+fanduct_w*cos(30)*3/4,fanduct_w*sin(30)*3/4], 116 [-our+fanduct_w*cos(30)*3/4,fanduct_w*sin(30)*3/4],
117 [-inr*cos(10),inr*sin(10)] 117 [-inr*cos(10),inr*sin(10)]
118 ]); 118 ]);
119 } 119 }
120 }/*union*/ 120 }/*union*/
121 }/*airguides*/ 121 }/*airguides*/
122 } 122 }
123 123
124 module jets(what) { 124 module jets(what) {
125 od = fanduct_h/2+fanduct_shell; 125 od = fanduct_h/2+fanduct_shell;
126 difference() { 126 difference() {
127 for(a=[0:120:359]) rotate([0,0,a]) { 127 for(a=[0:120:359]) rotate([0,0,a]) {
128 if(what=="in") { 128 if(what=="in") {
129 hull() { 129 hull() {
130 translate([fanduct_ir+od/2,0,od/2]) 130 translate([fanduct_ir+od/2,0,od/2])
131 rotate([90,0,0]) 131 rotate([90,0,0])
132 cylinder(d=od,h=2*(fanduct_ir+fanduct_shell+fanduct_w/2)*sin(jet_angle/2)-3,center=true,$fn=36); 132 cylinder(d=od,h=2*(fanduct_ir+fanduct_shell+fanduct_w/2)*sin(jet_angle/2)-3,center=true,$fn=36);
133 translate([0,0,-fanduct_elevation]) sphere(r=.5); 133 translate([0,0,-fanduct_elevation]) sphere(r=.5);
134 } 134 }
135 }else if(what=="out") { 135 }else if(what=="out") {
136 hull() { 136 hull() {
137 translate([fanduct_ir+od/2,0,od/2]) 137 translate([fanduct_ir+od/2,0,od/2])
138 rotate([90,0,0]) 138 rotate([90,0,0])
139 cylinder(d=od-2*fanduct_shell,h=2*(fanduct_ir+fanduct_shell+fanduct_w/2)*sin(jet_angle/2)-3-2*fanduct_shell,center=true); 139 cylinder(d=od-2*fanduct_shell,h=2*(fanduct_ir+fanduct_shell+fanduct_w/2)*sin(jet_angle/2)-3-2*fanduct_shell,center=true);
140 translate([0,0,-fanduct_elevation]) sphere(r=.2); 140 translate([0,0,-fanduct_elevation]) sphere(r=.2);
141 } 141 }
142 } 142 }
143 } 143 }
144 if(what=="in") { 144 if(what=="in") {
145 translate([0,0,-fanduct_elevation-2+epsilon]) 145 translate([0,0,-fanduct_elevation-2+epsilon])
146 cylinder(r=fanduct_ir+fanduct_shell*2+fanduct_w+1,h=fanduct_elevation+2); 146 cylinder(r=fanduct_ir+fanduct_shell*2+fanduct_w+1,h=fanduct_elevation+2);