summaryrefslogtreecommitdiffabout
authorMichael Krelin <hacker@klever.net>2016-06-13 16:01:15 (UTC)
committer Michael Krelin <hacker@klever.net>2016-06-13 16:01:15 (UTC)
commit1afb1ce3d5afc54358f94b19e45d73f382a8246a (patch) (unidiff)
tree8d6d69884b968cc5fa131b5b6e5cf09da46a3922
parentdb98325df397142e712aceca25a822c84a742b45 (diff)
downloadfanductory-1afb1ce3d5afc54358f94b19e45d73f382a8246a.zip
fanductory-1afb1ce3d5afc54358f94b19e45d73f382a8246a.tar.gz
fanductory-1afb1ce3d5afc54358f94b19e45d73f382a8246a.tar.bz2
dualism: no duct tails
for now
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--fanduct.scad16
1 files changed, 10 insertions, 6 deletions
diff --git a/fanduct.scad b/fanduct.scad
index 1090e95..fc57c57 100644
--- a/fanduct.scad
+++ b/fanduct.scad
@@ -269,54 +269,58 @@ module fanduct(type=type,ductshape=ductshape,dual=dual) {
269 inlet_long_l+fanduct_shell+inlet_away+fanduct_w/2]); 269 inlet_long_l+fanduct_shell+inlet_away+fanduct_w/2]);
270 } 270 }
271 hull() { 271 hull() {
272 placeit() translate([-fanduct_shell,-inlet_w/2-fanduct_shell,0]) 272 placeit() translate([-fanduct_shell,-inlet_w/2-fanduct_shell,0])
273 cube(size=[inlet_h+2*fanduct_shell,inlet_w+2*fanduct_shell,fanduct_shell]); 273 cube(size=[inlet_h+2*fanduct_shell,inlet_w+2*fanduct_shell,fanduct_shell]);
274 translate([-fanduct_ir-fanduct_shell-fanduct_w/2,0,0]) 274 translate([-fanduct_ir-fanduct_shell-fanduct_w/2,0,0])
275 translate([0,-inlet_w/2-fanduct_shell/2,0]) 275 translate([0,-inlet_w/2-fanduct_shell/2,0])
276 cube(size=[1,inlet_w+fanduct_shell,fanduct_shell*2+fanduct_h]); 276 cube(size=[1,inlet_w+fanduct_shell,fanduct_shell*2+fanduct_h]);
277 } 277 }
278 }else if(what=="out") { 278 }else if(what=="out") {
279 placeit() translate([fanduct_shell,-inlet_w/2+fanduct_shell,0]) 279 placeit() translate([fanduct_shell,-inlet_w/2+fanduct_shell,0])
280 cube(size=[inlet_h-2*fanduct_shell,inlet_w-2*fanduct_shell,inlet_long_l+fanduct_shell+1]); 280 cube(size=[inlet_h-2*fanduct_shell,inlet_w-2*fanduct_shell,inlet_long_l+fanduct_shell+1]);
281 hull() { 281 hull() {
282 placeit() translate([fanduct_shell,-inlet_w/2+fanduct_shell,0]) 282 placeit() translate([fanduct_shell,-inlet_w/2+fanduct_shell,0])
283 cube(size=[inlet_h-2*fanduct_shell,inlet_w-2*fanduct_shell,fanduct_shell]); 283 cube(size=[inlet_h-2*fanduct_shell,inlet_w-2*fanduct_shell,fanduct_shell]);
284 translate([-fanduct_ir-fanduct_shell-fanduct_w/2,0,fanduct_shell]) 284 translate([-fanduct_ir-fanduct_shell-fanduct_w/2,0,fanduct_shell])
285 translate([0,-inlet_w/2+fanduct_shell,0]) 285 translate([0,-inlet_w/2+fanduct_shell,0])
286 cube(size=[1,inlet_w-2*fanduct_shell,fanduct_h]); 286 cube(size=[1,inlet_w-2*fanduct_shell,fanduct_h]);
287 } 287 }
288 } 288 }
289 } 289 }
290 290
291 // ***DUCT TAILS!!! WOO-OO! (every day they're out there making duct tails…) 291 // ***DUCT TAILS!!! WOO-OO! (every day they're out there making duct tails…)
292 module tails(what) { 292 module tails(what) {
293 if(what=="in") { 293 if(dual) {
294 for(mx=[0,1]) mirror([mx,0,0]) 294 // XXX: not sure if it will ever be
295 translate([fanduct_ir+fanduct_shell+fanduct_w/2,0,fanduct_shell+fanduct_h/2]) 295 }else{
296 rotate([90,0,90]) 296 if(what=="in") {
297 translate([0,0,-snapper_d/2]) 297 for(mx=[0,1]) mirror([mx,0,0])
298 snapper(d=snapper_d,o=snapper_overlap,side=0,l=fanduct_h*3/2+fanduct_shell); 298 translate([fanduct_ir+fanduct_shell+fanduct_w/2,0,fanduct_shell+fanduct_h/2])
299 rotate([90,0,90])
300 translate([0,0,-snapper_d/2])
301 snapper(d=snapper_d,o=snapper_overlap,side=0,l=fanduct_h*3/2+fanduct_shell);
302 }
299 } 303 }
300 } 304 }
301 305
302 module parts(what) { 306 module parts(what) {
303 union() { 307 union() {
304 duct(what); 308 duct(what);
305 marks(what); 309 marks(what);
306 output(what); 310 output(what);
307 intake(what); 311 intake(what);
308 tails(what); 312 tails(what);
309 } 313 }
310 } 314 }
311 315
312 difference() { 316 difference() {
313 parts("in"); 317 parts("in");
314 parts("out"); 318 parts("out");
315 } 319 }
316 intersection() { 320 intersection() {
317 union() { 321 union() {
318 output("airguides"); 322 output("airguides");
319 sphere(d=epsilon); 323 sphere(d=epsilon);
320 } 324 }
321 union() { 325 union() {
322 duct("in"); output("in"); intake("in"); 326 duct("in"); output("in"); intake("in");