Couverture de l'article Les étapes pour passer d'un STEP à une 3D web
Retour aux articles

L'agence

WanadevStudio

Les étapes pour passer d'un STEP à une 3D web

Dans l'industrie, la 3D existe déjà : c'est le fichier STEP du bureau d'études. Mais ce fichier est trop lourd pour un navigateur, trop précis pour être partagé sans risque, et illisible sans logiciel de CAO. Les équipes qui en auraient besoin (SAV, commerce, marketing) n'y ont pas accès facilement. Chez WanadevDigital, on transforme cette 3D en fichiers légers et sécurisés pour le web depuis plus de 15 ans, notamment pour l'industrie.

Je me suis dit que ça pouvait être intéressant de voir ce qu'il y a concrètement entre le fichier de départ et la maquette qu'on ouvre sur une tablette, étape par étape : tri des pièces cachées, allègement du maillage, LOD, proxy, matières, nommage et contrôle qualité.

Les images sont faites sur un palier à semelle qu'on a créé pour cet article. (avec Claude :D)

Sommaire

Le fichier STEP : un format de CAO fait pour fabriquer, pas pour montrer

Un STEP, c'est un format d'échange de la CAO (ce n'est pas le seul !). Il est fait pour fabriquer : chaque surface y est décrite par une formule exacte (ce cylindre a tel rayon, cette face suit telle courbe), et une machine-outil sait lire ça de manière très précise.

Il contient aussi l'arborescence de l'ensemble, avec les noms que le bureau d'études a donnés aux pièces, et un en-tête qui indique souvent l'auteur et la société + le logiciel initial. En général, il y a peu ou pas d'informations sur les matériaux / les couleurs.

Sauf que ce fichier, il est trop lourd pour un navigateur, illisible sans logiciel de CAO, et il contient tout le savoir-faire de conception. Les équipes terrain (SAV, commerce, marketing, etc.) n'y ont pas accès facilement et souvent, on ne veut pas qu'elles voient tout.

L'objectif, c'est d'en faire un fichier GLB (le format 3D standard du web, la version binaire de glTF) qui s'ouvre vite, qui ressemble à la vraie machine et qui ne montre que ce qu'on a décidé de montrer. C'est le cœur de notre offre de conversion CAO vers web 3D.

Identifier et retirer les pièces cachées (item buffer)

Dans un ensemble, il y a de la géométrie qu'on ne voit pas : des sous-ensembles internes, les perçages borgnes, la visserie noyée dans un bâti.. retirer ces parties ne change rien visuellement à l'ensemble final mais permet un allègement global, et au passage le savoir-faire (de tout ce qui est retiré ici) reste chez vous.

La technique utilisée s'appelle un item buffer : la machine est rendue sous plusieurs angles, chaque face peinte d'une couleur unique. Toute face qui n'apparaît sur aucun rendu est considérée comme invisible et peut être retirée du modèle final.

On décide face par face. Si un seul pixel d'une face est vu, on la garde en entier, donc on garde parfois un peu trop, mais on ne troue jamais une pièce visible.

Ensuite on vérifie : on refait 300 vues plus fines et on compare chaque pixel avant et après le tri. Cette vérification va permettre de quantifier : 21 % de triangles en moins, pour 2 pixels différents sur 490 000 par exemple. De là on peut faire un contrôle automatisé en définissant des seuils.

Alléger le maillage : de 16 000 à 500 triangles

En 3D, pour afficher une pièce, il faut découper ses surfaces en petits triangles plats. Plus une surface est courbe, plus il en faut pour qu'elle paraisse ronde. Notre palier exporté avec des réglages fins en fait 16 112, et l'essentiel sert à arrondir l'alésage et les bords. Une machine, c'est des centaines de pièces..

En Web 3D, c'est le navigateur de l'utilisateur qui affiche ces triangles grâce à WebGL, l'API graphique standard des navigateurs (disponible sur ordinateur, tablette et smartphone). On considère que 1M de points (on parle en points = vertices : les points de chaque triangle) est un maximum pour que nos scènes 3D s'affichent de manière fluide. Et 1M de points ça va très vite !

Ce qu'on règle, c'est une tolérance : de combien la surface affichée a le droit de s'écarter de la vraie. Le nombre de triangles en découle. Sur notre modèle de test on a huit réglages, du plus grossier qui garde 3 % des triangles au plus fin qui en garde 84 %.

Visuel d'un allégement, le même palier en 16 112, 2 624 et 856 triangles

Le LOD (level of detail) : un niveau de détail par distance

Une pièce vue à l'autre bout de la machine, ou petite par rapport à l'ensemble, n'a pas besoin du même détail que celle qu'on regarde de près. On peut donc produire plusieurs versions de la même pièce, de la plus fine à la plus grossière, et afficher la bonne selon la distance. C'est ce qu'on appelle un LOD (level of detail). Sur l'image, la version de loin fait 856 triangles.

Le proxy : remplacer une pièce par une forme simple

Pour certaines parties on va plus loin : on les remplace par des formes simples, une boîte, un cylindre, un profil extrudé. On appelle ça un proxy. Notre palier tombe à 64 triangles.

Une forme simple peut ajouter de la matière : sur l'image, l'alésage est bouché. On mesure donc l'écart dans les deux sens, de la pièce vers la forme et de la forme vers la pièce, et c'est cette mesure qui décide si le remplacement est accepté.

Le critère, c'est de savoir si quelqu'un verra la différence en regardant la machine entière. Un écart de quelques millimètres occupe la même place à l'écran sur un grand panneau et sur une petite équerre, donc c'est la taille de la machine qui fixe le seuil.

Une forme peut aussi rester dans la tolérance et avoir perdu ce qui rendait la pièce reconnaissable, par exemple une plaque qui perd ses trous. On fait donc regarder chaque pièce à côté de son proxy par un modèle de vision, qui signale celles qui ne se ressemblent plus. En faisant ces contrôles, on a trouvé une assiette creuse qui ressortait plate sur le dessus.

Pièce CAO originale à côté de son proxy simplifié (64 triangles) — l'alésage est bouché par le remplacement géométrique

La visserie : le pire ennemi du poids de la 3D

En visualisation 3D, la vis est la pièce la plus coûteuse par rapport à sa taille. Le filetage hélicoïdal est courbe (donc lourd en triangles) et minuscule (donc invisible dans la vue d'ensemble). Personne ne zoome sur une vis. Une même vis revient souvent des dizaines de fois dans une machine. On ne la stocke qu'une fois et on la place à chaque endroit. On ne regroupe deux pièces que si elles se superposent quasi parfaitement, pour ne jamais fusionner deux pièces différentes. Et on utilise un proxy de vis (deux cylindres de rayon différent par exemple).

Matières, textures et UV mapping depuis un fichier CAO

Les fichiers STEP ne contiennent pas d'information sur les matériaux : le format est orienté géométrie, et le modèle ressort entièrement gris. On utilise des modèles de vision pour identifier les matériaux les plus probables (acier brossé, aluminium, plastique, peinture) et les appliquer automatiquement. Ces modèles peuvent tourner en local, sans envoyer de données à l'extérieur.

Pour poser une matière qui a un grain (du métal brossé, du bois..), il faut savoir comment "déplier" chaque surface à plat pour y poser l'image du grain, comme un patron de couture. En 3D ça s'appelle les UV, et la CAO n'en a pas puisqu'elle n'en a jamais eu besoin. En visualisation c'est crucial, si le bois a des nervures qui ne sont pas à la bonne échelle, ça fait désordre :) l'œil humain tique tout de suite.

On calcule ce patron pièce par pièce, avec une méthode choisie selon la forme : un axe se déroule comme un cylindre, un disque se pose à plat, le reste est projeté selon plusieurs directions. On répare la couture des cylindres, là où le patron se referme. Ensuite on règle tout pour que le grain ait la même taille réelle partout, sur un grand carter comme sur une petite équerre. Sur l'image, le damier du milieu montre ce patron : les carreaux font la même taille sur toute la pièce.

UV mapping d'un palier mécanique : le damier montre le dépliage du patron, avec un grain à la même échelle sur toute la pièce

Nommage et traduction des pièces d'un fichier STEP

Dans un STEP, les noms sont faits pour le bureau d'études : des codes internes, des numéros de révision, des "Body1", et parfois des noms en chinois quand la pièce vient d'un fournisseur.

On le traite en deux temps. D'abord on nettoie. On retrouve le bon encodage des caractères, pour que les noms chinois restent lisibles, puis on traduit en local, rien ne part sur internet. Un traducteur classique nous avait traduit 螺钉 ("vis") par "escargot" et 垫圈 ("rondelle") par "coussin". On passe donc d'abord par un glossaire métier, et la traduction automatique ne fait que le reste.

Ensuite on sécurise ce qui sera publié : les codes internes et les révisions disparaissent, chaque pièce garde la référence utile à celui qui la consulte, et les pièces sensibles sont retirées.

Arborescence STEP avant et après nettoyage des noms : codes internes et caractères chinois remplacés par des noms métier traduits

Suivre les révisions du bureau d'études

Chaque étape est rejouée depuis le fichier d'origine. Quand le bureau d'études sort une révision, on relance, et la maquette web suit avec les mêmes réglages.

Contrôler le résultat : grille de vignettes et seuils d'alerte

Ce qu'on s'est demandé avec notre logiciel, c'est comment contrôler rapidement à l'œil (humain !) des dizaines de conversions ? On a donc mis en place des générations de screenshots des rendus 3D finaux qu'on propose en grille de vignettes pour un premier parcours rapide avec des avant/après. Puis on propose des seuils d'alertes (comme vu plus haut) de sorte qu'en peu de temps, les ensembles susceptibles d'être faux soient remontés et contrôlés.

Un bon fichier 3D pour moi, c'est un fichier qui s'ouvre sur un téléphone, dont le rendu permet à l'utilisateur de voir et de se projeter, et qui ne montre que ce que vous avez décidé de montrer.

C'est cette approche qu'on applique par exemple sur les configurateurs Provost, où les maquettes CAO sont converties en 3D web interactive pour que les commerciaux configurent les chariots en direct avec le client.

Voilà un aperçu des différentes problématiques rencontrées. Ça donne aussi un avant-goût de pourquoi la chose n'est pas "triviale", même avec un bon LLM :)

Si vous avez des fichiers STEP au bureau d'études et que vous vous demandez ce que vous pourriez en faire pour le commerce, le SAV ou le marketing, parlons-en.

Nos solutions peuvent être adaptées pour rester au plus proche de vos problématiques particulières.

Et s'il y a une étape que vous aimeriez que je creuse, dites-le-moi je préciserai.