Програмне забезпечення для створення мережевого сценарію


17

Я шукаю програмне забезпечення для створення сітки, яке

  • є безкоштовним та відкритим кодом,
  • забезпечує розумний інтерфейс сценаріїв для специфікації домену,
  • працює для складної геометрії,
  • може генерувати 2D та 3D-сітки,

Які у мене варіанти?

Відповіді:


10

Я б рекомендував вам поглянути на gmsh . Він має як текстовий, так і CAD-подібний вхід, здатний до 2D та 3D-мереж вищого порядку. Він ліцензований відповідно до GPL, тому існують деякі обмеження щодо його інтеграції у програмне забезпечення із закритим кодом, але в іншому випадку він є повністю безкоштовним / відкритим.


На жаль, мова сценаріїв божевільна. ;)
Ніко Шльомер

Яким чином? Ви посилаєтесь на введення текстового файлу чи інший інтерфейс?
Годрік Провид

2
Я використовував лише gmsh у простих геометріях, оскільки мої проблеми майже завжди ускладнюються іншими чинниками, ніж геометрія. Хоча я працював лише над цими простішими геометріями, я, безумовно, виявив, що gmsh є найінтуїтивнішим і найлегшим для вивчення. Я не буду сперечатися з вами, хоч про спробу зробити більш складні процедури, оскільки я не маю з ними досвіду.
Годрік Провид

5
Ви завжди можете писати свої сценарії будь-якою мовою і просто створювати файли в результаті сценарію, які потім подаються як вхідні дані до gmsh.
Вольфганг Бангерт

1
@WolfgangBangerth Я фактично розпочав маленький іграшковий проект у Python на github.com/nschloe/python4gmsh .
Ніко Шльомер

4

Зазвичай я використовую тетген для 3D (ліцензія MIT на дослідження / некомерційний) та трикутник для 2D (користувацька ліцензія, безкоштовна для некомерційних). Щоб їх скриптувати, ви пишете вхідний файл і викликаєте командний рядок.


2
"Зверніть увагу, що TetGen є безкоштовним для досліджень та некомерційних цілей. Для будь-якого комерційного використання комерційна ліцензія надається за запитом." - Це не ліцензія на програмне забезпечення з вільним чи відкритим кодом (за визначенням OSI або FSF), не кажучи вже про ліцензію MIT.
Джед Браун

Так, я просто прочитав перший біт ліцензійного файлу. Більшість людей не такі суворі у своєму значенні Free, як OSI або FSF.
aterrel

Я збирався задати подібне питання. Чи сумісний тетеген з FEniCS?
seb

@aterrel Прочитайте файл ЛІЦЕНЗІЇ: "Це означає, що TetGen не є безкоштовним програмним забезпеченням, але для приватних, наукових та освітніх цілей його можна використовувати абсолютно безкоштовно і без додаткових домовленостей."
Джед Браун

1
Так, @JedBrown, я погодився з вами і відредагував відповідь. Але для мирян безкоштовний звичайно означає "мені не треба за це платити", а не легалізацію RMS. Я також зауважу, що GPL не є "безкоштовним", але це, мабуть, не є відповідною дискусією для цього форуму.
aterrel

3

MeshPy можна використовувати для отримання трикутних і чотиригранних сіток. Він забезпечує простий засіб створення сценаріїв сітки.

MeshPy надає інтерфейси Python для трикутника та TetGen, згаданих aterrel.


1

Я виявив, що Salome дуже гнучка, із значно кращим середовищем, ніж gmsh. Він має набагато більш професійне відчуття IMHO. Більше того, він може генерувати також шестигранні сітки. Справді варто спробувати!


Мені не подобається, що в геометричній моделі нічого не можна редагувати ні з інтерфейсу користувача, ні з консолі Python. Якщо ви хочете внести зміни, потрібно видалити та відтворити їх. Це додає багато накладних витрат під час дизайну
lurscher

Це справедливо, якщо, наприклад, ви імпортуєте задану вам геометрію у файл STEP. Але якщо я не помиляюся, це стосується і інших згаданих тут програм! Більше того, якщо у вас є файл HDF або сценарій скидання python, ви, безумовно, можете щось змінити.
FlatronL1917

1

OpenSCAD підходить для всіх точок, окрім об'ємної мережі. Він заснований на вхідних сценаріях і генерує поверхневі сітки STL.


1

Тим часом я створив

  • pygmsh як передній кінець Python для gmsh і
  • pygalmesh як передній край Python для 3D-мережних можливостей CGAL.

Обидва досить добре сприйняті, тому я здогадуюсь, що вони корисні і іншим.


1

Чому б не Блендер ? Це потужне, вільне та відкрите програмне забезпечення з підтримкою сценаріїв python.

У Blender 2.79 вам потрібно обрати Scriptingяк Screen layout.

У верхньому лівому куті Text Editorнатисніть +, щоб створити новий текстовий блок даних; почніть з цього, import bpyа потім вставляйте команди python відносно кожної операції, яку ви можете виконати з GUI, читаючи відносну команду, що наводить курсор миші на елемент GUI.

На скріншоті зображені команди для тріангуляції кола, починаючи зі сцени за замовчуванням кубом:

введіть тут опис зображення

Таким чином, ви можете використовувати Blender в режимі сценаріїв без його графічного інтерфейсу для експорту, наприклад, вихідного файлу, запускаючи ваш скрипт python в терміналі:

blender --background --python myscript.py

Ось відеоурок на YouTube.

Ура


Блендер може це зробити? Ніколи не знав. Як би я тріангулював, наприклад, коло?
Ніко Шльомер

@ChristianClason: Як це не відповідь? Це вирішує питання. Ви можете поскаржитися, що йому не вистачає деталей, або навіть, що це неправильно, але це те, для чого потрібні низини. Це, звичайно, не коментар.
Wrzlprmft

@Wrzlprmft Дякую велике Я думаю, що це може бути добре, якщо я надам Ніко Шльомеру детальний відеоурок, написавши тут основний код. Але тим часом я можу пов’язати тему, написану власноруч раніше, італійською мовою, попросивши допомогти експортувати сітку за допомогою сценаріїв Blender (той веб-сайт оновлено, для якого деякі ресурси більше недоступні): blender. it / forums / topic / difetto-text-file-obj-da-wrl Ось приклад відеоуроку на YouTube: youtube.com/watch?v=K0yb4sZ7B4g
Riccardo Volpe

Якщо у вас є що додати до свого питання, відредагуйте його.
Wrzlprmft
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.