<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>http://wiki.labaixbidouille.com/index.php?action=history&amp;feed=atom&amp;title=D%C3%A9couverte_des_primitives_de_dessin_2D_d%27OpenSCAD</id>
		<title>Découverte des primitives de dessin 2D d'OpenSCAD - Historique des versions</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.labaixbidouille.com/index.php?action=history&amp;feed=atom&amp;title=D%C3%A9couverte_des_primitives_de_dessin_2D_d%27OpenSCAD"/>
		<link rel="alternate" type="text/html" href="http://wiki.labaixbidouille.com/index.php?title=D%C3%A9couverte_des_primitives_de_dessin_2D_d%27OpenSCAD&amp;action=history"/>
		<updated>2026-04-17T20:18:59Z</updated>
		<subtitle>Historique pour cette page sur le wiki</subtitle>
		<generator>MediaWiki 1.26.0</generator>

	<entry>
		<id>http://wiki.labaixbidouille.com/index.php?title=D%C3%A9couverte_des_primitives_de_dessin_2D_d%27OpenSCAD&amp;diff=308&amp;oldid=prev</id>
		<title>Adminsys : Page créée avec « OpenSCAD est un logiciel libre de dessin 3D paramétrique, c’est à dire que les objets sont dessinés par les commandes d’un langage de programmation. C’est un logi... »</title>
		<link rel="alternate" type="text/html" href="http://wiki.labaixbidouille.com/index.php?title=D%C3%A9couverte_des_primitives_de_dessin_2D_d%27OpenSCAD&amp;diff=308&amp;oldid=prev"/>
				<updated>2015-12-15T12:05:41Z</updated>
		
		<summary type="html">&lt;p&gt;Page créée avec « OpenSCAD est un logiciel libre de dessin 3D paramétrique, c’est à dire que les objets sont dessinés par les commandes d’un langage de programmation. C’est un logi... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;OpenSCAD est un logiciel libre de dessin 3D paramétrique, c’est à dire que les objets sont dessinés par les commandes d’un langage de programmation. C’est un logiciel de dessin très populaire dans la communauté des utilisateurs d'imprimante 3D. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sapin_OpenSCAD.png|vignette|droite]]&lt;br /&gt;
&lt;br /&gt;
== Présentation et objectifs ==&lt;br /&gt;
Ce tutoriel a pour but de faire découvrir les primitives de dessin 2D du langage OpenSCAD.&lt;br /&gt;
Il vous permettra d'apprendre à utiliser les primitives suivantes :&lt;br /&gt;
* ''square()''&lt;br /&gt;
* ''circle()'' &lt;br /&gt;
* ''polygon()''&lt;br /&gt;
&lt;br /&gt;
Même si ça peut paraitre surprenant de faire du dessin 2D avec un logiciel de modélisation 3D, la découvertes &lt;br /&gt;
de ces premières primitives permettra de se familiariser avec le logiciel et le langage. Utilisé avec les primitives &lt;br /&gt;
d'extrusion, les formes 2D permettent de réaliser rapidement un grand nombre de formes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pré-requis ==&lt;br /&gt;
Avant de faire ce tutoriel, il faut comprendre la logique d'utilisation d'OpenSCAD. &lt;br /&gt;
Si vous n'avez jamais ouvert ce logiciel, vous pouvez suivre le tutoriel suivant :   &lt;br /&gt;
* [[Premier pas avec OpenSCAD]].&lt;br /&gt;
&lt;br /&gt;
== Découverte des primitives de dessin 2D ==&lt;br /&gt;
Toutes les primitives 2D crée des formes d’épaisseur nulle même si elles sont rendu dans la zone de visualisation par des objets 3D d'épaisseur 1.&lt;br /&gt;
Vos programmes devront être enregistrés dans un fichier d'extension ''.scad''.&lt;br /&gt;
&lt;br /&gt;
Pour faciliter la relecture de vos programmes plusieurs mois après, ou par quelqu'un d'autre, vous pouvez rajouter des commentaires explicitant ce que fait votre code. C'est une bonne habitude à prendre d'expliquer clairement ce que l'on fait. Attention ça peut être une arme à double tranchant lorsqu'ils &lt;br /&gt;
ne sont pas maintenus à jour. &lt;br /&gt;
&lt;br /&gt;
La syntaxe à utilisée pour qu'OpenSCAD reconnaisse un commentaire (et n'interprète pas les lignes associées) est la suivante :&lt;br /&gt;
* Un commentaire sur une seule ligne doit être précédé par deux &amp;quot;slashes&amp;quot;,&lt;br /&gt;
* Un commentaire sur plusieurs lignes doit être entouré par &amp;quot;/*&amp;quot; et &amp;quot;*/&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Par exemple : &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
cube(size=20); // Ceci est un commentaire inutile mais sur une seule ligne&lt;br /&gt;
translate([40,0,0]) cube(size=30);&lt;br /&gt;
/*&lt;br /&gt;
Ceci est un commentaire&lt;br /&gt;
M&lt;br /&gt;
u&lt;br /&gt;
l&lt;br /&gt;
t&lt;br /&gt;
i&lt;br /&gt;
l&lt;br /&gt;
i&lt;br /&gt;
g&lt;br /&gt;
n&lt;br /&gt;
e&lt;br /&gt;
*/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Classiquement, il est recommandé de mettre au début de votre fichier un commentaire en entête pour être capable de comprendre rapidement l'objectif d'un fichier. Par exemple : &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Fichier : ceciEstLeNomDeMonFichier.scad&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
Décrivez ici votre objet.&lt;br /&gt;
&lt;br /&gt;
Auteur : Prénom NOM&lt;br /&gt;
&lt;br /&gt;
Licence : CC-By-SA&lt;br /&gt;
*/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Première primitive : ''square()'' ===&lt;br /&gt;
Le première primitive est comme son nom l'indique destinée à dessiner des carrés. &lt;br /&gt;
Le carré est crée à l'origine du repère dans le plan ''xOy''.&lt;br /&gt;
Cette primitive a le profil suivant :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
square(size=1, center=false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Ce profil nous indique que cette primitive admet deux paramètres. Le premier est la taille (''size'') &lt;br /&gt;
et a pour valeur par défaut 1 mm. Le second permet de dessiner le carré avec son centre concordant avec &lt;br /&gt;
l'origine du repère. Par défaut ce n'est pas le cas, c'est l'un des coins qui sera situé à l'origine.&lt;br /&gt;
&lt;br /&gt;
Par exemple pour créer un carré de coté 30mm dont l'un des coins est situé à l'origine du repère, il faut écrire le code suivant : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
square(30); // ou square(size=30);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce code une fois compilé (''F5'') produira le modèle suivant : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carre OpenSCAD.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Pour créer un carré de coté 30mm dont le centre est situé à l'origine du repère, il faut écrire le code suivant : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
square(30,true);//ou square(size=30, center=true);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce code une fois compilé (''F5'') produira le modèle suivant : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Carre centre OpenSCAD.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Dans la philosophie d'OpenSCAD, le nombre de primitive doit être autant minimal que possible. Aussi cette primitive permet aussi dessiner un rectangle en précisant la longueur et la largeur dans le paramètre ''size''.&lt;br /&gt;
&lt;br /&gt;
Pour créer un rectangle de coté 30x50mm dont le centre est situé à l'origine du repère, il faut écrire le code suivant : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
square(size=[30,50], center = true);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce code une fois compilé (''F5'') produira le modèle suivant : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Rectangle centre OpenSCAD.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Deuxième primitive : ''circle()'' ===&lt;br /&gt;
La seconde primitive est celle que permet de dessiner des cercles situé à l'origine du repère.&lt;br /&gt;
&lt;br /&gt;
Cette primitive a le profil suivant :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
circle(r=radius | d=diameter)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Si l'on ne précise pas le nom du paramètre, c'est l'argument est interprété comme le rayon du cercle. &lt;br /&gt;
Si l'on utilise les paramètres nommés, dans ce cas là on peut précise si l'on veut utiliser le rayon ou le diamètre.&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour tracer un cercle centré sur l'origine du repère de diamètre 20mm, il faut écrire le code suivant :  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
//circle(10);&lt;br /&gt;
//circle(r = 10);&lt;br /&gt;
circle(d = 20);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce code une fois compilé (''F5'') produira le modèle suivant : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cercle centre OpenSCAD.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Sur le rendu, on voit que le cercle n'est pas parfaitement lisse. Il est composé de plusieurs petits segments. &lt;br /&gt;
Une variable spéciale permet de spécifier le nombre de segments. Cette variable, nommée $fn vaut par défaut 30.&lt;br /&gt;
&lt;br /&gt;
Si l'on veut lisser le cercle on peut mettre cette variable à une valeur de 100 ou plus. Le défaut, c'est que plus &lt;br /&gt;
on améliore le rendu final, plus le temps pour l'obtenir sera long.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Cercle lisse centre OpenSCAD.png|600px]]&lt;br /&gt;
&lt;br /&gt;
À l'inverse, on peut aussi exploiter cette primitive pour faire des polygones en spécifiant un nombre de segment faible.&lt;br /&gt;
Par exemple, pour dessiner un hexagone il suffit d'écrire le code suivant : &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
circle(d = 20, $fn=6);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce code une fois compilé (''F5'') produira le modèle suivant : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Hexagone centre OpenSCAD.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Troisième primitive : ''polygon()'' ===&lt;br /&gt;
La troisième primitive est la plus puissante mais aussi la plus complexe des 3. Elle permet de tracer des polygones &lt;br /&gt;
à partir d'une liste de points. Ces polygone peuvent être convexe ou non et ils peuvent aussi comporter des trous.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
polygon([points],[paths])&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Le paramètre ''points'' est une liste de coordonnées de points ([X,Y]) qui seront utilisé pour dessiner le polygone. &lt;br /&gt;
Par défaut les points sont considérés par rapport à leur position dans la liste. Pour changer ce comportement, on utilise &lt;br /&gt;
le paramètre ''path''. Il définit pour chaque point le rang dans lequel il sera considéré pendant le dessin.&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour tracer un triangle rectangle isocèle dont l'angle droit est situé sur l'origine du repère dont les côtés font 100mm, il faut écrire le code suivant :  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
polygon(points=[[0,0],[100,0],[0,100]]);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce code une fois compilé (''F5'') produira le modèle suivant : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Triangle OpenSCAD.png|600px]] &lt;br /&gt;
&lt;br /&gt;
Pour faire des trous dans un polygone, il faut utiliser le paramètre ''paths'' en lui spécifiant plusieurs chemins. Le premier est le polygone externe et les suivants sont les trous. Par exemple pour transformer l'exemple ci-dessus en une belle équerre d'écolier, il faut écrire le code suivant :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
polygon(points=[[0,0],[100,0],[0,100],[10,10],[80,10],[10,80]], paths=[[0,1,2],[3,4,5]]);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce code une fois compilé (''F5'') produira le modèle suivant : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Equerre OpenSCAD.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Après, il est certain que le dessin à partir des coordonnées demande un effort d'abstraction certain nécessitant généralement de prendre un papier et un stylo. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Conseils ===&lt;br /&gt;
Ce tutoriel est assez simple à réaliser mais il pourra vous servir de référence par la suite pour la réalisation de modèle complexe.&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
Dans OpenScad, les formes 2D sont principalement utilisées en conjonction avec les opérateurs d'extrusions.&lt;br /&gt;
&lt;br /&gt;
== Bibliographie ==&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Using_the_2D_Subsystem Primitive 2D]&lt;br /&gt;
* [http://reprapide.fr/tutoriel-openscad-formes-2d Tutoriel reprapide formes 2D ]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutoriel]]&lt;br /&gt;
[[Category:OpenSCAD]]&lt;/div&gt;</summary>
		<author><name>Adminsys</name></author>	</entry>

	</feed>