Fichier de stéréolithographie

Modèle 3D interactif de la théière de l'Utah au format STL.

Le format de fichier STL est un format de fichier utilisé dans les logiciels de stéréolithographie (STL pour STereo-Lithography),,,. Ce format a été développé par la société 3D Systems. Ce format de fichier est utilisé par de nombreuses autres sociétés. Il est largement utilisé pour faire du prototypage rapide et de la fabrication assistée par ordinateur. Le format de fichier STL ne décrit que la géométrie de surface d'un objet en 3 dimensions. Ce format ne comporte notamment pas d'informations concernant la couleur, la texture ou les autres paramètres habituels d'un modèle de conception assistée par ordinateur.

Le fichier STL décrit un objet par sa surface externe. Cette surface est nécessairement fermée et définie par une série de triangles (ou de facettes). Chaque triangle est défini par les coordonnées cartésiennes (x, y, z) dans un trièdre direct de son vecteur normal unitaire (n) orienté vers l'extérieur de l'objet et de ses trois sommets (vertex/vertices en anglais) ordonnés dans le sens trigonométrique. Pour certains logiciels, le vecteur normal peut être mis à (0,0,0),; il sera alors calculé par le logiciel à partir des coordonnées des sommets suivant la règle de la main droite. Les coordonnées des sommets devaient à l'origine être positives, mais on rencontre désormais couramment des coordonnées négatives dans les fichiers STL. Chaque triangle doit partager 2 sommets avec chacun des triangles le juxtaposant. Dit autrement, le sommet d'un triangle ne doit pas être sur l'arête d'un autre triangle. Il n'y a pas d'information d'échelle. L'unité de longueur est arbitraire. Il est recommandé de classer les points par z croissant pour faciliter la lecture du fichier par certains logiciels. De plus, l'axe z est considéré comme l'axe vertical, bien qu'une correction sur l'axe y soit effectuée par certains logiciels de conception 3D comme Blender.

Il existe deux types de fichier : ASCII et binaire. Les fichiers ASCII sont faciles à créer, à la main ou avec n'importe quel langage de programmation, mais peuvent être très volumineux si l'objet est complexe. Les fichiers binaires moins volumineux sont plus utilisés pour cette raison. Les fichiers sont enregistrés avec l'extension .stl.

ASCII STL

Un fichier STL ASCII commence par la ligne :

solid name

où name est une chaîne facultative (mais si name est omis il doit toujours y avoir une espace après le code solid). Le fichier continue avec n'importe quel nombre de triangles, chacun représenté comme suit :

facet normal ni nj nk
   outer loop
     vertex v1x v1y v1z
     vertex v2x v2y v2z
     vertex v3x v3y v3z
   endloop
endfacet

Où chaque n ou v est un nombre à virgule flottante au format « signe-mantisse-e-signe-exposant », par exemple -2.648000e-002. Les n sont les données du vecteur normal à un triangle et les v les coordonnées de ses sommets.

Le fichier est clôturé par :

endsolid name

La structure du format laisse à penser qu'il existe d'autres possibilités, comme des facet normal avec plus d'une boucle (outer loop/endloop), ou des boucles avec plus de trois sommets (vertex). Dans la pratique, toutes les facet normal sont de simples triangles.

Les blancs (espaces, tabulations, retours à la ligne) peuvent être utilisés partout dans le fichier sauf au sein des nombres, ou des mots. Les espaces entre les codes « facet normal », et, « outer loop » sont obligatoires (ce sont des mots réservés).

STL binaire

Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?

Un fichier STL binaire est architecturé de la façon suivante :

Les nombres en virgule flottante sont représentés conformément à la spécification IEEE 754 et en mode little-endian utilisé sur Windows notamment.

UINT8[80] – en-tête
UINT32 – Nombre de triangles

foreach triangle REAL32[3] – Vecteur normal REAL32[3] – Sommet 1 REAL32[3] – Sommet 2 REAL32[3] – Sommet 3 UINT16 – Mot de contrôle end

Codage de la couleur en STL binaire

Il existe au moins deux extensions officieuses du format STL binaire permettant de coder la couleur des facettes :

Le codage de la couleur d'une facette est donné par 2 octets :

L'ordre de définition rouge, vert et bleu est inversé dans les codages de ces deux familles de logiciels ce qui pose des problèmes de compatibilité des fichiers car un logiciel lisant ces deux fichiers ne peut les distinguer. Il n'est pas non plus possible de définir une facette avec une transparence propre.

Notes et références

  1. 1 2 3 « Explication du format STL | En savoir plus sur le format de fichier STL | Adobe », sur www.adobe.com (consulté le )
  2. 1 2 3 « Fichier de stéréolithographie - L.F.L.P. - Ligue Francophone de Light Painting », sur www.lflp.fr (consulté le )
  3. 1 2 « Qu'est-ce qu'un fichier STL ? Guide Complet », sur Sculpteo (consulté le )
  4. 1 2 3 J.F. COBLENTZ, « Le formatde fichier STL(Acquisition et Impression 3D) - Une introduction » [PDF], (consulté le )
  5. ↑ « Qu'est-ce qu'un fichier STL ? | 3D Systems », sur fr.3dsystems.com, (consulté le )

Voir aussi