Notes d'atelier

J'envoie encore des STL, mais je préfère le 3MF

J’envoie encore des STL, mais je préfère le 3MF

La semaine dernière, un client m’a demandé pourquoi je livrais deux fichiers pour la même pièce. “Le STL, c’est pas le standard ?” Oui. Mais c’est aussi un format de trente-huit ans, et ça se sent.

Je lui ai expliqué qu’un STL ne stocke que des triangles. Pas d’unités. Pas de couleur. Pas de matériau. Aucune idée de savoir si la pièce a été dessinée en millimètres ou en pouces. J’ai déjà ouvert un STL dans un slicer et vu un support de 120 mm arriver comme 120 pouces, parce que l’exporteur avait supposé la mauvaise convention d’unité. Sur une petite pièce, on s’en rend compte vite. Sur un gros assemblage, ça peut coûter une série d’impressions.

C’est pour ça que la question du format 3MF vs STL pour fichiers impression 3D a de l’importance. Le STL, c’est la valeur sûre par défaut. Le 3MF, c’est le meilleur fichier quand le flux de travail de l’autre côté sait le lire. Je livre les deux parce que je ne contrôle pas ce que l’imprimeur de mon client ouvre.

[IMAGE: Deux icônes de fichiers côte à côte sur un fond sombre, l’une marquée STL en couleur tamisee, l’autre 3MF avec un contour ambre. Des lignes de maillage triangulaire s’echappent du fichier STL, tandis qu’une structure de paquet ZIP/XML compressée flotte derrière le fichier 3MF. Style technique, isométrique, éclairage d’atelier.]

Ce qu’est vraiment le STL

Le STL a été créé par 3D Systems en 1987 pour la stéréolithographie. Il décrit une surface comme une collection de triangles plats. Un STL ASCII est lisible par un humain et énorme. Un STL binaire est plus petit, mais il reste juste des triangles. Le format n’a pas de place pour les unités, les noms de pièces, les vignettes, les réglages d’impression ou les corps multiples. Si vous voulez de la couleur, il faut compter sur des extensions propriétaires non standard que chaque logiciel interprète à sa façon.

Pour la plupart des pièces FDM simples, ça suffit. Un support mono-couleur, une entretoise, un boîtier de prototype — le STL transporte tout ce dont le slicer a besoin. Le maillage doit juste être étanche et manifold, et c’est là que se passe la majeure partie du travail de comment préparer fichiers STL pour impression 3D. Je passe plus de temps à corriger des normales inversées et des arêtes non-manifold qu’à choisir le format.

Ce que le 3MF corrige

Le 3MF a été publié par le 3MF Consortium en 2015 et est devenu un standard ISO/IEC 25422:2025 en 2025. Il stocke la géométrie dans un paquet XML compressé en ZIP, et il emporte bien plus que des triangles.

L’élément model a un attribut d’unité explicite, en millimètres par défaut. Donc un 3MF s’importe à la bonne échelle dans Cura, PrusaSlicer ou Bambu Studio sans que j’aie à deviner. Il supporte plusieurs objets dans un seul fichier, chacun avec sa propre transformation. Il peut embarquer une vignette, des matériaux de base avec des couleurs d’affichage, et même de la couleur mappée en texture via l’extension Materials and Properties. Pour les impressions multi-matériau ou multi-corps, ça change beaucoup de choses.

Les fichiers 3MF sont aussi généralement plus petits qu’un STL binaire, parce que la géométrie est compressée à l’intérieur du paquet ZIP. Sur des maillages détaillés, la différence est visible, surtout quand j’envoie des fichiers par mail en boucle.

Le piège : tous les 3MF ne se lisent pas pareil

Voilà la partie qui m’a pris du temps à comprendre. “Support du 3MF” ne veut pas dire “interopérabilité du 3MF”.

Bambu Studio peut exporter un 3MF de base générique, mais son enregistrement de projet par défaut écrit des extensions spécifiques à Bambu : plaques de construction, supports peints, filaments, réglages de process. PrusaSlicer et Cura peuvent refuser d’ouvrir ces fichiers ou les afficher comme vides. L’inverse est vrai aussi. Cura écrit des 3MF de projet UltiMaker Cura qui transportent des réglages par objet et des profils machine. PrusaSlicer peut généralement lire la géométrie, mais il ignore les métadonnées spécifiques à Cura.

Donc quand j’envoie un 3MF à un client, je m’assure que c’est un 3MF simple et générique — pas un fichier projet. Si l’imprimeur utilise le même slicer que moi, j’envoie le 3MF projet à part. Sinon je reste sur du 3MF géométrie uniquement, plus un STL en secours.

Comment je choisis en pratique

Pour une pièce fonctionnelle simple — un support, une entretoise, un guide de perçage — je pars sur du STL. Tout le monde peut l’ouvrir, et il n’y a rien dans la pièce qui justifie les extras du 3MF.

Pour des assemblages, des pièces multi-corps, ou quoi que ce soit avec des attributs de couleur ou de matériau, je préfère le 3MF. Un seul fichier, échelle correcte, plusieurs objets. Ça réduit le risque que quelqu’un importe la moitié des pièces à la mauvaise taille.

Pour les services d’impression en ligne ou les clients qui veulent juste “un fichier imprimable”, j’envoie du STL. Ces services sont construits autour du STL, et je préfère ne pas introduire un format que leur pipeline pourrait ne pas attendre.

Pour l’itération interne avec un client qui utilise PrusaSlicer ou Bambu Studio, j’envoie du 3MF. On conserve l’orientation, les supports et les choix de matériau embarqués. Ça évite un tour de mails du type “c’était bien ce filament-là que tu avais en tête ?”.

Le workflow prime sur le format

Le débat sur le format est moins intéressant que le workflow autour. Je fais les mêmes vérifications sur les deux : maillage étanche, pas de normales inversées, densité polygonale raisonnable, porte-à-faux compatibles avec l’imprimante choisie, et stratégie de supports adaptée au matériau. Un mauvais maillage en 3MF reste un mauvais maillage.

Mais le 3MF supprime toute une classe de pannes : les pannes d’échelle et d’unités. Ça suffit à en faire mon export préféré quand je sais que la destination sait le lire. Tant que tous les services et les machines anciennes ne seront pas à jour, le STL restera dans le dossier de livraison. Pas parce qu’il est meilleur, mais parce que c’est le plus petit dénominateur commun qui fonctionne encore.