Tutoriel OpenSCAD 5 – Formes 3D

Page suivante : Transformations 1

Voici les quatre formes 3D élémentaires qu’OpenSCAD permet de dessiner, avec les commandes cube(), cylinder(), sphere() et polyhedron(). Seuls les para­mè­tres les plus courants sont indiqués ici. Dans le manuel d’OpenSCAD : Primitive Solids.

cube

La commande cube() dessine un parallélépipède. S’il s’agit d’un cube il suffit de ne préciser qu’une dimension sans crochets droits.

  translate ([-20,0,0]) cube ([6,20,30]);
  cube (10, center=true);
  translate ([20,0,0]) cube ([18,2,3]);

Rendu d’OpenSCAD montrant 3 cubes

cylinder

La commande cylinder() dessine un cylindre, avec le paramètre r indiquant son rayon, ou un cône avec les paramètres r1 et r2 indiquant les rayons du bas et du haut. Mettre r1 ou r2 à 0 pour un cône non tronqué. h détermine la hauteur. $fn peut être précisé pour indiquer le nombre de faces.

  $fn = 100;

  translate ([-20,0,0]) cylinder (r=5, h=20);
  cylinder (r1=2, r2=8, h=30, $fn=20);
  translate ([20,0,0]) cylinder (r1=14, r2=0, h=30);

Rendu d’OpenSCAD montrant 3 cylindres

Le cône du centre a seulement 20 faces ($fn=20), les autres 100.

sphere

La commande sphere() dessine… une sphère, dont r est le rayon. r peut être omis et $fn peut être précisé. La sphère est toujours centrée, il est inutile de préciser center=true.

  $fn = 100;

  sphere (5, center=true);
  translate ([20,0,20]) sphere (r=14);

Rendu d’OpenSCAD montrant 2 sphères

polyhedron

La commande polyhedron() dessine un polyèdre, un solide délimité par des surfaces poly­gonales décomposées en triangles. Le paramètre points énumère la liste des sommets du poly­èdre, chaque sommet étant décrit par un triplet (vecteur) de coordonnées X, Y et Z. Le second paramètre faces décrit chaque triangle composant la surface, en indiquant ses trois sommets. Il s’agit là aussi d’une suite de triplets dont chacun désigne, en base 0, trois des sommets indiqués dans la liste des sommets points. Par exemple dans faces, un triplet [0,3,2] désignera les 1er, 4e et 3e triplets (donc sommets) contenus dans points. C’est la signification de base 0, où la numérotation d’une suite d’éléments commence par 0.

Pourquoi faire simple quand on peut faire compliqué ? Voici un cube dessiné avec la commande polyhedron(), que je n’utilise jamais étant donné sa complexité…

On commence par désigner les huit sommets de notre cube :

  polyhedron
  (
    points=[[-10,-10,0], [-10,10,0], [10,10,0], [10,-10,0],    // les 4 sommets de la base
            [-10,-10,20],[-10,10,20],[10,10,20],[10,-10,20]],  // les 4 sommets du haut

puis on désigne les sommets, contenus dans points, de chacun des deux triangles composant chaque face :

    faces=[[0,4,7],[3,0,7],      // face avant
               [0,1,5],[4,0,5],  // face gauche
               [3,7,6],[2,3,6],  // face droite
               [5,1,6],[1,2,6],  // face arrière
               [1,0,2],[0,3,2],  // bas
               [4,5,6],[7,4,6]]  // haut
  );

La difficulté réside dans la désignation des sommets, qui doit se faire dans le sens des aiguilles d’une montre (clockwise), [0,4,7],[3,0,7] par exemple pour la face avant du cube :

Décomposition d'un carré en deux triangles

OpenSCAD permet de visualiser un mauvais ordre des sommets, non clockwise, par exemple [0,4,7],[0,3,7] pour la face avant (choisir Jeté ensemble dans le menu Vue, avant la prévisualisation par F5) :

Rendu d’OpenSCAD montrant un polyedre ayant un mauvais triangle

Page suivante : Transformations 1

• Publié le 19/07/2013