Software di generazione di maglie con script


17

Sto cercando un software di generazione mesh che

  • è gratuito e open source,
  • fornisce un'interfaccia di scripting sana per le specifiche del dominio,
  • lavora per geometrie complesse,
  • può generare mesh 2D e 3D,

Quali opzioni ho?

Risposte:


10

Consiglierei di dare un'occhiata a gmsh . Ha sia input testuali che CAD, in grado di mesh 2D e 3D di ordine superiore. È concesso in licenza in base alla GPL, quindi ci sono alcune restrizioni sull'integrazione in software chiuso, ma per il resto è completamente gratuito / open-source.


Sfortunatamente, il linguaggio di scripting è pazzo. ;)
Nico Schlömer il

In quale modo? Ti riferisci agli input del file di testo o a qualche altra interfaccia?
Godric Seer,

2
Ho usato gmsh solo in alcune geometrie semplici poiché i miei problemi sono quasi sempre complicati da fattori diversi dalla geometria. Mentre ho lavorato solo su queste geometrie più semplici, ho sicuramente trovato gmsh come il più intuitivo e più facile da imparare. Non discuterò con te per quanto riguarda il tentativo di eseguire procedure più complicate poiché non ho esperienza con esse.
Godric Seer,

5
Puoi sempre scrivere i tuoi script nella lingua che preferisci e creare semplicemente dei file come risultato dei tuoi script che vengono poi inviati come input a gmsh.
Wolfgang Bangerth,

1
@WolfgangBangerth In realtà ho avviato un piccolo progetto giocattolo in Python su github.com/nschloe/python4gmsh .
Nico Schlömer,

4

Di solito uso tetgen per 3D (licenza MIT per ricerca / non commerciale) e triangolo per 2D (licenza personalizzata gratuita per non commerciale). Per scriverli, scrivi un file di input e chiama la riga di comando.


2
"Si prega di notare che TetGen è gratuito per scopi di ricerca e non commerciali. Per qualsiasi utilizzo commerciale, una licenza commerciale è disponibile su richiesta." - Questa non è una licenza software gratuita o open source (secondo la definizione OSI o FSF), per non parlare di una licenza MIT.
Jed Brown,

Sì, ho appena letto il primo bit del file di licenza. La maggior parte delle persone non è così severa nel significato di Free come OSI o FSF.
aterrel,

Stavo per fare una domanda simile. Tetgen è compatibile con FEniCS?
SEB

@aterrel Leggi il file LICENSE: "Ciò significa che TetGen non è un software gratuito, ma per scopi privati, di ricerca e didattici può essere utilizzato senza alcun costo e senza ulteriori accordi."
Jed Brown,

1
Sì, @JedBrown, ho concordato con te e modificato la risposta. Ma per i non addetti ai lavori, di solito significa "non devo pagare per questo", non legalizzare l'RMS. Direi anche che GPL non è "libero" ma che probabilmente non è una discussione appropriata per questo forum.
aterrel,

3

MeshPy può essere utilizzato per ottenere mesh triangolari e tetraedriche. Fornisce un mezzo semplice per la generazione di mesh con script.

MeshPy fornisce interfacce Python a Triangle e TetGen menzionate da aterrel.


1

Ho trovato Salome molto flessibile, con un ambiente molto migliore di gmsh. Ha un aspetto molto più professionale IMHO. Inoltre, può generare anche maglie esaedrici. Vale davvero la pena provare!


Non mi piace il fatto che nulla nel modello geometrico sia modificabile dalla UI o dalla console Python. Fondamentalmente se si desidera apportare modifiche è necessario eliminare e ricreare. Ciò aggiunge un sacco di spese generali durante la progettazione
Lurscher,

Ciò vale se, ad esempio, si importa una geometria fornita in un file STEP. Ma se non sbaglio, questo vale anche per gli altri programmi citati qui! Inoltre, se hai il file HDF o lo script dump python, puoi sicuramente cambiare qualsiasi cosa.
Flatron

1

OpenSCAD si adatta a tutti i punti tranne la mesh del volume. Si basa su script di input e genera mesh di superficie STL.


1

Nel frattempo, ho creato

  • pigmeo come front-end Python per gmsh e
  • pygalmesh come front-end Python per le funzionalità di mesh 3D di CGAL.

Entrambi sono abbastanza ben accolti, quindi immagino che siano utili anche agli altri.


1

Perché non Blender ? È un software potente, gratuito e open source con supporto per gli script in Python.

In Blender 2.79 devi scegliere Scriptingcome Screen layout.

In alto a sinistra Text Editorpremere + per creare un nuovo blocco di dati di testo; avviarlo import bpye quindi inserire i comandi python relativi a ciascuna operazione che è possibile eseguire dalla GUI, leggendo il relativo comando posizionando il mouse sull'elemento GUI.

Nella schermata allegata sono mostrati i comandi per triangolare un cerchio, a partire dalla scena predefinita con un cubo:

inserisci qui la descrizione dell'immagine

In questo modo, puoi usare Blender in modalità scripting, senza la sua GUI per esportare, ad esempio, un file di output, eseguendo il tuo script Python in un terminale:

blender --background --python myscript.py

Ecco un videotutorial su YouTube.

Saluti


Blender può farlo? Mai saputo. Come farei triangolare, ad esempio, un cerchio?
Nico Schlömer,

@ChristianClason: in che modo questa non è una risposta? Affronta la domanda. Puoi lamentarti che manca di dettagli o addirittura che è sbagliato, ma è a questo che servono i voti negativi. Certamente non è un commento.
Wrzlprmft

@Wrzlprmft Grazie mille. Penso che potrebbe essere utile se fornirò a Nico Schlömer un videotutorial dettagliato, scrivendo qui il codice essenziale. Ma nel frattempo, posso collegare un argomento scritto da me stesso qualche tempo fa in lingua italiana, chiedendo aiuto per esportare una mesh usando gli script di Blender (quel sito è stato aggiornato, per il quale alcune risorse non sono più disponibili): blender. it / forum / topic / difetto-texture-file-obj-da-wrl Ecco un esempio di videotutorial su YouTube: youtube.com/watch?v=K0yb4sZ7B4g
Riccardo Volpe

Se hai qualcosa da aggiungere alla tua domanda, ti preghiamo di modificarlo .
Wrzlprmft
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.