Pour imprimer un scan ou calculer son volume, le maillage doit enfermer un volume. Il ne doit comporter aucune arête de frontière ouverte, aucune arête ou aucun sommet non manifold, ni aucune auto-intersection. Le tutoriel sur les maillages Open3D 0.19.0 définit un maillage étanche comme étant manifold sur les arêtes, manifold sur les sommets et sans auto-intersection. Dans son exemple de boîte ouverte, le maillage est manifold sur les arêtes lorsque les arêtes de frontière sont autorisées, mais il échoue au contrôle lorsque les arêtes de frontière ne sont pas autorisées, et il n’est pas étanche. La réussite de ces contrôles montre que le maillage est topologiquement fermé. Elle ne montre pas que le maillage correspond aux dimensions de l’objet physique.
L’orientation constitue une étape distincte. La fonction is_orientable d’Open3D indique si les triangles peuvent être orientés de sorte que toutes les normales pointent vers l’extérieur. La boîte ouverte du tutoriel est orientable mais non étanche, et ce contrôle ne modifie pas les normales actuelles (Open3D). Avant de calculer le volume, vérifiez ou définissez l’orientation du maillage fermé. Par exemple, CGAL documente orient_to_bound_a_volume, qui oriente les composantes connexes d’un maillage polygonal fermé de sorte qu’elles délimitent un volume (manuel CGAL Polygon Mesh Repair).
Étanche, manifold et auto-intersectant : les définitions logicielles
Chaque outil définit lui-même ces termes ; d’autres logiciels peuvent donc ne pas employer des définitions identiques. Le tableau résume la formulation du tutoriel sur les maillages Open3D 0.19.0.
| Contrôle | Description d’Open3D | Ce qu’il indique |
|---|---|---|
| Manifold sur les arêtes | Chaque arête borde un ou deux triangles ; le paramètre allow_boundary_edges définit si les arêtes de frontière sont acceptées | Indique si les arêtes sont partagées par un trop grand nombre de faces ; lorsque les frontières ne sont pas autorisées, indique aussi si des arêtes ouvertes subsistent |
| Manifold sur les sommets | L’étoile du sommet est manifold sur les arêtes et connexe par les arêtes | Indique si des faces sont jointes uniquement en un seul sommet plutôt que le long d’une arête (un échec de la condition manifold sur les sommets) |
| Auto-intersection | is_self_intersecting renvoie True « s’il existe dans le maillage un triangle qui intersecte un autre maillage » (formulation d’Open3D) | Indique si des surfaces se traversent |
| Étanche | Manifold sur les arêtes, manifold sur les sommets et sans auto-intersection ; contrôlé par is_watertight | Fermeture topologique uniquement, et non précision dimensionnelle |
| Orientable | Les triangles peuvent être orientés de sorte que toutes les normales pointent vers l’extérieur ; contrôlé par is_orientable | Indique si une orientation cohérente est possible ; ce contrôle ne définit ni les normales ni ne prouve la fermeture |
Pourquoi les maillages de scan échouent à ces contrôles
Les maillages issus de scans sont rarement parfaits dès leur arrivée. Le manuel CGAL 6.2.1 Polygon Mesh Repair indique que les modèles géométriques acquis au moyen d’outils imprécis ou de processus imparfaits présentent fréquemment des défauts tels que des orientations incohérentes, des dégénérescences, des lacunes, des données manquantes, des caractéristiques non manifold ou des auto-intersections. Il s’agit d’une affirmation générale, et non d’un diagnostic concernant un scanner ou un flux de travail particulier.
Inspecter les frontières avant toute modification
En termes de maillage, un trou est une boucle d’arêtes de bord. CGAL décrit les arêtes de bord comme des arêtes n’ayant qu’une seule face incidente non nulle (CGAL). La fonction is_edge_manifold d’Open3D possède un paramètre allow_boundary_edges. Exécuter le contrôle une fois avec les arêtes de frontière autorisées et une fois sans les autoriser permet de distinguer les arêtes non manifold des frontières ouvertes (Open3D).
Le texte du tutoriel Open3D indique qu’il affiche les arêtes non manifold en rouge, les arêtes de frontière en vert et les sommets non manifold sous forme de points verts (Open3D). Cette palette de couleurs appartient à l’exemple du tutoriel et ne constitue pas une norme générale. L’habitude qu’elle enseigne reste valable : examinez l’emplacement de chaque frontière avant toute modification.
Explication éditoriale : classez chaque frontière. Un trou traversant conçu, tel qu’un alésage traversant une équerre, peut posséder une surface environnante fermée ; ses parois font partie de cette surface. Une frontière non fermée est différente. Qualifier une frontière ouverte d’intentionnelle ne rend pas le maillage adapté à un calcul de volume fermé. Le maillage reste ouvert jusqu’à ce que la surface soit fermée.
Choix de réparation et effets possibles de chacun
| Réparation | Ce qu’elle traite | Ce qu’elle peut modifier ou ne pas parvenir à faire |
|---|---|---|
| Couture des bords (CGAL) | Arêtes et sommets de bord dupliqués | L’entrée doit représenter une surface manifold ; autrement, la couture peut échouer |
| Duplication de sommets non manifold (CGAL) | Sommets non manifold | Le maillage devient combinatoirement manifold, mais ne l’est toujours pas d’un point de vue géométrique |
| Comblement de trous (CGAL) | Boucles d’arêtes de bord | Les patchs pour des frontières complexes peuvent s’auto-intersecter ; le comblement peut être limité aux trous ne dépassant pas un diamètre ou un nombre d’arêtes choisis |
| Réparation automatique de PrusaSlicer | Modèles d’impression corrompus | Répare seulement jusqu’à un certain degré ; tous les modèles corrompus ne peuvent pas être réparés automatiquement |
| « Make solid » de Meshmixer | Répertorié par Prusa comme option de réparation externe | Décrit comme fonctionnant presque toujours, mais avec une perte de résolution |
Les lignes CGAL s’appuient sur le manuel CGAL 6.2.1 Polygon Mesh Repair. Les lignes PrusaSlicer et Meshmixer reprennent les caractérisations de la base de connaissances de Prusa Research. La page de Prusa est étiquetée pour d’anciennes familles de produits. Cet article ne confirme pas la disponibilité actuelle d’un service de réparation ou de Meshmixer.
L’exemple CGAL fixe sa limite de taille de trou en tant que diamètre sans nommer d’unité (CGAL). La limite suit les propres unités de coordonnées du maillage. Vérifiez si votre export utilise des millimètres, des mètres ou une autre unité avant de la définir.
Chaque réparation modifie les données que vous imprimerez ou mesurerez. Consignez l’opération exécutée, les paramètres employés et les régions qu’elle a modifiées, puis indiquez la réparation dans votre livrable.
Préserver les trous intentionnels et les parois minces
Les outils automatiques ne peuvent pas déduire l’intention de conception. Limiter le comblement aux petits trous (CGAL) protège mieux les grandes ouvertures conçues que de combler chaque trou, mais peut tout de même fermer un petit trou intentionnel. Prusa mentionne la perte de résolution comme inconvénient de « Make solid » de Meshmixer (Prusa Research). Considérez les trous intentionnels et les parois minces comme des critères d’acceptation. Après chaque réparation, comparez le résultat au scan non modifié et confirmez que ces caractéristiques subsistent. Les sources utilisées ici ne fournissent aucun seuil d’épaisseur de paroi ni aucune taille minimale de caractéristique propre à une imprimante ; prenez-les donc dans la documentation de votre imprimante et de votre matériau.
Flux de validation suggéré avant l’impression ou le calcul de volume
Les étapes suivantes constituent des conseils éditoriaux. 3D Mag ne les a ni réalisées ni rapportées comme un test.
- Conservez l’export de scan non modifié comme copie de référence.
- Dans votre outil, vérifiez l’état manifold sur les arêtes avec les arêtes de frontière autorisées et non autorisées, puis vérifiez l’état manifold sur les sommets, l’auto-intersection, l’étanchéité et l’orientabilité. Consignez le nom et la version de l’outil.
- Visualisez les arêtes de frontière et les éléments non manifold. Distinguez les trous traversants conçus, dont la surface environnante est fermée, des frontières non fermées, des lacunes d’acquisition et des artefacts.
- Choisissez la réparation la plus ciblée pour chaque problème : cousez les bords dupliqués, séparez les sommets non manifold ou comblez uniquement les trous ne dépassant pas une limite de taille documentée dans les unités du maillage.
- Relancez chaque contrôle après chaque réparation. CGAL indique qu’un patch comblant la frontière d’un trou complexe peut présenter des auto-intersections (CGAL).
- Comparez le maillage réparé à la copie de référence et confirmez que les trous intentionnels et les parois minces subsistent.
- Vérifiez ou définissez l’orientation des composantes fermées afin qu’elles délimitent le volume prévu, puis effectuez un nouveau contrôle avant de calculer le volume. Si le volume provient d’un maillage réparé, signalez-le.
- Consignez chaque réparation, ses paramètres et les régions affectées dans les notes du livrable.
Questions des lecteurs
Un maillage manifold est-il automatiquement étanche ? Non. Dans Open3D, la boîte ouverte du tutoriel est manifold sur les arêtes lorsque les arêtes de frontière sont autorisées, mais elle échoue au contrôle manifold sur les arêtes lorsque les arêtes de frontière ne sont pas autorisées. Elle est orientable, mais non étanche (Open3D).
Dois-je combler automatiquement chaque trou ? Non. Conservez les trous traversants conçus dont la surface environnante est fermée, comblez sélectivement les frontières non fermées, contrôlez de nouveau le maillage et indiquez chaque réparation.
La réussite d’un contrôle d’étanchéité signifie-t-elle que le maillage est dimensionnellement précis ? Non. Les contrôles topologiques testent la connectivité et les intersections. Ils ne mesurent pas la tolérance par rapport à l’objet physique.
Un slicer peut-il réparer mon scan ? Parfois, mais pas toujours. Prusa indique que PrusaSlicer ne répare les modèles que jusqu’à un certain degré et que tous les modèles corrompus ne peuvent pas être réparés automatiquement (Prusa Research).
Contexte associé : Comment numériser un objet pour l’impression 3D et Comprendre le fichier STL.
Sources
Cette explication repose sur des sources publiées citées ; 3D Mag n’a pas effectué de tests pratiques. Parrainage de l’éditeur.