# OpenSCAD

OpenSCAD és una aplicació de programari lliure per crear objectes sòlids de disseny assistit per ordinador (CAD) en 3D. És un modelador basat només en scripts que utilitza el seu propi llenguatge de descripció; la vista prèvia en 3D es pot manipular de manera interactiva, però no es pot modificar de manera interactiva en 3D. En lloc d'això, un script d'OpenSCAD especifica primitives geomètriques (com ara esferes, caixes, cilindres, etc.) i defineix com es modifiquen i es combinen (per exemple, per intersecció, diferència, combinació d'embolcalls o sumes de Minkowski) per representar un model 3D. Com a tal, el programa realitza geometria sòlida constructiva (CSG). OpenSCAD està disponible per a Windows, Linux i macOS.

## Visió general
### Llenguatge de guió

OpenSCAD utilitza el llenguatge OpenSCAD per produir gràfics en 3D.

### Vista prèvia

Per a una visualització prèvia ràpida dels models amb z-buffering, OpenSCAD utilitza OpenCSG i OpenGL.
La posició del model 3D es pot manipular de manera interactiva a la vista amb un ratolí de manera similar a altres modeladors 3D. També és possible definir una posició per defecte de "càmera" a l'script.
Els colors de les peces es poden definir a la vista 3D (inclosa la transparència).
La vista prèvia és relativament ràpida i permet modificacions interactives mentre es modifica l'script.
El renderitzador del model té en compte la il·luminació, però la font d'il·luminació no es pot modificar.

## Ús

OpenSCAD permet a un dissenyador crear models 3D precisos i dissenys paramètrics que es poden ajustar fàcilment canviant els paràmetres.
Els documents d'OpenSCAD són scripts llegibles per l'home en text ASCII senzill i, potencialment, sintàcticament més adequats per integrar-se amb sistemes de control de versions com ara GIT.
Els documents d'OpenSCAD són scripts llegibles per l'home en text ASCII senzill i, potencialment, sintàcticament més adequats per integrar-se amb sistemes de control de versions com ara GIT.
Sovint s'utilitza per dissenyar peces impreses en 3D, que es poden exportar en diversos formats de fitxers 3D. La seva naturalesa paramètrica basada en scripts permet integrar-lo en serveis de personalització de models en línia, com ara l'eina "Personalitzador" de Thingiverse.
L'animació és possible amb una velocitat d'unes quantes imatges per segon per a models senzills. L'animació pot tenir efecte sobre qualsevol paràmetre, ja sigui la posició de la càmera o les dimensions, posició, forma o existència de les peces. Es pot gravar com un conjunt d'imatges utilitzables per crear GIF animats.
Hi ha disponible un acoblament experimental amb Calculix per FEM (Finite Element Method). FreeCAD pot importar fitxers OpenSCAD també per a FEM amb Calculix o altres solucionadors FEM compatibles. FreeCAD inclou un banc de treball per a la interoperabilitat amb OpenSCAD.

## Disseny

OpenSCAD és un embolcall d'un motor CSG amb una interfície d'usuari gràfica i un editor integrat, desenvolupat en C++. A partir del 2016, utilitza la biblioteca d'algoritmes de geometria computacional (CGAL) com a motor CSG bàsic.
La seva sintaxi d'script reflecteix una filosofia de programació funcional. Igual que a Haskell, dins d'un àmbit cada "variable" es tracta com una constant, immutable amb com a màxim un valor.

## Implementació de la plataforma

* Versió autònoma oficial escrita en C++ per a Windows, MacOS i Linux.
* FreeCAD: té una interfície de línia d'ordres d'OpenSCAD que es pot utilitzar en lloc del solucionador de peces o del banc de treball de peces.
* També hi ha implementacions del navegador disponibles, com ara cadhub.xyz i openjscad.azurewebsites.net.

## Referències

* ↑ «OpenSCAD Tutorial for Beginners: 10 Easy Steps» (en anglès). [Consulta: 4 juny 2024].
* ↑ «Example» (en anglès). GitHub, 21-11-2021.
* ↑ «FEM CalculiX - FreeCAD Documentation» (en anglès).
* ↑ «OpenSCAD Workbench - FreeCAD Documentation» (en anglès).
* ↑ «openscad/openscad» (en anglès), 03-06-2024. [Consulta: 4 juny 2024].