{{tag>software openscad}} ====== Openscad ====== Openscad est un logiciel de dessin 3D paramétrique. Il est largement utilisé dans le monde de l'impression 3D pour concevoir des pièces mécaniques. Ce n'est pas un programme de modélisation interactif, on peut le considéré davantage comme un compilateur 3D qui lit et modélise l'objet à partir de sa description dans un fichier script. Cela permet de donner le contrôle total sur le processus de modélisation et permet de changer facilement chaque étape du processus de modélisation ou de concevoir l'objet afin qu'il soit défini par des **paramètres reconfigurables**. Ce mode de conception d' objet 3D est désigné par 3D paramétrique. Le modèle peut ensuite être exporté au format STL et être relu par un [[software/applications/cura/notes_installation_linux|slicer tel que Cura]] qui sera en mesure de générer le fichier GCODE à communiquer à la machine outil ou l'imprimante 3D. La GUI d'openscad contient trois zones * L' éditeur texte * La prévisualisation 3D * La console ===== Interface ===== L'IHM se divise en 3 zones: * l'éditeur de script; * la vue; * la console. La vue présente une prévisualisation de l'objet. Si l'affichage en mode fil de fer n'affiche rien lancer un rendu. Selon la complexité de l'objet le premier rendu peut être long (la progression est affichée sous la console. Un système de cache permet ensuite de réduire le temps du rendu. Une fois le rendu effectué, le bouton Exporter comme STL(F7) est disponible. ===== Syntaxe et formes de bases ===== * Les commentaires utilisent la syntaxe C * Les instructions se terminent par ';' * Les commandes de transformation peuvent se combiner ==== Primitives 3D ==== * cube() * cylindre() * sphere() * polyhedron() ==== Primitives 2D ==== * square() * circle() * polygon() ===== Exemples ===== Les variables peuvent être regroupées dans le customizer. Le commentaire au dessus de la variable est affiché dans le customizer comme descriptif de la variable. /* [Groupe A] */ //Cube size SIZE = 1; for ( z = [-SIZE, SIZE, -3*SIZE]) { color("grey", alpha=0.5){ translate( [0, 0, z] ) cube(size = SIZE, center = false); }; } c=10; cube(c); translate([c+c/2,0,0]) cube(c); translate ([-(c+c/2),0,0]) cube(c); ===== Factorisation du code ===== Si un objet apparaît plusieurs fois, on peut créer un module et l'appeler autant de fois que nécessaire dans le fichier courant ou dans un autre fichier via la commande **use**. ===== Références ===== * http://reprapide.francois-delegue.fr/pages/tutoriel-openscad-introduction.html * https://fr.wikibooks.org/wiki/Tutoriel_d%27OpenScad * https://edutechwiki.unige.ch/fr/Tutoriel_OpenSCAD