OpenSCAD
by Charles Iliya KrempeauxOpenSCAD is an open-source computer-aided design (CAD) software application with its own built-in programming-language.
Unlike many other CAD software applications which use a GUI to create, edit, and manipulate objects, OpenSCAD creates, edits, and manipulates objects via a scripting programming-language. For example:
OpenSCAD scripts are usually stored in .scad
files.
OpenSCAD includes many features similar to many imperative programming-languages; including:
- variables,
- control structures (such as if-statements and loops),
- modules, and
- libraries.
For those already familiar with programming-languages such as C, C++, C#, D, Dart, Go, Java, JavaScript, PHP, and others — OpenSCAD uses curly-brackets. For example:
OpenSCAD provides two main methods for 3D-modeling:
- creating complex object from combinations of simpler shapes, and
- extruding 2D shapes (contained in .dxf or .svg files) into 3D shapes.
OpenSCAD is especially geared towards mechanical, rather than artistic, aspects of 3D computer-aided design. Thus OpenSCAD can be useful when one wants to create a model that one wants to 3D-print.
Units
All dimensions in OpenSCAD are measured in (the somewhat confusingly named) "unit".
The convention used by a lot of people doing 3D-printing is:
But OpenSCAD is in a sense unit-less.
And it is a good idea to explicitly size your model when preparing it for 3D-printing.