Oprogramowanie do generowania skryptów

17

Szukam oprogramowania do generowania siatki

  • jest darmowy i open source,
  • zapewnia rozsądny interfejs skryptowy do specyfikacji domeny,
  • działa dla skomplikowanych geometrii,
  • potrafi generować siatki 2D i 3D,

Jakie mam opcje?

Nico Schlömer
źródło

Odpowiedzi:

10

Polecam spojrzeć na gmsh . Ma zarówno wejście tekstowe, jak i CAD, obsługujące siatki 2D i 3D, wyższych rzędów. Jest licencjonowany na licencji GPL, więc istnieją pewne ograniczenia dotyczące integracji z oprogramowaniem zamkniętym, ale poza tym jest całkowicie darmowy / open-source.

Godric Seer
źródło
Niestety, język skryptowy jest szalony. ;)
Nico Schlömer
W jaki sposób? Czy odnosisz się do danych wejściowych pliku tekstowego lub innego interfejsu?
Godric Seer
2
Użyłem gmsh tylko w kimś o prostej geometrii, ponieważ moje problemy prawie zawsze komplikują czynniki inne niż geometria. Chociaż pracowałem tylko nad tymi prostszymi geometriami, zdecydowanie uznałem gmsh za najbardziej intuicyjny i najłatwiejszy do nauczenia się. Nie będę się z tobą kłócił o próbę wykonania bardziej skomplikowanych procedur, ponieważ nie mam z nimi doświadczenia.
Godric Seer
5
Zawsze możesz pisać skrypty w dowolnym języku i po prostu tworzyć pliki w wyniku skryptu, które są następnie podawane jako dane wejściowe do gmsh.
Wolfgang Bangerth,
1
@WolfgangBangerth Właściwie rozpocząłem mały projekt zabawki w Pythonie na github.com/nschloe/python4gmsh .
Nico Schlömer,
4

Zwykle używam tetgen do 3D (licencja MIT na badania / niekomercyjne) i trójkąta do 2D (niestandardowa licencja bezpłatna na niekomercyjne). Aby je skryptować, piszesz plik wejściowy i wywołujesz wiersz poleceń.

aterrel
źródło
2
„Należy pamiętać, że TetGen jest bezpłatny do celów badawczych i niekomercyjnych. Na każde komercyjne wykorzystanie dostępna jest licencja komercyjna na żądanie”. - To nie jest licencja na darmowe oprogramowanie typu open source (zgodnie z definicją OSI lub FSF), nie mówiąc już o licencji MIT.
Jed Brown
Tak, właśnie przeczytałem pierwszy bit pliku licencji. Większość ludzi nie jest tak surowa w znaczeniu Free jak OSI lub FSF.
aterrel
Już miałem zadać podobne pytanie. Czy tetgen jest kompatybilny z FEniCS?
SEB
@aterrel Przeczytaj plik LICENCJA: „Oznacza to, że TetGen nie jest wolnym oprogramowaniem, ale do celów prywatnych, badawczych i edukacyjnych można go używać całkowicie bezpłatnie i bez dalszych uzgodnień”.
Jed Brown
1
Tak, @JedBrown, zgodziłem się z tobą i zredagowałem odpowiedź. Ale dla laików bezpłatne oznacza zwykle „nie muszę za to płacić”, a nie zalegalizować RMS. Chciałbym również argumentować, że GPL nie jest „darmowa”, ale prawdopodobnie nie jest to odpowiednia dyskusja dla tego forum.
aterrel
3

MeshPy może być stosowany do otrzymywania siatek trójkątnych i czworościennych. Zapewnia łatwy sposób generowania skryptów siatki.

MeshPy zapewnia interfejsy Python do Triangle i TetGen wspomnianych przez aterrel.

Subodh
źródło
1

Przekonałem się, że Salome jest bardzo elastyczny, ze znacznie lepszym środowiskiem niż gmsh. Ma znacznie bardziej profesjonalny charakter IMHO. Ponadto może generować siatki sześciościenne. Naprawdę warto spróbować!

FlatronL1917
źródło
Nie podoba mi się fakt, że nic w modelu geometrycznym nie jest edytowalne z poziomu interfejsu użytkownika ani konsoli Python. Zasadniczo, jeśli chcesz wprowadzić zmiany, musisz je usunąć i utworzyć ponownie. Dodaje to dużo kosztów ogólnych podczas projektowania
Lurscher
Dotyczy to na przykład importu geometrii podanej w pliku STEP. Ale jeśli się nie mylę, dotyczy to również innych programów wymienionych tutaj! Ponadto, jeśli masz plik HDF lub skrypt zrzutu Pythona, na pewno możesz zmienić wszystko.
FlatronL1917
1

OpenSCAD pasuje do wszystkich punktów z wyjątkiem tworzenia siatki woluminów. Opiera się na skryptach wejściowych i generuje siatki powierzchni STL.

Dohn Joe
źródło
1

W międzyczasie stworzyłem

Oba są dość dobrze przyjęte, więc sądzę, że są pomocne również dla innych.

Nico Schlömer
źródło
1

Dlaczego nie Blender ? Jest to potężne, bezpłatne i otwarte oprogramowanie z obsługą skryptów Python.

W Blenderze 2.79 musisz wybrać Scriptingjako Screen layout.

W lewym górnym rogu Text Editornaciśnij +, aby utworzyć nowy blok danych tekstowych; zacznij od, import bpya następnie wstaw polecenia python odnoszące się do każdej operacji, którą możesz wykonać z GUI, odczytując odpowiednie polecenie, przesuwając kursor myszy na element GUI.

Na załączonym zrzucie ekranu pokazano polecenia triangulacji koła, zaczynając od domyślnej sceny z sześcianem:

wprowadź opis zdjęcia tutaj

W ten sposób możesz używać Blendera w trybie skryptowym, bez GUI do eksportowania, na przykład pliku wyjściowego, uruchamiania skryptu python w terminalu:

blender --background --python myscript.py

Oto samouczek wideo na YouTube.

Twoje zdrowie

Riccardo Volpe
źródło
Blender może to zrobić? Nigdy nie wiedziałem. Jak miałbym triangulować na przykład koło?
Nico Schlömer,
@ChristianClason: Jak to nie jest odpowiedź? Odpowiada na pytanie. Możesz narzekać, że brakuje mu szczegółów, a nawet że jest źle, ale po to są głosy negatywne. To z pewnością nie jest komentarz.
Wrzlprmft
@Wrzlprmft Wielkie dzięki. Myślę, że to może być dobre, jeśli dostarczę Nico Schlömerowi szczegółowy samouczek wideo, pisząc tutaj niezbędny kod. Ale tymczasem mogę połączyć temat napisany przeze mnie wcześniej w języku włoskim, prosząc o pomoc w wyeksportowaniu siatki za pomocą skryptów Blendera (strona została zaktualizowana, dla której niektóre zasoby nie są bardziej dostępne): blender. it / forums / topic / difetto-texture-file-obj-da-wrl Oto przykład samouczka wideo na YouTube: youtube.com/watch?v=K0yb4sZ7B4g
Riccardo Volpe
Jeśli masz coś do dodania do pytania, edytuj je.
Wrzlprmft