HOME

TheInfoList



OR:

OpenSCAD is a
free software Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
application for creating solid 3D
computer-aided design Computer-aided design (CAD) is the use of computers (or ) to aid in the creation, modification, analysis, or optimization of a design. This software is used to increase the productivity of the designer, improve the quality of design, improve c ...
(CAD) objects. It is a script-only based modeller that uses its own description language; the 3D preview can be manipulated interactively, but cannot be interactively modified in 3D. Instead, an OpenSCAD script specifies geometric primitives (such as spheres, boxes, cylinders, etc.) and defines how they are modified and combined (for instance by intersection, difference, envelope combination, or
Minkowski sum In geometry, the Minkowski sum of two sets of position vectors ''A'' and ''B'' in Euclidean space is formed by adding each vector in ''A'' to each vector in ''B'': A + B = \ The Minkowski difference (also ''Minkowski subtraction'', ''Minkowsk ...
s) to render a
3D model In 3D computer graphics, 3D modeling is the process of developing a mathematical coordinate-based representation of a surface of an object (inanimate or living) in three dimensions via specialized software by manipulating edges, vertices, and ...
. As such, the program performs constructive solid geometry (CSG). OpenSCAD is available for
Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
,
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
, and
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
.


Overview


Scripting language

OpenSCAD uses a custom scripting language to produce 3D graphics. The scripting language supports
functional programming In computer science, functional programming is a programming paradigm where programs are constructed by Function application, applying and Function composition (computer science), composing Function (computer science), functions. It is a declarat ...
, parametrized modularization and reuse, and mathematical computation. Variables are scoped, but within each scope are immutable.


Previewing

For fast previewing of models using
z-buffering A z-buffer, also known as a depth buffer, is a type of data buffer used in computer graphics to store the depth information of fragments. The values stored represent the distance to the camera, with 0 being the closest. The encoding scheme may ...
, OpenSCAD employs OpenCSG and
OpenGL OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
. The 3D model position can be interactively manipulated in the view with a mouse similarly to other 3D modellers. It is also possible to define a default "camera" position in the script. Part colors can be defined in the 3D view (including transparency). Preview is relatively fast and allows interactive modifications while modifying the script. The model renderer takes into account lighting, but the lighting source is not modifiable.


Use

OpenSCAD allows a designer to create accurate 3D models and parametric designs that can be easily adjusted by changing the parameters. OpenSCAD documents are human-readable scripts in plain ASCII text and potentially syntactically better suited to integrate with version control systems such as
git Git () is a distributed version control system that tracks versions of files. It is often used to control source code by programmers who are developing software collaboratively. Design goals of Git include speed, data integrity, and suppor ...
. As such, OpenSCAD is a programmer-oriented solid-modeling tool and has been recommended as an entry-level CAD tool for designing
open-source hardware Open-source hardware (OSH, OSHW) consists of physical artifact (software development), artifacts of technology designed and offered by the open-design movement. Both free and open-source software (FOSS) and open-source hardware are created by th ...
such as scientific tools for research and education. It is often used to design 3D printed parts, which can be exported in various 3D file formats. Its script-based parametric nature allows it to be integrated into online model customization services, such as the "Customizer" tool on
Thingiverse Thingiverse is a website dedicated to the sharing of user-created digital design files. Providing primarily free, open-source hardware designs licensed under the GNU General Public License or Creative Commons licenses, the site allows contributor ...
. Animation is possible with a speed of a few images per seconds for simple models. The animation can have effect on any parameter, being it the camera position or the parts dimensions, position, shape or existence. It can be recorded as a set of images usable to build
animated GIF The Graphics Interchange Format (GIF; or , ) is a Raster graphics, bitmap Image file formats, image format that was developed by a team at the online services provider CompuServe led by American computer scientist Steve Wilhite and released ...
s. An experimental coupling with Calculix for FEM (
Finite Element Method Finite element method (FEM) is a popular method for numerically solving differential equations arising in engineering and mathematical modeling. Typical problem areas of interest include the traditional fields of structural analysis, heat tran ...
) is available.
FreeCAD FreeCAD is a general-purpose Solid_modeling#Parametric_modeling, parametric 3D computer-aided design (CAD) modeler and a building information modeling (BIM) software application with finite element method (FEM) support. It is intended for mecha ...
can import OpenSCAD files also for FEM with Calculix or other supported FEM solvers. FreeCAD features a workbench for interoperability with OpenSCAD.


File formats


Imports

* 2D drawings in DXF, SVG and PNG can be imported, then extruded as monolithic parts. * 3D parts can be imported in STL, OFF, AMF and 3MF and can be scaled and submitted to subtractive or additive operations.


Exports

OpenSCAD views and models can be exported to many different formats. Including: * Views: can be exported in PNG format. * 2D models can be exported in SVG,
AutoCAD DXF AutoCAD DXF (Drawing Interchange Format, or Drawing Exchange Format) is a computer-aided design (CAD) data file format developed by Autodesk to enable CAD data exchange and interoperability between AutoCAD on different computing platforms. His ...
, and
PDF Portable document format (PDF), standardized as ISO 32000, is a file format developed by Adobe Inc., Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, computer hardware, ...
. * 3D parts can be exported in 3MF, AMF,
OFF Off or OFF may refer to: Art and entertainment * ''Off'' (video game), a video game by Mortis Ghost. *Sven Väth, German DJ and singer who uses the pseudonym OFF * ''Off'' (album), by Ciwan Haco, 2006 * ''Off!'' (album), by Off! * Off!, an Ameri ...
, and STL as simple volumes. There is no color, material, or parts definition in the exported model.


Design

OpenSCAD is a wrapper to a CSG engine with a graphical user interface and integrated editor, developed in C++. As of 2024, the general release version uses the Computational Geometry Algorithms Library (CGAL) as its basic CSG engine. However, development snapshot versions also offer support for Manifold

as an alternative. Its script syntax reflects a
functional programming In computer science, functional programming is a programming paradigm where programs are constructed by Function application, applying and Function composition (computer science), composing Function (computer science), functions. It is a declarat ...
philosophy. Much as in Haskell (programming language), Haskell, within a scope each "variable" is treated as a constant, immutable with at most one value.


Platform implementations

* Official standalone version written in C++ for Windows, MacOS, and Linux *
FreeCAD FreeCAD is a general-purpose Solid_modeling#Parametric_modeling, parametric 3D computer-aided design (CAD) modeler and a building information modeling (BIM) software application with finite element method (FEM) support. It is intended for mecha ...
: has an OpenSCAD command line interface that can be used instead of the part solver or part workbench * Browser implementations are also available, such as cadhub.xyz and .


See also

* Comparison of computer-aided design software * PLaSM is another open source scripting language for creating 3D objects * OpenJSCAD User Guide


References


External links

* *
Primary IRC Chat
{{CAD software 3D computer graphics software for Linux 3D graphics software Computer-aided design software for Linux Domain-specific programming languages Engineering software that uses Qt Free 3D graphics software Free computer-aided design software Free software programmed in C++