STL

Qu’est-ce qu’un fichier STL ?

Le standard de l’impression 3D. Rien que des triangles : ni couleur, ni matériau, ni texture.

Ce qu’est STL

STL est un format binaire, qui ne veut rien dire hors d’un programme qui le connaît. Il stocke des formes et des coordonnées plutôt que des pixels, donc il reste net à n’importe quelle taille — un logo porté à la taille d’une affiche ne perd rien. Il est utilisé pour l’impression 3D.

L’extension est .stl et le nom complet Stereolithography. L’un et l’autre comptent moins que ce que le fichier peut contenir, et c’est le sujet du reste de cette page.

D’où vient STL

3D Systems l’a publié en 1987.

À un format resté lisible aussi longtemps, on peut confier quelque chose qu’on veut retrouver dans dix ans.

La spécification est publique

Elle est publiée intégralement : n’importe qui peut l’implémenter à partir du document plutôt qu’en l’observant, et c’est pourquoi ce format apparaît dans tant de programmes et pourquoi des fichiers écrits il y a vingt ans s’ouvrent encore. Une spécification publiée n’est pas pour autant libre de redevances : quand un format enveloppe un codec, les brevets sont une question à part, que la norme ne tranche pas.

Rien n’est jeté

STL enregistre son contenu à l’identique. Le réenregistrer ne change rien : vous pouvez l’ouvrir, le modifier et le réenregistrer autant de fois que vous voulez sans accumuler de dégâts, et c’est ce qui en fait un format de travail plutôt qu’un format de livraison.

Ce qui ouvre STL

Blender, PrusaSlicer et Cura le lisent, comme la plupart des programmes du même genre.

Quand un fichier ne s’ouvre pas, le format est rarement en cause : le plus souvent, c’est le programme qui est plus ancien que lui. Convertir vers quelque chose de plus ancien est le contournement fiable, et c’est à cela que sert le reste de ce site.

L’ouvrir dans un navigateur

Aucun navigateur ne le lit.

C’est de loin la raison la plus fréquente de le convertir : non pas que le format soit mauvais, mais que l’endroit où vous voulez montrer le fichier ne sache pas le lire.

C’est un format de travail

STL est fait pour être ouvert et modifié. Gardez le fichier dans ce format tant que le travail dure, et exportez depuis lui chaque fois qu’une version finie est nécessaire.

Des triangles, et volontairement rien d’autre

Un fichier STL est une liste de triangles. Chacun possède trois sommets et une direction indiquant quel côté est extérieur. Il n’y a pas de couleur, pas de matière, pas de texture, pas d’unité de mesure et pas de structure — un modèle de bloc-moteur est un sac indifférencié de triangles, exactement comme un modèle de cube.

Le format a été écrit en 1987 pour la stéréolithographie, et tout en lui reflète une machine qui n’avait besoin de savoir où se trouvait le solide. Près de quarante ans plus tard, c’est encore ce qu’attend chaque imprimante 3D de bureau, parce que c’est toujours la seule question qu’un trancheur pose.

Les courbes n’existent pas, donc la résolution se décide à l’export

Une sphère dans un logiciel de modélisation est une sphère mathématique. Un STL qui en est tiré est composée de quelques milliers de triangles plats qui prétendent en être une, et leur nombre est choisi par la personne qui a exporté le fichier. Trop peu et l’impression présente des facettes visibles ; trop et le fichier est énorme et le trancheur est lent.

C’est la seule décision qu’on ne peut pas défaire plus tard. Un STL grossier ne peut pas être lissé en une courbe, parce que la courbe a disparu — il ne reste que l’approximation. Exportez depuis le modèle d’origine à la tolérance dont l’impression a besoin, et conservez l’original : le STL est un format de livraison, pas un original.

Étanche, et pourquoi un trancheur refuse un fichier

Un modèle imprimable doit décrire un solide sans ambiguïté. Cela signifie que chaque arête est partagée par exactement deux triangles, qu’il n’y a pas de trou, et que toutes les normales pointent vers l’extérieur. Un tel maillage est étanche ou manifold, et c’est cette propriété qui permet au trancheur de décider ce qui est à l’intérieur.

Les modèles échouent à cela constamment, généralement parce qu’ils ont été construits pour le rendu. Une surface sans épaisseur a l’air parfaite à l’écran et est impossible à imprimer. Deux formes qui se chevauchent sans avoir été fusionnées laissent des faces internes. Un trou dans le maillage laisse le trancheur deviner, et il refusera le fichier ou comblera quelque chose que vous ne vouliez pas. Les outils de réparation règlent la plupart des cas automatiquement, et cela vaut la peine d’en utiliser un avant l’imprimante plutôt qu’après.

Le problème des unités, dans un format où il compte le plus

Les nombres d’un STL n’ont pas de dimension. Le fichier indique 25,4 et ne dit pas si c’est en millimètres ou en pouces, donc un modèle conçu en pouces ouvert dans un trancheur en millimètres s’imprime au 1/25e de la taille voulue — ou 25 fois trop grand dans l’autre sens.

Le monde de l’impression 3D suppose largement les millimètres, et la plupart des trancheurs sont en millimètres par défaut. Vérifiez les dimensions de la boîte englobante que le trancheur annonce par rapport à ce que l’objet doit réellement être avant d’imprimer. Cela prend cinq secondes et c’est la différence entre une pièce qui s’ajuste et une leçon très lente et très coûteuse.

ASCII et binaire sont le même format

La spécification autorise deux encodages. ASCII écrit chaque coordonnée en texte lisible, ce qui rend le fichier cinq à six fois plus volumineux et permet de l’ouvrir dans un éditeur. Le binaire écrit cinquante octets par triangle et c’est ce que presque tout produit et attend.

Utilisez le binaire sauf quand quelque chose exige spécifiquement autre chose. Le seul avantage réel de l’ASCII est qu’un humain peut l’inspecter, ce qui est parfois utile pour diagnostiquer un export cassé et jamais utile pour imprimer. Convertir entre les deux ne change rien à la géométrie, et certains outils anciens ne lisent que l’ASCII, ce qui oblige parfois à passer par cette conversion au prix d’un fichier bien plus gros.

La couleur, et les formats qui la portent

STL n’en a aucune. Il existe des extensions non officielles qui logent de la couleur dans des octets inutilisés, et leur prise en charge est suffisamment incohérente pour qu’on ne puisse pas s’y fier.

Cela compte à mesure que l’impression multi-matière et pleine couleur devient banale. Si une impression a besoin de plus d’une couleur, le fichier doit être en 3MF ou OBJ, deux formats qui portent les affectations de matière correctement. Le 3MF est la réponse moderne en général — c’est une vraie spécification avec unités, matières et paramètres d’impression, et la raison pour laquelle il n’a pas remplacé STL est l’inertie plutôt que le mérite, parce que les trancheurs et les imprimantes lisent toujours STL en priorité.

L’orientation et les supports, qui sont des décisions du trancheur

Le STL ne porte aucune indication sur la façon dont l’objet doit être posé sur le plateau. Le trancheur décide d’une orientation, et c’est ce qui détermine si l’impression aura besoin de supports sous les porte-à-faux, si certaines faces seront plus visibles que d’autres, et si les efforts mécaniques tireront dans la direction la plus solide du polymère.

La règle qui vaut presque toujours est de poser l’objet à plat sur sa plus grande face, ce qui réduit la hauteur totale et le temps d’impression. Pour des pièces qui doivent résister à un effort, l’orientation est aussi un choix mécanique, et l’avis d’une personne qui imprime régulièrement le même type de pièce pèse plus qu’une optimisation automatique. La hauteur compte parce que l’impression se fait en tranches successives, et doubler la hauteur ne double pas le temps mais fait plus que le doubler à cause des déplacements de la tête entre les couches.

Les supports, eux, ajoutent du matériau qui doit être retiré après l’impression, ce qui peut marquer les surfaces visibles et qui fait perdre du temps. Un objet bien orienté peut s’imprimer sans support du tout, et c’est un objectif qui vaut la peine d’être visé pour les pièces de présentation. Pour les pièces fonctionnelles qui n’ont pas le choix, accepter les supports et prévoir leur retrait fait partie du flux de travail.

D’un STL à un objet imprimé

Le STL n’est pas envoyé à l’imprimante. Il entre dans un trancheur, qui l’oriente, ajoute des supports là où un porte-à-faux s’imprimerait dans le vide, et le découpe en couches pour produire du G-code — les instructions réelles pour la machine. Chaque décision qui détermine si l’impression réussit se prend dans le trancheur, pas dans le fichier.

C’est pourquoi ce qu’il faut réussir dans le STL est étroit : la bonne échelle, un maillage étanche, assez de triangles pour décrire les courbes à la taille à laquelle on va imprimer. Tout le reste — remplissage, parois, température, supports — se décide en aval, et rien de cela ne peut sauver un maillage troué. Le STL est un fichier intermédiaire, pas un fichier de travail quotidien, et c’est ce qui explique pourquoi il coexiste avec des formats plus riches comme 3MF sans avoir été remplacé.

Les données, au même endroit

Identifiants et origine du format STL.
Extension.stl
Type de médiamodel/stl
Publié par3D Systems
Première publication1987