Air Scoop

Why I like OpenSCADAccidents

An air scoop.

I like OpenSCAD for a number of reasons. It can be quick and easy to make simple, geometric objects very quickly. It’s my goto (pun intended) app for designing something quick when the dimensions are already known. It’s great for parametric designs, which allow for quick changes to a basic design. It’s one 3d modeling tool out of many, and I use it more than many others.

However, OpenSCAD does have it’s limits. To be fair, a large part of it’s limitations are on the user. If you know how to do the math in order to model an object, there’s a good bet OpenSCAD can do it. But as I’m not a mathematician, I’m limited in what I can create with it. (But if you want to see what real mathematician’s can do with OpenSCAD, check out MathGrrl (Lauren Taalman), Henry Segerman, and kitwallace (Chris Wallace))

That said, at the same time, OpenSCAD allows me to stumble upon accidents that I wasn’t actually trying to create. It’s one of the best features of OpenSCAD in my opinion. Accidental Modeling.

Sometimes I start modeling one thing, only to find myself accidentally creating something completely different. The air scoop was one of these happy accidents. I don’t even remember what I was trying to model, but I did a rotate_extrude, and there it was.

A second scoop, designed for the intake opening to be closer/lower to the output.

And then all that’s left is to make some parameter tweaks, and you can get different shapes. Now all I have to do is to make a dragster so that I can 3d print these and place it on the hood.

With some relatively minor changes, you can make a more complex shape.

The Code. Just remember, that like 99% of my programs, the parameters are designed for a sweet spot. Once you take it out of that range, it’s probably going to have problems. The good news is that this might help you make your own happy little accident.

//sgn - july 2017
//air scoop test - work in progress
//I recommend getting the shape, then just scaling it for correct size.

$fn = 64;

scale_x = 2.3;
scale_y = 1.2;
scale_z = 1;
main_diameter = 26; //has to be below 40. because it runs into itself if translation value stays at 22.
translation_value = 22;  //sort of height of scoop

//test one
//main body
difference(){
scale([scale_x,scale_y,scale_z])
rotate([90,270,0])
rotate_extrude(angle=90, convexity=10)
   translate([translation_value, 0]) 
    circle(d = main_diameter);

//subtractive copy
scale([0.98,0.98,0.98]){
translate([-0.5,0,0.3])  //these values will need to be played with sometimes to get the openings correct    
scale([scale_x,scale_y,scale_z])
rotate([90,270,0])
rotate_extrude(angle=90, convexity=10)
   translate([translation_value, 0]) 
    circle(d = main_diameter);


//top opening
translate([-0.55,0,translation_value + 0.3])  //these values will need to be played with sometimes to get the openings correct
scale([scale_x,scale_y,scale_z])
rotate([0,90,0])
cylinder(d = main_diameter, h = 1.1);


//bottom opening
translate([-51.11,0,-0.1])  //these values will need to be played with sometimes to get the openings correct
scale([scale_x,scale_y,scale_z])
cylinder(d = main_diameter, h = 1.1);
}
}