LINUX.ORG.RU

3d и кады

 , , , ,


0

2

Мои знакомые хотят писать программу для визуализации вычислений. И возможно, я даже пойду к ним на работу это делать. Что-то связанное с электромагнитными полями. Требуется программа типа када с такими возможностями:

- лицензия, позволяющая разработку коммерческого приложения (LGPL или пермиссивная, или ещё как-то должно быть оговорена возможность коммерческой разработки)

- 3d моделирование (сферы, плоскости, булевы операции, импорт форматов КАДом)

- многослойное 3d моделирование. Мы можем нарисовать, скажем, железку с помощью 3d моделирования. Потом мы должны задать электрическое поле. Это электрическое поле задаётся отдельной 3d-моделью, которая живёт в том же пространстве, что и железка, но не является железкой. Т.е. если мы делаем булеву операцию между элементами описания электрического поля, железке это должно быть фиолетово. Я такого не видел. Например, в «Компасе» пространство не имеет слоёв (или я об этом не знаю). Если ты делаешь булеву операцию, над элементами эл.поля и там попалась железка, то железка будет затронута операцией. Естественно, должна быть возможность скрыть/показать слои.

Вот это ключевые требования, под которые хочется найти Open Source проект для доработки. Лично от себя я бы добавил в качестве пожелания, чтобы это было сделано на динамическом языке (в идеале - Common Lisp, но можно обсуждать tcl, Clojure, Python).

Мы кое-что порассматривали, но пока нет ясности. Проблема, пожалуй в том, что выбор слишком велик. Например, 3d движки для создания игр наверняка могут частично подойти. Кое-что отпало из-за лицензии, например, BRL-CAD и Blender. Есть FreeCad и ещё обсуждался OpenCascade. Оба написаны на С/C++. Эти товарищи любят С++, а меня тошнит от одной мысли о нём. Если не удастся выкрутиться из вопроса выбора, то не факт, что я пойду туда работать. А задача как таковая интересна.

Посоветуйте, плиз, есть ли что-то на «интересных» языках?

★★★★★

Эти товарищи любят С++, а меня тошнит от одной мысли о нём.

Просто любопытно: твой выбор языка их устроит?

DarkEld3r ★★★★★
()

На reddit-е летом пробегал штукень для работы с 3d из репла CL. Как назывался не помню.

antares0 ★★★★
()

разработка очевидно коммерческая, поэтому

1. оставляшь все свои GNU`сные привычки и GPL`ные программы

2. узнаешь какие форматы приняты в «конкретном муравейнике». То есть в области в которой будете работать. Обмен данными будет осуществляться именно в них, а не в том что ты придумаешь

3. узнаешь какой софт там сейчас стандарт-де-факто. 70% что для визуализации моделей используется что-нить из autodesk`ских продуктов. Соотв. такой SDK и стоит покупать.

MKuznetsov ★★★★★
()

Это скорее CAE а не CAD, покопай в эту сторону.

Насчет интересных языков - крайне сомнительню, они как правило если присутствуют, то прилеплены сбоку для каких-то специальных нужд.

Из того с чем лично встречался:

* Autolisp - скриптинг для автокада. Автокад не ваша тема, тут все ясно

* tcl - постпроцессоры и генераторы цеховой документации в PLM NX.

* python - скриптинг/API в некоторых CAD/CAM/CAE системах. Ближайшие примеры - опять же NX (с 10 версии один из поддерживаемых NXOpen API языков), Ansys/AnsysEM - скриптинг

Мне кажется область достаточно консервативная для того чтобы существовали какие-то продукты сделанные целиком на lisp/tcl/python/whatever. Большинству подобных систем по 30-40 лет (тот же опен каскейд это геометрическое ядро какой-то коммерческой системы, родившейся еще в 80х годах)

Midael ★★★★★
()
Последнее исправление: Midael (всего исправлений: 1)

OpenCASCADE - это не CAD, а библиотека. Сделай привязку к языку, который тебя устраивает и работай. FreeCAD - это уже программа, которая основана на библиотеке OpenCASCADE и там привязан Python.

Zubok ★★★★★
()

https://github.com/BradWBeer/CLinch

it is more a build-your-own-engine hobby kit
CLinch should be as fast or faster than most script-based graphics engines while requiring much less development time.
CLinch should be as simple as possible for someone familiar with 3D graphics programming to understand.

antares0 ★★★★
()
Ответ на: комментарий от MKuznetsov

Да,я наврал, это действительно CAE, а не CAD.

узнаешь какой софт там сейчас стандарт-де-факто. 70% что для визуализации моделей используется что-нить из autodesk`ских продуктов. Соотв. такой SDK и стоит покупать. Насколько я в теме - это ANSYS, нужно смотреть, что они предлагают, но просто глядя на то, как они лопатой всё гребут под себя, с трудом готов поверить, что они предлагают что-то приемлемое.

Как ни странно, про покупать - новая мысль, спасибо. Ну вот, вместо сужения области поиска произошло расширение :)

В общем, всем спасибо за мнения и за ссылки. Подожду ещё и поставлю галочку, наверное. Ещё, наверное, на сапровском форуме моежно спроить.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)

Если не удастся выкрутиться из вопроса выбора, то не факт, что я пойду туда работать

вот это и отличает специалиста от фанбоя-хаскелятора.

x4DA ★★★★★
()
Ответ на: комментарий от monk

Ухты, вот это, кажется, годнота. BSD, tcl/tk, используется в коммерческих приложениях. Осталось теперь вычислить, насколько эта часть важна. Ведь люди хотят всё же ещё и 3d-редактор. С другой стороны, там поэтапный проект, на первом этапе 3d-редактор не нужен.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

на первом этапе 3d-редактор не нужен.

А FEM солвер уже есть или тоже свой делать будут? Любопытно :)

Midael ★★★★★
()
Последнее исправление: Midael (всего исправлений: 1)
Ответ на: комментарий от den73

Ведь люди хотят всё же ещё и 3d-редактор.

Просмотрщик там встроенный. События мышки на объёмные объекты регистрируются. Если «редактор» = таскать объекты, то там всё фактически есть.

Примерно так: http://www.vtk.org/Wiki/VTK/Examples/Cxx/Interaction/MoveAVertex

Когда-то на сайте было больше примеров на Tcl. В общем сейчас их можно посмотреть так:

# apt install tcl-vtk vtk-examples
# dpkg -L vtk-examples | grep .tcl

/usr/share/vtk/DataManipulation/Tcl/Arrays.tcl
/usr/share/vtk/DataManipulation/Tcl/pointToCellData.tcl
/usr/share/vtk/DataManipulation/Tcl/marching.tcl
/usr/share/vtk/DataManipulation/Tcl/BuildUGrid.tcl
/usr/share/vtk/DataManipulation/Tcl/CreateStrip.tcl
/usr/share/vtk/DataManipulation/Tcl/FinancialField.tcl
/usr/share/vtk/Infovis/Tcl/hello_world.tcl
/usr/share/vtk/ImageProcessing/Tcl/Histogram.tcl
/usr/share/vtk/ImageProcessing/Tcl/HistogramWidget.tcl
...
monk ★★★★★
()
Ответ на: комментарий от den73

Ухты, вот это, кажется, годнота. BSD, tcl/tk, используется в коммерческих приложениях.

tcl/tk используется в самом же OpenCASCADE, если ты посмотришь их дерево исходников. http://wiki.tcl.tk/17602

Zubok ★★★★★
()
Ответ на: комментарий от anonymous

tools:

By Suzhou Tongyuan

MWorks is a Modelica-based visual modeling and simulation platform for multi-domain engineering systems. It provides visual modeling studio, effective Modelica compiler and symbolic analyzer, as well as powerful postprocessors of curves, schema and 3D animation. Engineering tools, such as experiment design and multi-object optimization, are included in MWorks. MWorks supports the interfaces with CAD, FEM, Matlab/Simulink and FMI. In particular, it can import general CAD files and FEM modal data into 3D animation postprocessor, including stl, sat, hsf, 3ds, dxf and MNF formats. It is also convenient to customize and expand MWorks through C/C++ interfaces, COM components and Python scripts.

и т.п.

anonymous
()
Ответ на: комментарий от anonymous

Ого! Впечатляет! Отвечу на вопрос:

А FEM солвер уже есть или тоже свой делать будут?

Есть. Его-то и хотят продать, но его нужно красиво упаковать.

den73 ★★★★★
() автор топика
Ответ на: комментарий от Midael

в BricsCAD ЕМНИП OpenLisp (реализация ISO ISLISP, похож на CL). совместимость с автолиспом там вроде бы макрами лиспа.

anonymous
()

openCASCADE позволяет натягивать результаты расчётов на трёхмерную сетку. Из openCASCADE я смотрел только твердотельную геометрию. Там всё достаточно понятно, хотя документация местами обрывочная. Визуализацию расчётов не смотрел.

Если собрались сами делать вычислительный движок, то можно использовать готовый FreeFEM++ . FreeFEM++ --- это движок расчётов методом конечных элементов. Будет достаточно только реализовать для него составлялку конечно-элементных уравнений под вашу задачу.

DarthVadimius ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.