Comment les fichiers 3D sont-ils générés ?

Ah ! Voilà une bonne question. Comment sont donc générés les modèles 3D publiés sur iteration3d.fr ?

build123d comme moteur principal

Sur iteration3d.fr le moteur principal de génération de fichiers 3D est basé sur l'outil build123d.

Il s'agit d'un programme python open-source de modélisation paramétrique. Ce framwork repose sur le noyau géométrique Open Cascade. build123d peut être considéré comme une évolution de CadQuery.

Qu'est-ce donc la modélisation paramétrique ?

Lorsqu'on utilise Fusion360 ou Sketchup on est habitué à dessiner un "sketch" à la souris ou au stylet puis à l'extruder afin d'obtenir un volume 3D. La façon de produire un volume avec la modélisation paramétrique est totalement différente. Plutôt que de "dessiner en 3D", on programme en 3D.

Openscad est un programme qui repose sur ce principe et constitue une première porte d'entrée accessible vers la modélisation paramétrique. Pour faire simple, chaque "forme" a sa déclaration. Sous Openscad l'instruction cube([10, 10, 10]) générera un cube (vous l'aurez compris) de 10x10x10. Facile, non ? Créez un autre cube, déplacez-le avec une autre instruction et petit à petit votre programme crée un nouvel objet 3D.

build123d repose sur le même principe, d'une manière plus complète et donc plus complexe, quoique. La documentation build123d propose d'ailleurs un tutoriel de transition depuis Openscad.

Python, l'atout de build123d

La principale force de build123d est de tirer pleinement partie du puissant langage de programmation Python. Nous nous arrêterons ici, l'objectif de cette page étant pédagogique, mais les développeurs décèleront le potentiel de ce language de codage appliquée à la modélisation paramétrique.

A titre d'exemple le code build123d suivant produira un pavé de 100 x 42 x 57 mm (Modèle #768) :


with BuildPart() as thisObject:
    Box(100, 42, 57)
            
pavé build123d 100x42x57
Exemple d'un pavé avec build123d

Il existe bien entendu tout un jeu d'instructions pour déplacer, fusionner, soustraire, etc. Il est ainsi possible de produire des volumes 3D très complexes et surtout de manière paramétrique, donc facilement modifiables en agissant sur les variables que vous aurez définies.

Si cela vous intrigue et que vous souhaitez approfondir la question, voici deux liens pour explorer davantage buil123d :

Et pour conclure, merci build123d, merci CadQuery, merci Python !