# Introduction

OpenSCAD est un logiciel pour la création de solides 3d, proche de la CAO, conception assistée par ordinateur. Il est un logiciel libre­ et disponible sur Linux, Microsoft Windows et Mac OS X.
OpenSCAD est avant tout un langage : l'utilisateur crée un code, aidé éventuellement par des librairies, afin de générer des objets de type CAO, conception assistée par ordinateur, destiné à la création de pièce mécanique (ingénierie), de volumes d'architecture ou des représentations dans l'espace de fonctions mathématiques. Il ne s'agit pas d'un modeleur pour la création de figure artistique (type Blender) ni d'un logiciel de conception visuel et interactif tel que FreeCad, Solidworks ou Creo.
OpenSCAD nécessite la compilation du code afin de visualiser le modèle. Deux modes sont à disposition, un mode de prévisualisation, qui permet rapidement d'avoir un résultat, mais parfois avec des erreurs (artefacts) dans un mode de rendu, en réseau de polygones fidèles au code, mais également est alors gourmand en temps.
Au moyen de primitives 2d (rectangles, cercles, polygones, ...) et 3d (parallélépipèdes, sphères, ...) l'utilisateur les transformes par des translations, rotations, déformations, et utilise des opérateurs booléens pour créer des unions, différences ou intersections. Des fonctions mathématiques, d'arithmétique, de trigonométrie, etc ou la création de variables, fonctions, répétition itératives, l'utilisation de vecteurs ou matrices, donnent une grande liberté pour celui qui une bonne perception de l'espace. Il est également possible d'illustrer ses résultats en différentes couleurs, des transformation de duplication (répétitions, miroir, ... ) et même de faire des assemblages.
Le logiciel permet d'importer des fichiers 2d en format dxf, svg et de les extruder par exemple ou l'importation de volumes 3d depuis les formats STL, AMF, OFF. Il permet également d'exporter vers différents formats. Il est également possible de faire des animations au moyen d'un paramètre temporel. Ces formats vous permettront de les imprimer en 3d.
L'interface du logiciel est scindée en 3 parties, la zone de saisie, une zone de prévisualisation et une console qui affiche les messages d'erreurs, mais vous permettent d'afficher aisément des messages lors de la compilation.
Il y a une version dérivée en ligne : OpenJSCAD

# Les références du langage OpenSCAD

* Le langage OpenSCAD
** Généralités - A lire en premier - Commentaires, Valeurs et type de données, variables, vecteurs, importation
* objets 3d -
** Solides primitifs - cube, sphère, cylindre, polyhèdres
** Projection 3d à 2d
* Objets 2D
** Primitives 2D - carré, cercle, polygône
** Texte - Generate text using installed or user supplied font files.
** 2D to 3D - linear_extrude, rotation_extrude
* Transformations
** couleurs
** rotation, translation, mirroir, multmatrix
** échelle, redimensionnement
** décallage, minkowski, hull
** combinaison de transformations
* Combinations booléennes
** union, différence, intersection, rendu
* Autres fonctions et opérateurs
** Fonctions conditionnels et itératives - for, intersection_for, if, condition ? :, assignation
** Opérateurs mathématiques - Généralités, Vecteurs, Multiplication de matrices
** Fonctions mathématiques
*** Trigonométrie (cos sin tan acos asin atan atan2)
*** Autres (abs ceil concat cross exp floor ln len let log lookup max min norm pow rands round sign sqrt)
** Fonctions de chaînes - str, chr
** List Comprehensions
** Autres possibilités du language - Speciale '$' variables spéciales, affichage, rendu, surface, recherche , version, version_num, parent_module(n) and $parent_modules, assert
* Fonctions et modules définis par l'utilisateur - Functions, Modules, Enfants
* Aide à la programmation - % # ! * - Impression dans la console
* Librairies extérieurs et fichiers
** include - SCAD, CSG
** utilisation de fichiers SCAD
** importation de fichiers 3D : STL, OFF, DXF
** surface à partir d'une image (png)