Комментарии 26
Думаю в данный обзор стоит добавить ZenCad: https://github.com/mirmik/zencad. Кстати её автор есть на хабре и писал про нее статью: https://habr.com/ru/post/443140/. Для простых форм (корпуса для электроники состоящие из параллелепипедов и отверстий в них) подходит идеально, а вот сложные объекты с изгибами и прочими красивостями разрабатывать сложно из-за неожиданно вылазящих артефактов. Думаю попробовать описанный Вами SolidPython.
Open3D?
Самую главную библиотеку забыли - VTK. Можно делать все, вплоть до подготовки моделей виртуальной реальности. Многое из вышеназванного я пробовал, и только зря потратил время. Еще можно на питоне в Blender программировать, если нужны искусственные объекты, а не создание моделей реального мира из реальных данных. Кстати, с файлами VTK и стандартными форматами мешей можно и в Jupyter Notebooks работать с помощью PyVista, к примеру.
Я правильно понимаю, что имеется ввиду Visualization Toolkit (https://vtk.org)?
Огромное спасибо. Благодаря вашей публикации Вычислительная геология и визуализация: пример Python 3 Jupyter Notebook впервые услышал о PyVista.
Рад слышать. Для библиотеки VTK много всего интересного есть, даже для Jupyter Notebooks целая плеяда врапперов, но как-то это все «широко известно в узких кругах». Из проприетарных аналогов разве что Voxler могу назвать… но он только под виндоус, качество отрисовки не сравнимо, и вообще не способен работать с большими данными (у меня в нем проблемы были даже на файлах размером десятки-сотни мегабайт, про гигабайты и десятки гигабайт и речь не идет, хотя для серий мультивременных геологических моделей это обычный размер).
Большое спасибо за очень познавательный анализ разных библиотек на конкретном примере.
Даже сам загорелся идеей реализации этого фрактала на Blender Python API для сравнения.
Для решения Задачи о кратчайшем пути, существует несколько алгоритмов. Работают они обычно с графами. Потому, следует описание вершин и граней mesh, привести к описанию связей вершин графа.
Добавил в репозиторий небольшой пример, как это может выглядеть на искаженном кубе, с использованием библиотек numpy-stl и networkx. Важно помнить, что в перечисленных примерах, mesh состоит из треугольных граней. Это приводит к появлению одной линии между двумя противоположными углами квадратной грани куба.
Добавьте множество новых вершин и рёбер. Они сформируют необходимую для поиска сеть. Например:
Теперь не составит труда найти наименьшее расстояние между точками на графе. Увеличивая детализацию сетки, можно увеличить точность. Найдя кратчайший путь, можно исключить добавленную сетку, оставив только вершины, через которые проходил кратчайший путь, соединив их одним ребром.
в разделе "Подготовка среды" описаны команды, где их следует задавать, для какой операционной системы эти команды? У меня в Windows 10 при попытке выполнить первую команду "curl -fsSL https://get.docker.com -o get-docker.sh" в Git Bash выскакивает сообщение: "curl: (60) SSL certificate problem: self signed certificate in certificate chain More details here: https://curl.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above."
Что нужно сделать чтобы избавиться от этой ошибки?
Или так ( curl.se/docs/caextract.html )
Почитал в интернете и установил Sudo for Windows и что то получилось, до следующей команды. Эти команды из раздела: "Подготовка среды", они для какой операционной системы предназначены? Они работают в Windows?
При выполнении: $ sudo sh get-docker.sh
Выдаётся следующее сообщение:
sh : Die Benennung "sh" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang. In Zeile:1 Zeichen:1
sh get-docker.sh
~~
CategoryInfo : ObjectNotFound: (sh:String) [], CommandNotFoundE xception
FullyQualifiedErrorId : CommandNotFoundException
я запускал не из powershell а из git bash, это во-первых! А во-вторых чем немецкий хуже английского? А в-третьих я как раз и спрашивал для какой операционки вся это срань подходит! И как выяснил для любителей ковыряться на линукс.
Нашел еще одну интересную библиотеку PyVista
3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK)
Которая помогла мне отрендерить карту глубины прочитав mesh из stl файла. Но и кроме этого имеет много интересных возможностей.
https://github.com/format37/python3d/blob/main/comments/stl-slicer-v3.ipynb
3D моделирование в Python