I wrote recently about the excitement surrounding Clifford Wolf’s OpenSCAD program. OpenSCAD is free software. It uses a cool keep-it-super-simple approach to 3D modeling, eliminating the resource-hungry what-you-see-is-what-you-get (WYSIWYG) editing environment favored by most 3D modeling packages, and replacing it with a text-based scripting environment in which models are programmed, instead of sculpted. Basically, you write a script describing your model’s shape and then compile it to produce the actual model, which is then rendered onscreen and can be exported to STL format for 3D printing or other purposes.
OpenSCAD has two powerful features to facilitate this programming process. The first is support for so-called “constructive solid geometry” (CSG) modeling, in which complex forms are built up as intersections, unions, and differences of simple primary shapes like boxes, cylinders, cones, and ellipsoids. If you’ve ever used the ray-tracing program POV-Ray before, this idea will be familiar to you.
The second, less-well-publicized (but perhaps equally powerful) feature of OpenSCAD is “DXF extrusion,” in which OpenSCAD will import a 2D drawing in AutoCAD’s popular drawing exchange format (DXF) and “extrude” it into the third dimension. OpenSCAD has support for linear extrusion, in which the resulting part has straight vertical sides, and also rotating extrusion, which results in a part with helical sides. Since a large number of models for rapid prototyping are simple extruded profiles, I expect this feature to see a lot of use.
In this tutorial, I’m going to show you how to use OpenSCAD to produce a simple 3D model by extruding a part profile produced in normal drawing software. I use Adobe Illustrator CS3 because I have access to it and am familiar with its interface, but the popular open source drawing program InkScape will read and write DXF files natively, and there’s no reason why it couldn’t serve just as well if you prefer it. There are a number of other free and low-cost programs that will export DXF files. OpenSCAD’s developer mentions QCAD, which, as of this writing, is available from its developer RibbonSoft for €24.
The part I’m making is one of 12 solid pentomino puzzle pieces based on the animals of the Chinese zodiac–in this case, the rabbit or “Z” pentomino. The designs are based on those of Japanese schoolteacher Sabu Oguro as published on p. 40 of Jerry Slocum and Jack Botermans’ 1986 book Puzzles Old & New: How to Make and Solve Them, an image from which is reproduced at the top of this article. My original DXF files and the extruded 3D STL files are freely available for download at Thingiverse. Becky Stern printed all the real-world models shown in this article on her MakerBot Cupcake 3D printer, and photographed them for this tutorial.
Steps
Step #1: Size art board appropriately
Next
- Sizing the page or art board to exactly the size of your finished part will make it easier to view the rendered extrusion in OpenSCAD. The zero coordinate seems to be determined based on one corner of the art board, and if you draw a 1.5" x 1.5" part in the middle of a letter-sized page, the actual model tends to end up out off the edge of the screen when you render it. Save yourself the nuisance and shrink the art board down when you first create the new drawing.
Conclusion
OpenSCAD is still very much a work-in-progress. Although it crashed on me a couple of times when I tried to render DXF files with unsupported drawing elements, and I had a helluva time figuring out that the units of the Z-extrusion height were millimeters, generally I was very pleased with its performance and ease of use. If you have problems that you can't solve by experimentation, or that are clearly bugs, you can report them and/or get help by subscribing to the OpenSCAD mailing list here. There is also a wiki here. OpenSCAD is already very popular in the MakerBot community, and their Google group can also be a helpful source of information.













If articles like this one were labeled with a date, that would be really useful!
You’ve labelled the software as freeware – this is incorrect. OpenSCAD is Free Software – licensed under the GNU GPL. To learn more about software freedom and why the distinction is important, visit http://www.fsf.org/about/what-is-free-software
I’ll allow that “Free Software” is a better name if you’ll allow that “freeware,” strictly speaking, is not incorrect.
Fair enough. Freeware is a broad category that includes crippleware, adware, shareware, and most free (libre) and open source software.
Thanks. I’ve updated the copy per your suggestion.
The article has proven helpful to me. It’s really informative and you’re obviously really experienced in this area. You have got exposed my eye for you to various views on this matter with intriquing, notable and solid articles.
// What's Trending
Raspberry Pi Design Contest
Ten Tips for Adhesive Tape
Seventeen Sneaky Secret Hides
I Have a (Puzzling) Dream
10 Things to Connect to Your Raspberry Pi
Maker Faire: Day Two
47 Raspberry Pi Projects to Inspire Your Next Build
Lost PLA Casting from 3D Prints
// What's Shared
A better way to slice a pumpkin
DIY Nerf Darts
100 Dollar Store Organization Ideas for Craft Rooms and Beyond
In the Maker Shed: Minty Boost USB Charger
Mad’s Mouse House
Lace Princess Crowns
I Have a (Puzzling) Dream
Play the Rings of a Tree Trunk Like a Record
// Most Commented
DIY Hacks & How To’s: Get Emergency Power from a Phone Line
Resin Casting: Going from CAD to Engineering-Grade Plastic Parts
Ten Tips for Screws and Screwdrivers
Ten Tips for Better Measurement
Is it a Hackerspace, Makerspace, TechShop, or FabLab?
Makers on TV: Big Brain Theory
Arduino Announces New Wireless Linux Board
Pitches with Prototypes: Solar Tracker
Trending Topics
Get our Newsletters
About Maker Media
Subscribe
to MAKE!
Get the print and digital versions when you subscribe