OpenSCAD

Last updated
OpenSCAD
Developer(s) Marius Kintel, Claire Wolf [1]
Initial release19 February 2010;14 years ago (2010-02-19)
Stable release
2021.01 [2]   OOjs UI icon edit-ltr-progressive.svg / 31 January 2021;3 years ago (31 January 2021)
Repository
Written in C++ and Qt, CGAL, OpenCSG, and OpenGL [3]
Operating system Linux, macOS, Windows, FreeBSD, NetBSD, OpenBSD
Platform IA-32, x64, arm64
Size 15–27 MB (varies by operating system) [4]
Available in12 languages
List of languages
Czech, English, French, German, Polish, Russian, Spanish, Magyar, Armenian, Turkish, Ukrainian, Chinese
Type CAD
License GPL-2.0-or-later
Website www.openscad.org

OpenSCAD is a free software application for creating solid 3D computer-aided design (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 sums) to render a 3D model. As such, the program performs constructive solid geometry (CSG). OpenSCAD is available for Windows, Linux, and macOS.

Contents

Overview

Scripting language

OpenSCAD uses a custom scripting language to produce 3D graphics. The scripting language supports functional programming, 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, OpenSCAD employs OpenCSG and OpenGL.

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.[ citation needed ]

Part colors can be defined in the 3D view (including transparency). [5]

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. [6]

OpenSCAD documents are human-readable scripts in plain ASCII text and potentially syntactically better suited to integrate with version control systems such as GIT.

As such, OpenSCAD is a programmer-oriented solid-modeling tool [7] and has been recommended as an entry-level CAD tool for designing open-source hardware such as scientific tools for research and education. [8]

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.

Animation of a Strandbeest model created with OpenSCAD Strandbeest 3d - crank offset corrected.gif
Animation of a Strandbeest model created with OpenSCAD

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 GIFs.

An experimental coupling with Calculix for FEM (Finite Element Method) is available. [9] FreeCAD can import OpenSCAD files also for FEM with Calculix or other supported FEM solvers. [10] FreeCAD features a workbench for interoperability with OpenSCAD. [11]

File formats

Imports

Exports

OpenSCAD views and models can be exported to many different formats. Including:

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 philosophy. Much as in Haskell, within a scope each "variable" is treated as a constant, immutable with at most one value.

Platform implementations

See also

Related Research Articles

<span class="mw-page-title-main">Constructive solid geometry</span> Creating a complex 3D surface or object by combining primitive objects

Constructive solid geometry is a technique used in solid modeling. Constructive solid geometry allows a modeler to create a complex surface or object by using Boolean operators to combine simpler objects, potentially generating visually complex objects by combining a few primitive ones.

<span class="mw-page-title-main">Open Cascade Technology</span> Open-source 3D modelling software

Open Cascade Technology (OCCT), formerly named CAS.CADE, is a development platform for 3D computer-aided design (CAD), computer-aided manufacturing (CAM), computer-aided engineering (CAE), etc. It is developed and supported by Open Cascade SAS company. It is free and open-source software released under the GNU Lesser General Public License (LGPL), version 2.1 only, which permits open source and proprietary uses.

<span class="mw-page-title-main">Rhinoceros 3D</span> 3D computer graphics software

Rhinoceros is a commercial 3D computer graphics and computer-aided design (CAD) application software that was developed by TLM, Inc, dba Robert McNeel & Associates, an American, privately held, and employee-owned company that was founded in 1978. Rhinoceros geometry is based on the non-uniform rational B-spline (NURBS) mathematical model, which focuses on producing mathematically precise representation of curves and freeform surfaces in computer graphics.

SketchUp is a 3D modeling software that is used to create and manipulate 3D models. It is used in architecture and interior design.

Pro/DESKTOP is a discontinued computer-aided design (CAD) program from Parametric Technology Corporation (PTC), that allowed users to design and model in 3D and create 2D drawings. It can transfer a 3D design into a 2D engineering drawing format and also create photo-realistic views using Album Views. It is part-compatible with Pro/ENGINEER, and uses the Granite kernel, but otherwise is a freestanding CAD system.

Navisworks is a 3D design review package for Microsoft Windows.

The table below provides an overview of notable computer-aided design (CAD) software. It does not judge power, ease of use, or other user-experience aspects. The table does not include software that is still in development. For all-purpose 3D programs, see Comparison of 3D computer graphics software. CAD refers to a specific type of drawing and modelling software application that is used for creating designs and technical drawings. These can be 3D drawings or 2D drawings.

<span class="mw-page-title-main">FreeCAD</span> Free and open-source 3D CAD software

FreeCAD is a general-purpose 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 mechanical engineering product design but also expands to a wider range of uses around engineering, such as architecture or electrical engineering. FreeCAD is free and open-source, under the LGPL-2.0-or-later license, and available for Linux, macOS, and Windows operating systems. Users can extend the functionality of the software using the Python programming language.

<span class="mw-page-title-main">WorkNC</span>

WorkNC is a computer-aided manufacturing (CAM) software developed by Sescoi for multi-axis machining.

MEDUSA4 is a CAD program used in the areas of mechanical and plant engineering by manufacturers and engineering, procurement, and construction (EPC) companies. The system's history is closely tied to the beginnings of mainstream CAD and the research culture fostered by Cambridge University and the UK government as well as the resulting transformation of Cambridge into a world-class tech centre in the 1980s.

<span class="mw-page-title-main">Digital Geometric Kernel</span>

Digital Geometric Kernel is a software development framework and a set of components for enabling 3D computer graphics computer-aided design (3D/CAD) function in Windows applications, developed by DInsight.

<span class="mw-page-title-main">SolveSpace</span> Open-source computer-aided design software

SolveSpace is a free and open-source 2D/3D constraint-based parametric computer-aided design (CAD) software that supports basic 2D and 3D constructive solid geometry modeling.

<span class="mw-page-title-main">Onshape</span> Computer-aided design software system

Onshape is a computer-aided design (CAD) software system, delivered over the Internet via a software as a service (SaaS) model. It makes extensive use of cloud computing, with compute-intensive processing and rendering performed on Internet-based servers, and users are able to interact with the system via a web browser or the iOS and Android apps. As a SaaS system, Onshape upgrades are released directly to the web interface, and the software does not require maintenance by the user.

ShapeJS is a JavaScript-based programming language for creating 3D printable products and fully interactive creator applications. Hosted by Shapeways, it is a cloud-based system for creating 3D objects and web apps that make 3D printable things.

<span class="mw-page-title-main">Cura (software)</span> 3D printer software

Cura is an open source slicing application for 3D printers. It was created by David Braam who was later employed by Ultimaker, a 3D printer manufacturing company, to maintain the software. Cura is available under LGPLv3 license. Cura was initially released under the open source Affero General Public License version 3, but on 28 September 2017 the license was changed to LGPLv3. This change allowed for more integration with third-party CAD applications. Development is hosted on GitHub. Ultimaker Cura is used by over one million users worldwide and handles 1.4 million print jobs per week. It is the preferred 3D printing software for Ultimaker 3D printers, but it can be used with other printers as well.

<span class="mw-page-title-main">Art of Illusion</span>

Art of Illusion is a free software, and open source software package for making 3D graphics.

<span class="mw-page-title-main">OpenVSP</span> Open-source parametric aircraft geometry tool

OpenVSP — is an open-source parametric aircraft geometry tool originally developed by NASA. It can be used to create 3D models of aircraft and to support engineering analysis of those models.

<span class="mw-page-title-main">RattleCAD</span> Bicycle computer aided design software

rattleCAD is a parametric 2D computer-aided design (CAD) software specific for bicycle design, in particular for design bicycle frame, developed by the Austrian cyclist and programmer Manfred Rosenberger since 2008. The application is written in the programming language Tcl using the Tk-based graphical user interface (GUI).

<span class="mw-page-title-main">FDM printing file formats</span> Data protocol used in 3D printing

FDM printing is one of the most popular types of 3D printing, it is used throughout different engineering industries and also has a great number of individual users that enjoy 3D-printing as a hobby. FDM printing is so popular because it can produce near finished models of hardware with a very short manufacturing process also known as Rapid prototyping. This kind of printing was first developed and patented in 1989 by Stratasys and has made lots of advancements in the past few decades becoming much cheaper and accessible.

References

  1. "Claire Wolf".
  2. "OpenSCAD - News".
  3. "Building OpenSCAD". GitHub . 21 November 2021.
  4. "OpenSCAD - Downloads".
  5. Transparency is evaluated in the construction order, so a part is only transparent for parts already built.
  6. Evans, Brian (2012), Practical 3D Printers: The Science and Art of 3D Printing, Apress, p. 113, ISBN   9781430243922 .
  7. Pettis, Bre; France, Anna Kaziunas; Shergill, Jay (2012), Getting Started with MakerBot, O'Reilly Media, Inc., p. 131, ISBN   9781449338657 .
  8. Pearce, Joshua M. (2014), "Chapter 6: „Digital Designs and Scientific Hardware"", Open-Source Lab: How to Build Your Own Hardware and Reduce Research Costs, Elsevier, pp. 165–254, ISBN   9780124104624 .
  9. "Example". GitHub . 21 November 2021.
  10. "FEM CalculiX - FreeCAD Documentation".
  11. "OpenSCAD Workbench - FreeCAD Documentation".
  12. "OpenSCAD User Manual/Export - Wikibooks, open books for an open world".