411 REFERENCE · Wikibooks
OpenSCAD User Manual
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
OpenSCAD User Manual
200px|right|OpenSCAD logo
Introduction
OpenSCAD is software for creating solid 3D CAD objects.
It is free software and available for GNU/Linux, Microsoft Windows and Mac OS X.
Unlike most free software for creating 3D models (such as the well-known application Blender), OpenSCAD does not focus on the artistic aspects of 3D modelling, but instead focuses on the CAD aspects. So it might be the application you are looking for when you are planning to create 3D models of machine parts, but probably is not what you are looking for when you are more interested in creating computer-animated movies or organic life-like models.
OpenSCAD, unlike many CAD products, is not an interactive modeler. Instead it is something like a 2D/3D-compiler that reads in a program file that describes the object and renders the model from this file. This gives you (the designer) full control over the modelling process. This enables you to easily change any step in the modelling process and make designs that are defined by configurable parameters.
OpenSCAD has two main operating modes, Preview and Render. Preview is relatively fast using 3D graphics and the computer's GPU, but is an approximation of the model and can produce artifacts; Preview uses OpenCSG and OpenGL. Render generates exact geometry and a fully tessellated mesh. It is not an approximation and as such it is often a lengthy process, taking minutes or hours for larger designs. Render uses CGAL as its geometry engine.
OpenSCAD provides two types of 3D modelling:
Constructive Solid Geometry (CSG)
extrusion of 2D primitives into 3D space.
SVG is used for 2D while Autocad DXF files can be used as well for the data exchange format for 2D outlines. In addition to 2D paths for extrusion it is also possible to read design parameters from DXF files. Besides DXF files, OpenSCAD can read and create 3D models in the open 3mf, STL, OFF and many more file formats.
OpenSCAD can be downloaded from https://www.openscad.org/. More information is available on the mailing list.
Additional Resources
An interactive web version of OpenSCAD can be used to play with an scad script, is accepting (design) contributions at git hub, and is based on the web version of the application.
A clear guided introduction to using OpenSCAD and to the OpenSCAD language is available in the OpenSCAD Tutorial.
The Mastering OpenSCAD website has a nice tutorial on the basics and offers a number of complex examples to learn from.
For Teachers: a basic 25-slide presentation from 2014 is available under GNUFDL to walk your students through the process of using OpenSCAD here.
Fablab Lannion (France) edited a nice French-language interactive tutorial that you might appreciate.
A "cheat sheet" is a useful quick reference for the OpenSCAD language, with each item linking back to this Wikibook.
A list of books can be found here.
History
Periodically the two manuals below get cleaned up or have major transitions.
Consider archiving the manuals prior to starting a major update.
This can be done for the two 'printable version' links below to the Internet Archive
2018-04-25 The OpenSCAD User Manual - Print Version & The OpenSCAD Language - Print Version
2019-07-22 The OpenSCAD User Manual Which includes links to the archives of the above two printed versions (as of this date).
The Wayback Machine no longer has a free user requested site archive, so below is just the two 'printable version' manuals
2020-12-11 The OpenSCAD User Manual - Print Version & The OpenSCAD Language - Print Version
The OpenSCAD User Manual
OpenSCAD_User_Manual/Print_version OpenSCAD_User_Manual
Introduction
First Steps
The OpenSCAD User Interface
Input Devices
Customizer
Import - STL, 3MF, OFF, AMF, DXF, SVG, CSG
SVG Import
Export - STL, 3MF, OFF, AMF, DXF, SVG, CSG, PNG
STL Export
CSG Export
DXF Extrusion
Other 2D formats
Example Projects
Strandbeest
Paths
Using an external Editor with OpenSCAD
Integration with other applications
Using OpenSCAD in a command line environment
Building OpenSCAD from Sources
Building on Linux/UNIX
Cross-compiling for Windows on Linux or Mac OS X
Building on Windows (Outdated)
Building on Windows (New)
Building on Mac OS X
Submitting patches
Frequently Asked Questions
Libraries
Tips and Tricks
Command Glossary - Very short name and syntax reference
The OpenSCAD Language Reference
OpenSCAD_User_Manual/The_OpenSCAD_Language The_OpenSCAD_Language
General - READ THIS FIRST - comments, values and data types, variables, vectors, objects, getting input
3D objects -
3D Primitive Solids - cube, sphere, cylinder, polyhedron
3D to 2D Projection
2D Objects
2D Primitives - square, circle, polygon
Text - Generate text using installed or user supplied font files; functions to retrieve text metrics.
2D to 3D - linear_extrude, rotate_extrude
Transform
color
rotate, translate, mirror, multmatrix
scale, resize
offset, minkowski, hull
Combining transformations
Boolean combination
union, difference, intersection, render
Other Functions and Operators
Conditional and Iterator Functions - for, intersection_for, if, conditional ? :, assign, let
Mathematical Operators - General, Vectors, Matrix multiplication
Mathematical Functions
Trigonometric (cos sin tan acos asin atan atan2)
Other (abs ceil concat cross exp floor ln len let log lookup max min norm pow rands round sign sqrt)
String Functions - str, chr, ord
Type Test Functions - is_undef, is_bool, is_num, is_string, is_list, is_object
List Comprehensions
Other Language Features - Special '$' variables, echo, render, surface, search , version(), version_num(), parent_module(n) and $parent_modules, assert
User-Defined Functions and Modules - Functions, Modules, Children
Debugging aids - % # ! * echo
External libraries and code files
include - SCAD, CSG
use - SCAD
import - STL, OFF, DXF
import_dxf - Deprecated
import_stl - Deprecated
export - STL, OFF, AMF, 3MF, DXF, SVG, PNG, CSG
surface - PNG
Work in progress
This section contains documentation about ongoing work which is available as experimental features in snapshot versions of OpenSCAD or not yet integrated at all and pending in a branch or pull-request at the OpenSCAD github repository.
Work in progress
O
3D graphics software computer programming languages computer aided design
75%
es:Tutorial de OpenScad
it:OpenSCAD
ru:Руководство пользователя по OpenSCAD