OpenSCAD is a programming language for solid CAD objects.
OpenSCAD is free software and available for GNU/Linux, MS Windows and Mac OSX. It provides two main modeling techniques: First, constructive solid geometry (CSG) and second, extrusion of 2D outlines. Autocad DXF files are used as the data exchange format for the 2D outlines. In addition to 2D paths for extrusion, it is also possible to read design parameters from DXF files. In addition to reading DXF files, OpenSCAD can also read and create 3D models in the STL file format, which is commonly used for 3D printing.
Getting Started with OpenSCAD:
- Go to http://www.openscad.org/ and download OpenSCAD for your operating system. (In MacOSX, you may need to right-click on the application, in order to open it, as the executable is not signed.)
- If you prefer not to install new software on your computer, alternatives exist which allow you, to a greater or lesser extent, to use OpenSCAD in your browser. Your mileage may vary, but if you wish, you may try the following: http://openscad.net | http://openjscad.org/.
Tutorials to Follow:
- An overview of tutorials is here: http://www.makerbot.com/tutorials/openscad-tutorials/.
- Here’s a good tutorial: http://edutechwiki.unige.ch/en/OpenScad_beginners_tutorial.
- This set of extremely simple tutorials covers setting up the OpenSCAD interface, how to make 2D forms, how to make some basic 3D forms, how to position those forms in 3D space, and the different ways to combine forms.
- There’s also Jestin Stoffel’s video tutorials: http://www.openscad.org/documentation.html.
Key Resources for the OpenSCAD Language:
- Of course you will consult the OpenSCAD User Manual.
- This section of the manual guides your first steps with OpenSCAD.
- Next comes a very general overview of the OpenSCAD language.
- It’s crucial to understand that Variables are set at compile-time, not run-time.
- Also, be sure to see this page to understand variable scoping in OpenSCAD.
Also Noteworthy:
OpenSCAD has some particularly powerful functions that deserve your attention:
- difference() & intersect() — Constructive Solid Geometry (CSG) booleans on shapes.
- linear_extrude() & rotate_extrude() — Extrude a 2D curve into 3D. (Also see.)
- lookup() — Lookup table with linear interpolation.
- minkowski() — Convolve two shapes.
- hull() — Convex hull of several shapes.