<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head> <meta charset="utf-8" /> <title>OpenSCAD</title> </head> <body> <main> <article> <h1>OpenSCAD</h1> <address class="h-card"> by <a rel="author" class="u-url" href="http://changelog.ca/"><span class="p-given-name">Charles</span> <span class="p-additional-name">Iliya</span> <span class="p-family-name">Krempeaux</span></a> </address> <p> <strong>OpenSCAD</strong> is an open-source computer-aided design (<abbr title="computer-aided design">CAD</abbr>) software application with its own built-in programming-language. </p> <p> Unlike many other <abbr title="computer-aided design">CAD</abbr> software applications which use a <abbr title="graphical user interface">GUI</abbr> to create, edit, and manipulate objects, <strong>OpenSCAD</strong> creates, edits, and manipulates objects via a scripting programming-language. For example: </p> <figure> <pre><code> cube([50,75,100]); </code></pre> </figure> <p> <strong>OpenSCAD</strong> scripts are usually stored in <code>.scad</code> files. </p> <p> <strong>OpenSCAD</strong> includes many features similar to many imperative programming-languages; including: </p> <ul> <li>variables,</li> <li>control structures (such as if-statements and loops),</li> <li>modules, and</li> <li>libraries.</li> </ul> <p> For those already familiar with programming-languages such as C, C++, C#, D, Dart, Go, Java, JavaScript, PHP, and others — <strong>OpenSCAD</strong> uses curly-brackets. For example: </p> <figure> <pre><code> for (a =[x1,x2,x3]){echo(a);} </code></pre> </figure> <p> <strong>OpenSCAD</strong> provides two main methods for 3D-modeling: </p> <ul> <li>creating complex object from combinations of simpler shapes, and</li> <li>extruding 2D shapes (contained in .dxf or .svg files) into 3D shapes.</li> </ul> <p> <strong>OpenSCAD</strong> is especially geared towards mechanical, rather than artistic, aspects of 3D computer-aided design. Thus <strong>OpenSCAD</strong> can be useful when one wants to create a model that one wants to 3D-print. </p> <section> <h2>Units</h2> <p> All dimensions in <strong>OpenSCAD</strong> are measured in (the somewhat confusingly named) "unit". </p> <p> The <em>convention</em> used by a lot of people doing 3D-printing is: </p> <figure> 1 unit = 1 millimeter </figure> <p> But <strong>OpenSCAD</strong> is in a sense unit-less. </p> <p> And it is a good idea to explicitly size your model when preparing it for 3D-printing. </p> </section> </article> </main> </body> </html>