Cet article vous sera peut-être utile si vous souhaitez comme moi partager une visualisation 3D de vos modélisations CAO exactes.

Quels sont les intérêts à mettre en ligne ses 3D ?

Ils peuvent être multiples, comme:

  • Présenter ses produits
  • Expliciter des détails techniques
  • Montrer son savoir faire
  • Partager sa passion
  • Montrer la structure interne d’un objet

Les deux grandes familles de 3D.

Dans le monde de la 3D, il y a les géométries mathématiques exactes (= la CAO) et les modèles polygonaux (= les maillages).

Le polygonal

Aujourd’hui il est beaucoup plus simple de partager un 3D en ligne si le modèle est polygonal comme cette chaise.

Pourquoi ?

Car de gros efforts ont été consentis ces dix dernières années pour faire en sorte que le web soit capable, nativement, de rendre à l’écran des 3D issus du monde du jeu vidéo.
Ainsi est apparu la technologie WebGL (un dérivé de l’OpenGL pour le Web) permettant, entre autres, d’afficher en temps réel un 3D texturé et de le manipuler. WebGL est une série de programmes en JavaScript maintenant embarqué dans l’HTML5 aux sein de la grande majorité de navigateurs internet.
Allant nettement plus loin, le WebGL est aussi capable de supporter de véritables petits jeux vidéos au sein de votre navigateur internet sans même avoir recours à l’installation du moindre plugin.

Les machines, que ce soit un PC très basique, une tablette ou un smartphone, sont aujourd’hui suffisamment puissantes pour vous donner l’accès à un 3D vivant.

La 3D exacte

Par opposition, le grand oublié dans cette avancée technologique est le 3D exact qui n’est absolument pas supporté par les navigateurs internet.
Pas question donc d’afficher, même en local, un model IGES ou STEP sur un navigateur internet.
Aux débuts du blog, j’illustrais mes articles avec un 3D manipulable issu de Catia.
Le format 3Dxml facilement obtenu par un “fichier/enregistrer sous” pouvait, via un plugin (le 3DXmlPlayer) installé sur le PC windows, afficher un magnifique 3D dans les articles du blog.
Ceci était fort bien mais quasiment personne ne voyait mes 3D car il fallait répondre à la double condition:
Windows + le plugin installé.
à Partir de 2016, cela s’est corsé puisque les principaux navigateurs internet ont interdit l’utilisation de plugin pour éviter les failles de sécurité. Seul “Internet Explorer” permet aujourd’hui de faire ce genre de chose.
Il me fallait donc trouver une solution à partir de 3D polygonal pour que mes 3D soient visibles et manipulables par le plus grand nombre.

Où héberger les 3D ?

Dans l’hypothèse ou je saurais produire les clones polygonaux de mes modèles exacts, où devrai-je les stocker pour ensuite les afficher ?

Cette question a plusieurs réponses.
Afficher un 3D polygonal grâce à l’OpenGL est faisable de différentes façons:

  • soit mettre les modèles (Obj) sur mon blog et faire un peu de programmation sur la base d’une bibliothèque comme Three.js puis intégrer le programme dans la page de mon blog.
  • soit mettre les modèles (Obj) sur mon blog et utiliser un plugin pour le blog (à base de Three.js) pour gagner en simplicité.
  • soit mettre les modèles chez un hébergeur et intégrer le 3D avec un petit “short code” directement dans un article de mon blog.

La première solution, bien que sans limite, s’est avérée trop lourde et chronophage.
La deuxième m’aurait économisé du temps mais les plugins gratuits sont à la base trop peu fournis pour présenter correctement. Il existe des plugins payants tout à fait convenables pour WordPress et même pour le net en général Verge3D (Je sais ça fait rire les Francophones) permettant de maitriser complètement la présentation d’un produit avec des animations et même de la configuration.

Les deux solutions dans lesquelles les 3D sont hébergés sur mon serveur sont aussi techniquement inadaptées à mes moyens car la bande passante vers mon blog n’est pas assez élevée et si 100 visiteurs viennent afficher en même temps le “lourd” fichier 3D qui y est hébergé, le site entier tombe en panne.

La troisième solution est donc la plus adaptée. Ici le 3D n’est pas sur mon blog mais chez l’hébergeur et c’est en streaming qu’il s’affiche sur mon blog. Ainsi le temps d’accès à mon blog (ouverture de la page sans chargement du 3D) n’est pas trop impacté par le nombre de visites. La bande passante vers le 3D est l’affaire de l’hébergeur.

Mettre mes 3D chez un hébergeur n’a pas été très naturel pour moi au départ car “Ce n’est pas chez moi”.
J’ai tout de même choisi de faire un compte chez Sketchfab. Il y en a d’autres comme P3D.in.

Quand on y réfléchit bien, mettre ses 3D à l’extérieur, ce n’est pas si grave que ça car:

  • il s’agit ici uniquement d’un 3D d’illustration
  • la politique de Sketchab n’est absolument pas contraignante même dans la version gratuite (celle que j’utilise).
  • On peut autoriser ou non le téléchargement du model (on peut même maintenant vendre ses 3D)
  • On profite des visites sur Sketchfab pour se faire connaitre.
image-2-sketch

Passer par le polygonal

Il semble que, pour partager un 3D exact avec le plus grand nombre, l’on doive aujourd’hui forcément passer par une conversion dans un format de type maillage (STL, OBJ, FBX,…).

Le site GrabCAD toutefois, avec sont visualiseur (basé lui aussi sur le WebGL), nous permet de voir, mesurer, faire des coupes et manipuler du 3D exact (CAO) hébergé chez eux. C’est vrai mais pas question ici de l’intégrer dans une page ou un article personnel, vous ne pourrez le visualiser que sur GrabCAD.
Ce n’est pas vraiment ce que je cherchais.

Grabcad

J’ai donc opté pour Sketchfab pour la facilité d’intégration dans le blog même si l’on ne peut pas comme dans GrabCAD faire des analyses dignes d’un logiciel de CAO.

Sketchfab

Partager un modèle CAO revient donc d’abord à le convertir en maillage.
L’idéal est le format OBJ mais malheureusement, Catia ne l’écrit pas directement.

On a toutefois deux solutions d’export de maillage depuis Catia:

  • Le format STL (comme pour les impressions 3D)
  • Le format Wrl (VRML) dédié à la visualisation des 3D sur le Net.

Dans les deux cas, le maillage est le même. La différence est que la STL ne porte rien de plus que la définition du maillage alors que le VRML peut porter des attributs comme la couleur des faces.

C’est la solution à préconiser si l’on souhaite ensuite peindre le 3D et appliquer des textures dans un logiciel comme “Substance Painter”, “3D coat” ou “Blender” par exemple.

image-3-sketch

A partir de ces logiciels nous pourrons directement faire un upload vers Sketchfab avec les textures.
C’est ce que j’avais fait pour cette lame de scie ou ce réservoir par exemple.

Export direct vers Sketchfab

Une autre solution est de générer un IGES et de l’uploader directement vers Sketchfab sans le convertir.
Sketchfab accepte de très nombreux format polygonaux mais par chance, accepte aussi un format Nurbs, l’IGES.
Dans un fichier IGES, nous aurons la géométrie surfacique exacte mais également les couleurs associées à chaque surface.
De son coté, Sketchfab convertira l’IGS en polygonal en conservant les couleurs juste après l’upload afin de l’afficher.

C’est cette solution que j’ai retenue pour présenter certains 3D du blog et ceux du SG38 sans utiliser de texture.

image-4-sketch

SG38, 130 pièces de Catia vers Sketchfab

Initialement basé sur l’utilisation du plugin 3DXml Player de Dassault système, j’ai choisi de moderniser la visualisation de la maquette numérique du SG38 en disposant un clone Polygonal des principales pièces et assemblages sur Sketchfab.

De cette façon, les internautes amoureux de l’aviation de collection ont la possibilité de visualiser chaque pièce sur n’importe quel appareil (PC, tablette, Smartphone) depuis n’importe quel endroit.

Voici une courte vidéo qui explique la démarche:

Vous pouvez accéder à la maquette sur cette page:

Maquette numérique du SG38

L’état d’avancement de la maquette du SG38

La démarche d’automatisation pour en arriver là

Faire la démarche pour une pièce n’a rien de compliqué mais cela prend un petit peu de temps.
Ici, plus question de faire le transfert à la main, il y a trop de pièces. Il m’a fallu avoir recours à des automatismes que j’ai codés en Python car cela me permet de piloter de l’extérieur Catia, Excel et de faire les multiples manipulations sur le serveur de Sketchfab.

Sans entrer dans les détails voici les grandes étapes de l’automatisation:

  • Création d’un fichier de nomenclature Excel sur lequel tout est basé.
image-sketch

On y trouve la référence des pièces et assemblags, la Ref (UID) du modèle sur Sketchfab (au départ elle n’existe pas), le chemin vers le fichier CAO, le type de document.

  • Pour chaque référence de pièce, un premier script python va fouiller dans le disque dur pour chercher les modèles CAO qui correspondent à la référence de la pièce. Si il la trouve alors le champ Chemin est renseigné.
  • Un deuxième script python va, référence par référence, si c’est une Catpart, l’ouvrir dans Catia puis compter le nombre de corps de pièce.
    Pour chaque corps de pièce, il applique une couleur spécifique en fonction du matériau qui se trouve sur le corps de pièce. Par exemple un blanc cassé pour le contreplaqué et un jaune orange pour le pin.
    Avant de fermer le modèle, on passe le fond en blanc, on oriente la pièce, on prend une photo que l’on enregistre dans un répertoire “Images SG38”, on fait une conversion en IGES dans un répertoire spécifique et enfin on sauvegarde la Catpart puis on la ferme.
  • Un troisième script va ensuite s’occuper de toutes les Catproduct.
    Chaque product est ouverte dans Catia puis transformée en Catpart. Une fois fait, le fond est passé en blanc pour prendre aussi une photo et l’enregistrer puis le modèle IGES est produit et stocké.
  • Un quatrième script produit une archive Zip de tous les modèles IGES du répertoire. Sketchfab accepte les archives zip et rar pour réduire le temps d’Upload.
  • Un cinquième script reprend le fichier Excel et, référence par référence, si elle n’a pas déja une UID sketchfab, fait l’Upload en précisant le nom de la pièce et d’autre paramètres comme la catégorie.
    L’UID sketchfab de la pièce en retour de l’upload est renseigné dans le fichier Excel.
  • Un sixième script reprend toutes les UID de la table Excel et place le modèle Skechfab dans une collection “SG38” de mon compte Sketchfab.
  • Un septième script reprend chaque UID de la table Excel et modifie quelques paramètres comme la profondeur de champs, la netteté des arêtes, la couleur du fond,…
    Ce dernier script n’est pas encore tout à fait opérationnel.
  • Un ultime script me permet de produire un fichier texte permettant l’affichage correct de l’arborescence qui se trouve sur la page de Planons.com. Ce sont des lignes de ce type où l’on retrouve une correspondance entre la référence de la pièce et l’UID de sketchfab. L’arbre est basé sur Dtree.js
image-1-sketch

Conclusion

De nos jours, partager un 3D sur le net est une excellente idée car cela rend les choses plus vivantes et plus compréhensibles.
Depuis 2010, les navigateurs internet savent s’appuyer sur la technologie WebGL s’appuyant elle-même sur l’OpenGL pour rendre visible et manipulable ce 3D sur n’importe quel appareil (PC, tablette, Smartphone).
Les modèles CAO exacts sont les grands exclus de cette avancée technologique mais il est possible de les transformer en modèles polygonaux afin de profiter de cette fonctionnalité.

Pour partager le 3D sur son blog, on peut héberger soit même le modèle 3D et l’afficher en utilisant, si besoin des plugins ou encore stocker les modèles chez un hébergeur comme je l’ai fait avec Sketchfab pour les afficher en streaming sur mon blog.

J’espère que cet article vous aura permis de mieux comprendre le monde merveilleux de la 3D au sein d’internet.
Si vous avez apprécié cette information. Si c’est le cas, partagez-le sur les réseaux sociaux : )

à bientôt

No responses yet

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.