This post is intended as a set of “guidelines” to creating a parametric design in OpenSCAD.
Last Sunday afternoon was spent working out a parametric design for printable prosthetic fingers. Using the OpenSCAD function “hull” it’s relatively easy to crank out a nifty organic appearing design. Admittedly, you have to have a working knowledge the basic union/difference/intersection function first. However, once you do it’s really quite easy.
The feature of the design I’m most proud of is the “nail” part of the finger tip. I designed the “nail” by using the OpenSCAD function “intersection()” on two cylinders. The little “nubs”1 consist of a small cube, rotated so a corner is pointed straight up combined, with an identically situated cube rotated slightly.
When I’m designing something to be parametric, I usually don’t really start out designing it that way. I first strive to create a form in OpenSCAD that resembles closely the thing I wish to design. Then, I poke through the design code looking for those elements that are related to the design aspects I’m interested in changing based on parameters. Once located, I replace those parts of the design code with variables that can be specified when the module is called. I realize this is kind of a “high level” description of my design process for parametric things, but it’s still the best description.
Since last Sunday I’ve really done a lot with the design. Some simplifying and a lot of improvements. In the next post I’ll go over these features. I’m really excited to show these off. :)
The result looks nothing like a jack! It looks more like a box with rounded edges. The limitation with the “hull()” command3 is that it connects all the outside points from the various shapes. The result is more like what the objects would look like if you covered them in plastic wrap – but not what they would look like if you tried to use shrink wrap.4 However, our goal is to get a jack. How should we go about this? The same way we eat an elephant.56 We need to use “hull()” multiple times7 to connect the central sphere to the eight surrounding spheres.
By breaking the overall design into pieces, you can use the “hull()” command to connect pieces of the design to one another in a seemingly organic fashion. Here’s a set of pictures of my most recent work that uses these design tricks.
They’ll continue, but I think the next one will come out on Friday. So far I’ve covered the interface of OpenSCAD, 2D forms, and 3D forms.
My goal is to show people how to use OpenSCAD in a way that is intuitive and builds quickly on what was taught earlier, with a secondary goal of getting the reader to be able to make something useful as quickly as possible. Here’s the rough outline/idea of where I’m going: