Logiciel de génération de maillage scripté

17

Je recherche un logiciel de génération de maillage qui

  • est gratuit et open source,
  • fournit une interface de script saine pour la spécification de domaine,
  • travaille pour des géométries complexes,
  • peut générer des maillages 2D et 3D,

Quelles options ai-je?

Nico Schlömer
la source

Réponses:

10

Je vous recommande de regarder gmsh . Il possède à la fois du texte et une entrée de type CAO, capable de maillages 2D et 3D d'ordre supérieur. Il est sous licence GPL, il y a donc quelques restrictions à son intégration dans un logiciel à code source fermé, mais il est par ailleurs entièrement gratuit / open-source.

Godric Seer
la source
Malheureusement, le langage de script est fou. ;)
Nico Schlömer
De quelle manière? Faites-vous référence aux entrées du fichier texte ou à une autre interface?
Godric Seer
2
Je n'ai utilisé gmsh que dans des géométries simples, car mes problèmes sont presque toujours compliqués par des facteurs autres que la géométrie. Bien que je n'ai travaillé que sur ces géométries plus simples, j'ai certainement trouvé que gmsh était le plus intuitif et le plus facile à apprendre. Je ne discuterai cependant pas avec vous d'essayer de faire des procédures plus compliquées car je n'ai pas d'expérience avec elles.
Godric Seer
5
Vous pouvez toujours écrire vos scripts dans la langue que vous aimez et créer simplement des fichiers à la suite de votre script qui sont ensuite alimentés en entrées dans gmsh.
Wolfgang Bangerth
1
@WolfgangBangerth J'ai en fait commencé un petit projet de jouet en Python sur github.com/nschloe/python4gmsh .
Nico Schlömer
4

J'utilise habituellement tetgen pour 3D (licence MIT pour la recherche / non commerciale) et triangle pour 2D (licence personnalisée gratuite pour non commercial). Pour les écrire, vous écrivez un fichier d'entrée et appelez la ligne de commande.

aterrel
la source
2
"Veuillez noter que TetGen est gratuit pour la recherche et les utilisations non commerciales. Pour toute utilisation commerciale, une licence commerciale est disponible sur demande." - Ce n'est pas une licence de logiciel libre ou open source (sous définition OSI ou FSF), encore moins une licence MIT.
Jed Brown
Oui, je viens de lire le premier bit du fichier de licence. La plupart des gens ne sont pas aussi stricts dans leur sens de Free que l'OSI ou la FSF.
aterrel
J'étais sur le point de poser une question similaire. Tetgen est-il compatible avec FEniCS?
seb
@aterrel Lisez le fichier de LICENCE: "Cela signifie que TetGen n'est pas un logiciel gratuit, mais à des fins privées, de recherche et d'enseignement, il peut être utilisé sans aucun frais et sans autres dispositions."
Jed Brown
1
Oui, @JedBrown, je suis d'accord avec vous et j'ai modifié la réponse. Mais pour les profanes, la gratuité signifie généralement «je n'ai pas à payer pour cela», pas le RMS légaliser. Je dirais également que la GPL n'est pas "gratuite" mais ce n'est probablement pas une discussion appropriée pour ce forum.
aterrel
3

MeshPy peut être utilisé pour obtenir des maillages triangulaires et tétraédriques. Il fournit un moyen simple de génération de maillage scripté.

MeshPy fournit des interfaces Python à Triangle et TetGen mentionnées par aterrel.

Subodh
la source
1

J'ai trouvé que Salomé était très flexible, avec un environnement bien meilleur que gmsh. Il a une sensation beaucoup plus professionnelle à mon humble avis. De plus, il peut générer également des maillages hexaédriques. Cela vaut vraiment la peine d'essayer!

FlatronL1917
la source
Je n'aime pas le fait que rien dans le modèle de géométrie ne soit modifiable à partir de l'interface utilisateur ou de la console Python. Fondamentalement, si vous souhaitez apporter des modifications, vous devez supprimer et recréer. Cela ajoute beaucoup de frais généraux lors de la conception
lurscher
Cela est vrai si vous importez une géométrie qui vous est donnée dans un fichier STEP par exemple. Mais si je ne me trompe pas, c'est également vrai pour les autres programmes mentionnés ici! De plus, si vous avez le fichier HDF ou le script de vidage python, vous pouvez sûrement changer quoi que ce soit.
FlatronL1917
1

OpenSCAD s'adapte à tous les points sauf le maillage de volume. Il est basé sur des scripts d'entrée et génère des maillages de surface STL.

Dohn Joe
la source
1

En attendant, j'ai créé

  • pygmsh comme frontal Python pour gmsh et
  • pygalmesh comme frontal Python pour les capacités de maillage 3D de CGAL.

Les deux sont assez bien reçus, donc je suppose qu'ils sont également utiles aux autres.

Nico Schlömer
la source
1

Pourquoi pas Blender ? Il s'agit d'un logiciel puissant, gratuit et open-source avec prise en charge des scripts python.

Dans Blender 2.79, vous devez choisir Scriptingcomme Screen layout.

En haut à gauche, Text Editorappuyez sur + pour créer un nouveau bloc de données texte; démarrez import bpy-le puis insérez les commandes python relatives à chaque opération que vous pouvez effectuer depuis l'interface graphique, en lisant la commande relative en plaçant votre souris sur l'élément GUI.

Dans la capture d'écran ci-jointe sont affichées les commandes pour trianguler un cercle, à partir de la scène par défaut avec un cube:

entrez la description de l'image ici

De cette façon, vous pouvez utiliser Blender en mode script, sans son interface graphique pour exporter, par exemple, un fichier de sortie, exécutant votre script python dans un terminal:

blender --background --python myscript.py

Voici un tutoriel vidéo sur YouTube.

À votre santé

Riccardo Volpe
la source
Blender peut faire ça? Jamais su. Comment pourrais-je trianguler, par exemple, un cercle?
Nico Schlömer
@ChristianClason: Comment n'est-ce pas une réponse? Il répond à la question. Vous pouvez vous plaindre qu'il manque de détails ou même qu'il soit faux, mais c'est à cela que servent les downvotes. Ce n'est certainement pas un commentaire.
Wrzlprmft
@Wrzlprmft Merci beaucoup. Je pense que cela pourrait être bien si je fournissais à Nico Schlömer un tutoriel vidéo détaillé, en écrivant le code essentiel ici. Mais en attendant, je peux relier un sujet écrit par moi-même il y a quelques temps en langue italienne, demandant une aide pour exporter un maillage en utilisant les scripts de Blender (ce site a été mis à jour, pour lequel certaines ressources ne sont plus disponibles): blender. it / forums / topic / difetto-texture-file-obj-da-wrl Voici un exemple de tutoriel vidéo sur YouTube: youtube.com/watch?v=K0yb4sZ7B4g
Riccardo Volpe
Si vous avez quelque chose à ajouter à votre question, veuillez le modifier .
Wrzlprmft