summaryrefslogtreecommitdiffabout
path: root/fanduct.scad
authorMichael Krelin <hacker@klever.net>2016-05-30 23:23:06 (UTC)
committer Michael Krelin <hacker@klever.net>2016-05-30 23:23:06 (UTC)
commit36928b70c94190b739af1dbd39b2680b21f949d0 (patch) (unidiff)
tree515d3ca2284d56cbb98044f6938d7f7b4ba5c1ee /fanduct.scad
parentc11d5b7e8f4b8f0e7a20d81dd813a21e19b705c3 (diff)
downloadfanductory-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.
Diffstat (limited to 'fanduct.scad') (more/less context) (ignore whitespace changes)
-rw-r--r--fanduct.scad5
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
236view="full"; // hcut|vcut|* 239view="full"; // hcut|vcut|*
237 240
238hinfinity=4*(fanduct_ir+fanduct_shell*2+fanduct_w+inlet_away); 241hinfinity=4*(fanduct_ir+fanduct_shell*2+fanduct_w+inlet_away);
239vinfinity=2*(fanduct_shell*2+fanduct_h+inlet_h); 242vinfinity=2*(fanduct_shell*2+fanduct_h+inlet_h);
240if(view=="hcut") { 243if(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: */