Mesh Generation/fr

Les maillages sont un moyen de modéliser des formes 3D sous la forme d'un ensemble de faces de base, délimitées par des arêtes et des points. En général, il ne s'agit pas de la représentation standard des formes dans les logiciels de CAO 3D, car elle ne permet pas de modéliser des géométries exactes sous la forme de courbes et de surfaces paramétriques (ces représentations sont appelées « représentation par les limites » ou B-rep). Néanmoins, leur simplicité (seuls des points, des segments de ligne et des faces simples sont utilisés pour représenter une forme) a fait des maillages la représentation de choix pour de nombreuses applications telles que le rendu, le découpage pour l'impression 3D, etc. Nous avons délibérément omis de mentionner l'utilisation des maillages pour effectuer des analyses FEM (méthode des éléments finis), car dans ce cas, les maillages ne sont plus utilisés pour leur simplicité, mais pour leur capacité à transporter et à propager des informations à travers les corps.

La plupart des logiciels de modélisation paramétrique de CAO offrent des possibilités de génération et de manipulation de maillages, et FreeCAD ne fait pas exception. FreeCAD héberge un atelier dédié au travail avec les maillages qui offre de nombreux outils et fonctions utiles. Nous nous concentrerons sur celui qui permet de générer des maillages à partir de formes FreeCAD : Mesh Créer un maillage.

Cet outil permet d'utiliser quatre algorithmes de maillage différents, à savoir : Standard, GMSH, NetGen et Mefisto. Nous nous concentrerons sur le premier, car les trois autres sont dédiés aux maillages d'analyse FEM et ne sont pas développés en interne.

L'algorithme standard

L'objectif de cette page est de fournir un aperçu du fonctionnement et de la configuration du maillage d'un point de vue général, sans entrer dans les détails des opérations complexes qui se produisent lors de la génération des maillages. L'algorithme standard correspond à l'algorithme de maillage fourni par OCCT, le noyau de modélisation géométrique de FreeCAD. Cet algorithme génère des maillages de surface non structurés et fonctionne essentiellement en deux étapes :

  1. Les arêtes des formes sont d'abord discrétisées, ce qui signifie que les courbes sont transformées en polylignes (les contours fermés deviennent ainsi des polygones).
  2. Ensuite, les surfaces sont tessellées, c'est-à-dire qu'elles sont recouvertes de formes géométriques, des triangles dans notre cas.

La génération d'un maillage à partir d'une forme est une opération complexe qui implique des actions et des paramètres cachés pouvant entraîner des comportements difficiles à comprendre, notamment en ce qui concerne le réglage des trois paramètres auxquels nous avons accès. Examinons leur influence à l'aide d'exemples pratiques afin de mieux comprendre comment définir de bons réglages et, à terme, générer de bons maillages.

Déviation angulaire

La déviation angulaire est principalement utilisée lors de l'étape de discrétisation des arêtes. Ce paramètre permet d'assurer la fluidité des polylignes qui représentent les courbes en empêchant la formation d'angles aigus entre des segments de ligne consécutifs. La discrétisation des arêtes a un impact important sur le maillage global des formes, car les points (à la transition entre les segments de ligne) générés lors de cette étape serviront de nœuds de base pour la construction des triangles qui seront ensuite utilisés pour tesseller les faces délimitées par les arêtes.

Déviation angulaire et déviation linéaire telles que décrites dans la documentation OCCT
Déviation angulaire et déviation linéaire telles que décrites dans la documentation OCCT

La valeur de ce paramètre est relative à la taille de la forme à mailler : quelle que soit la taille de la forme, une valeur d'angle élevée peut entraîner des transitions abruptes entre les segments de ligne consécutifs, tandis qu'une valeur faible garantira des transitions plus fluides.

Pour illustrer le comportement de l'algorithme standard en matière de déviation angulaire, modifions ce paramètre tout en maillant une surface circulaire simple. Le paramètre de déviation de surface jouant également un rôle dans le processus, il a été réglé sur une valeur suffisamment élevée pour éviter toute interférence avec notre démonstration : le diamètre de notre cercle est de 50 mm, tout comme la déviation de surface.

En haut : face circulaire originale de la B-rep(bleue) délimitée par un cercle extérieur (rouge)

En bas : détail en haut à gauche

Écart de surface : 50 mm

Déviation angulaire : 90°

Déviation de surface : 50 mm

Déviation angulaire : 30°

Déviation de surface : 50 mm

Déviation angulaire : 5°

La réduction de la déviation angulaire a une influence significative sur l'aspect du maillage, limitant les angles vifs lors de la représentation du contour de la face. Si elle permet d'augmenter la fidélité du maillage par rapport à la forme d'origine, elle ne fournit pas de valeur absolue pour la déviation maximale tolérée entre les deux.

Déviation de surface

Pour ce faire, l'option déviation de surface est plus appropriée. Elle permet de spécifier la déviation maximale que le maillage peut présenter par rapport à la forme d'origine. Revenons à notre surface circulaire pour comprendre son influence.

Déviation de surface : 50 mm

Déviation angulaire : 90°

Déviation de surface : 10 mm

Déviation angulaire : 90°

Déviation de surface : 1 mm

Déviation angulaire : 90°

Déviation de surface : 0.1 mm

Déviation angulaire : 90°

L'influence de la déviation de surface est clairement visible et facilement compréhensible dans notre exemple, étant donné sa nature absolue. Elle est particulièrement visible près du bord : les valeurs élevées (50 mm - 10 mm) n'ont aucun impact, tandis que de nombreux triangles sont ajoutés pour garantir la tolérance de 0,1 mm.

Influence combinée des déviations angulaire et de surface

La diminution de la déviation angulaire ou de la déviation de surface a un impact similaire sur le maillage. Cette redondance peut entraîner un comportement indésirable lorsque de mauvaises combinaisons de paramètres sont utilisées : l'exemple suivant montre la génération de triangles inutiles et de forme étrange lorsque la déviation angulaire et la déviation de surface sont toutes deux réglées sur des valeurs faibles.

Déviation de surface : 10 mm

Déviation angulaire : 30°

Déviation de surface : 3 mm

Déviation angulaire : 7°

Déviation de surface : 1 mm

Déviation angulaire : 5°

Déviation de surface : 0.1 mm

Déviation angulaire : 1°

Première synthèse

Les exemples ci-dessus montrent qu'il est possible, en utilisant la déviation angulaire et la déviation de surface, d'obtenir des maillages dans les limites de tolérance requises par la forme d'origine et d'obtenir la fluidité souhaitée lors de la représentation des courbes. Ils montrent également l'importance d'un réglage adéquat et que le simple fait de définir des valeurs faibles ne permet pas nécessairement d'obtenir les meilleurs maillages.

Le diable est dans les détails

Bien que notre forme circulaire ait permis de bien comprendre l'influence des paramètres sur la génération de maillages, elle est malheureusement trop simpliste par rapport aux défis réels du maillage. Un cas courant est la présence de détails fins sur des formes plus grandes. Ajoutons un détail à notre forme circulaire : une arête circulaire plus petite en haut.

Face circulaire du B-rep (bleue) avec un détail circulaire en haut
Face circulaire du B-rep (bleue) avec un détail circulaire en haut
Vue du détail circulaire
Vue du détail circulaire

Déviation angulaire /

Déviation de surface

90° 30°
5 mm
Nombre de triangles 10 32 149
1 mm
Nombre de triangles 18 34 188
0.1mm
Nombre de triangles 53 59 207

Déviation angulaire /

Déviation de surface

90° 30°
5 mm
Nombre de triangles 10 32 149
1 mm
Nombre de triangles 18 34 188
0.1mm
Nombre de triangles 53 59 207

La réduction de la déviation angulaire entraîne une augmentation rapide de la fidélité entre le maillage et la forme d'origine. Cela se fait au détriment d'une augmentation rapide du nombre de triangles. D'autre part, la réduction de la déviation de surface permet de générer des maillages qui répondent juste à la tolérance requise, avec autant de triangles que nécessaire, mais la fluidité de la représentation des courbes peut être grossière.

Une fois encore, on peut noter la redondance entre les influences respectives de la déviation angulaire et de la déviation de surface, et constater qu'une certaine convergence est obtenue en termes de fidélité du maillage, même lorsque davantage de triangles sont ajoutés, en particulier lorsque la déviation angulaire est réduite. Cela souligne une fois de plus qu'il vaut mieux trouver un bon réglage plutôt que de simplement choisir une valeur de paramètre faible.

Exemple de paramètres cachés

Des valeurs élevées de déviations de surface et angulaires n'entraînent pas la suppression des détails au sommet de notre forme lors de la modélisation du maillage. Il s'agit d'un exemple de l'effet des opérations et paramètres cachés dans les algorithmes de maillage : certains types d'arêtes, notamment les arêtes circulaires, ont une limite inférieure de points pour leur représentation en polyligne. Dans ce cas, le minimum de 4 points donnera lieu à au moins trois segments dans la polyligne. Cela peut être mis en évidence en maillant une forme similaire, mais au lieu d'une courbe circulaire, une spline a été utilisée pour modéliser le détail au sommet. Le nombre minimal de points ne s'applique alors pas, et le détail est totalement inhibé lorsque des valeurs élevées de déviation de surface sont utilisées.

Nature géométrique du détail Forme Maillage Vue rapprochée
Arc de cercle
Courbe spline

Deuxième synthèse

Ces exemples, qui incluent des détails dans des formes plus grandes, très courants dans la vie réelle, montrent que l'adaptation de la précision de discrétisation à la taille des entités à mailler peut permettre d'obtenir un meilleur compromis entre la précision et la complexité du maillage. Cela peut même parfois s'avérer obligatoire, par exemple lors d'opérations de maillage automatisées, où l'utilisateur ne peut pas intervenir pour définir la déviation de surface en fonction de la taille de la forme.

Déviation relative de surface

Une solution consiste à définir la déviation de surface en fonction de la longueur des arêtes, ce qui est possible grâce au paramètre « déviation relative de surface ». Le principe consiste à mettre à l'échelle la tolérance acceptable entre le maillage et la forme d'origine en fonction de la taille de la forme. Par exemple, une valeur de 0.1 entraînera une déviation de surface de 10 cm sur une arête de 1 m et une déviation de surface de 1 m sur une arête de 10 m. Examinons les résultats obtenus sur notre forme test.

Paramètres de la déviation relative de surface
Paramètres de la déviation relative de surface

Déviation de surface (relative)

& Déviation angulaire

Maillage Vue proche Vue plus proche
0.1 - 30°
0.001 - 30°

L'évolution du paramètre de déviation de surface (qui est désormais un paramètre relatif, donc l'unité « mm » lors de son réglage dans FreeCAD peut prêter à confusion) s'applique de la même manière à la discrétisation des arêtes longues et courtes. L'utilisation de la déviation de surface relative a pour effet secondaire de ne pas garantir une déviation maximale absolue entre le maillage et la forme d'origine.

Tessellation de surface

Nos premières réflexions se sont concentrées sur les formes et les contours, car ce sont les premières entités à être discrétisées et elles ont une influence significative sur le maillage des faces. Approfondissons un peu plus la tessellation de surface à l'aide de l'algorithme standard. Celui-ci applique la triangulation de Delaunay, à l'aide de l'algorithme de Watson. La triangulation de Delaunay (du nom d'un mathématicien russe) est un moyen de générer des points sur une surface de manière à garantir que les triangles formés à partir de ces points ne se croisent pas.

De plus, il optimise la génération des triangles afin que les angles ne soient pas trop petits, ce qui leur donne une forme harmonieuse. Cela dit, comme souvent, la mise en œuvre pratique pour résoudre des problèmes concrets est complexe et présente de nombreux défis. Les algorithmes de maillage OCCT ont été conçus pour mailler des formes générées avec le modeleur B-rep, le plus souvent des conceptions mécaniques et techniques, qui étaient les principaux cas d'utilisation pour lesquels le modeleur géométrique avait été initialement développé.

Ainsi, des routines de tessellation de surface dédiées sont utilisées pour les types de surface les plus courants dans la conception mécanique, par exemple les surfaces planes, cylindriques, coniques, sphériques, etc., afin de garantir des performances et une tessellation optimales. Si les paramètres affectent tous les types de surface, examinons leur influence sur la tessellation des surfaces B-spline afin d'éviter les biais introduits par les stratégies de tessellation prédéterminées.

[[File:3D_orig_vignette.png none|alt=Une forme B-rep avec des surfaces B-spline|Une forme B-rep avec des surfaces B-spline]]

Déviation angulaire /

Déviation de surface

90° 30°
5mm
Nombre de triangles 196 666 9730
1mm
Nombre de triangles 376 790 26128
0.1mm
Nombre de triangles 3002 3262 36366

Les conclusions sont conformes à ce que nous avons observé avec les faces : la déviation angulaire a un impact significatif sur l'aspect du maillage, tandis que la déviation de surface garantit un niveau de fidélité au coût le plus bas en termes de complexité du maillage, mais génère des facettes visibles. Il faut donc trouver un compromis entre la qualité du maillage en termes de fidélité et de lissage, et la taille du maillage en termes de nombre de triangles.

Si vous souhaitez connaître l'impact de l'augmentation du nombre de triangles, vous pouvez vous en faire une idée en jouant avec le paramètre « Déflexion angulaire minimale » de votre logiciel préféré (Édition → Préférences → Part/PartDesign → Vue des formes), qui définit la fidélité des maillages utilisés pour la visualisation. Une valeur trop faible entraînera des temps de chargement plus longs et une manipulation saccadée des formes complexes.

Une autre façon de percevoir l'impact des paramètres consiste à transformer nos maillages en objets réels grâce à l'impression 3D. L'impression à la résine (SLA) avec une hauteur de couche de 0,05 mm permettra de révéler certains détails.

Déviation de surface &

Déviation angulaire

0.1mm - 90° 5mm - 5° 0.1mm - 5°
Image d'une surface
Image d'une surface
Nombre de triangles 3002 9730 36366

Ces images en gros plan révèlent que se concentrer uniquement sur la déviation de surface, même à des valeurs faibles, peut entraîner des artefacts visibles à la surface de la pièce (le niveau de zoom étant élevé, les impacts du maillage ne doivent pas être confondus avec les couches d'impression, qui sont également visibles sous forme d'isolignes sur les images). Il est difficile de différencier le maillage à 9730 triangles de celui à 36366 triangles en termes de qualité visuelle. Dans ce cas, si tel est le critère, le maillage plus léger (487 ko contre 1,8 Mo) devrait être préféré, car l'autre garantit que la tolérance de 0,1 mm est respectée partout dans la pièce.

Dernière synthèse

En résumé, les algorithmes de maillage sont complexes par nature, et la déviation angulaire et la déviation de surface fonctionnent ensemble d'une manière complexe qui n'est pas facile à comprendre. On pourrait être tenté de réduire ces paramètres afin que le maillage s'adapte parfaitement à la forme B-rep d'origine. Cela conduirait à des maillages composés de nombreux triangles, qui prendraient du temps à générer, à traiter dans d'autres applications et produiraient des fichiers lourds.

Flux de travail de configuration des paramètres

D'après ce que nous avons observé, un flux de travail typique pour définir les paramètres consiste à commencer par définir la déviation de surface en fonction de la fidélité requise entre le maillage et la forme d'origine, le cas échéant. Ensuite, le paramètre de déviation angulaire peut être utilisé pour ajuster la fluidité des surfaces discrétisées au niveau requis, par exemple pour l'aspect visuel ou tactile. Une autre approche consiste à utiliser une déviation angulaire suffisamment faible pour obtenir la douceur souhaitée, sans garantie de respecter une tolérance géométrique absolue, et souvent au prix de maillages complexes. Dans les cas où aucune tolérance de fidélité n'est nécessaire, une autre option consiste à utiliser la déviation relative de la surface, qui adaptera la taille des éléments du maillage à la forme d'origine et à la taille des détails.

Définir votre configuration de maillage comme valeur par défaut dans FreeCAD

Comme expliqué dans la section Préférences du wiki des fonctions, vous pouvez définir vos valeurs préférées pour la déviation de surface, la déviation angulaire et la déviation de surface relative par défaut, afin de pouvoir mailler la plupart de vos formes sans même y penser !

Paramètres par défaut pour les paramètres de l'algorithme standard
Paramètres par défaut pour les paramètres de l'algorithme standard

Exporter vos maillages

Une fois les maillages générés avec les paramètres adéquats, vous pouvez les exporter à l'aide de Mesh Exporter vers un fichier au format de votre choix parmi les nombreuses options proposées par FreeCAD !