author | Michael Krelin <hacker@klever.net> | 2016-05-30 23:23:06 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2016-05-30 23:23:06 (UTC) |
commit | 36928b70c94190b739af1dbd39b2680b21f949d0 (patch) (unidiff) | |
tree | 515d3ca2284d56cbb98044f6938d7f7b4ba5c1ee | |
parent | c11d5b7e8f4b8f0e7a20d81dd813a21e19b705c3 (diff) | |
download | fanductory-36928b70c94190b739af1dbd39b2680b21f949d0.zip fanductory-36928b70c94190b739af1dbd39b2680b21f949d0.tar.gz fanductory-36928b70c94190b739af1dbd39b2680b21f949d0.tar.bz2 |
work around the lack of air guides
intersection with empty airguides part isn't what one may expect it to be.
-rw-r--r-- | fanduct.scad | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fanduct.scad b/fanduct.scad index f4bb705..563920c 100644 --- a/fanduct.scad +++ b/fanduct.scad | |||
@@ -205,49 +205,52 @@ module fanduct(type=type) { | |||
205 | if(what=="in") { | 205 | if(what=="in") { |
206 | for(mx=[0,1]) mirror([mx,0,0]) | 206 | for(mx=[0,1]) mirror([mx,0,0]) |
207 | translate([fanduct_ir+fanduct_shell+fanduct_w/2,0,fanduct_shell+fanduct_h/2]) | 207 | translate([fanduct_ir+fanduct_shell+fanduct_w/2,0,fanduct_shell+fanduct_h/2]) |
208 | rotate([90,0,90]) | 208 | rotate([90,0,90]) |
209 | translate([0,0,-snapper_d/2]) | 209 | translate([0,0,-snapper_d/2]) |
210 | snapper(d=snapper_d,o=snapper_overlap,side=0,l=fanduct_h*3/2+fanduct_shell); | 210 | snapper(d=snapper_d,o=snapper_overlap,side=0,l=fanduct_h*3/2+fanduct_shell); |
211 | } | 211 | } |
212 | } | 212 | } |
213 | 213 | ||
214 | module parts(what) { | 214 | module parts(what) { |
215 | union() { | 215 | union() { |
216 | duct(what); | 216 | duct(what); |
217 | marks(what); | 217 | marks(what); |
218 | output(what); | 218 | output(what); |
219 | intake(what); | 219 | intake(what); |
220 | tails(what); | 220 | tails(what); |
221 | } | 221 | } |
222 | } | 222 | } |
223 | 223 | ||
224 | difference() { | 224 | difference() { |
225 | parts("in"); | 225 | parts("in"); |
226 | parts("out"); | 226 | parts("out"); |
227 | } | 227 | } |
228 | intersection() { | 228 | intersection() { |
229 | output("airguides"); | 229 | union() { |
230 | output("airguides"); | ||
231 | sphere(d=epsilon); | ||
232 | } | ||
230 | union() { | 233 | union() { |
231 | duct("in"); output("in"); intake("in"); | 234 | duct("in"); output("in"); intake("in"); |
232 | } | 235 | } |
233 | } | 236 | } |
234 | } | 237 | } |
235 | 238 | ||
236 | view="full"; // hcut|vcut|* | 239 | view="full"; // hcut|vcut|* |
237 | 240 | ||
238 | hinfinity=4*(fanduct_ir+fanduct_shell*2+fanduct_w+inlet_away); | 241 | hinfinity=4*(fanduct_ir+fanduct_shell*2+fanduct_w+inlet_away); |
239 | vinfinity=2*(fanduct_shell*2+fanduct_h+inlet_h); | 242 | vinfinity=2*(fanduct_shell*2+fanduct_h+inlet_h); |
240 | if(view=="hcut") { | 243 | if(view=="hcut") { |
241 | difference() { | 244 | difference() { |
242 | fanduct(); | 245 | fanduct(); |
243 | translate([-hinfinity/2,-hinfinity/2,fanduct_shell+fanduct_h/2]) | 246 | translate([-hinfinity/2,-hinfinity/2,fanduct_shell+fanduct_h/2]) |
244 | cube(size=[hinfinity,hinfinity,vinfinity]); | 247 | cube(size=[hinfinity,hinfinity,vinfinity]); |
245 | } | 248 | } |
246 | }else if(view=="vcut") { | 249 | }else if(view=="vcut") { |
247 | difference() { | 250 | difference() { |
248 | fanduct(); | 251 | fanduct(); |
249 | translate([-hinfinity/2,0,-vinfinity/2]) | 252 | translate([-hinfinity/2,0,-vinfinity/2]) |
250 | cube(size=[hinfinity,hinfinity,vinfinity]); | 253 | cube(size=[hinfinity,hinfinity,vinfinity]); |
251 | } | 254 | } |
252 | }else fanduct(); | 255 | }else fanduct(); |
253 | /* vim:set sw=1 ai: */ | 256 | /* vim:set sw=1 ai: */ |