Главная » Софт » Antimony — САПР из параллельного мира

Antimony — САПР из параллельного мира

Среди трёхмерных САПР наиболее известны программы, реализующие два основных подхода к проектированию: прямое моделирование и параметрическое.

Такой подход снискал себе признание среди любителей программирования и проектирования устройств с открытыми кодом и конструкцией. Кроме того, существуют процедурные САПР, которые позволяют моделировать посредством программирования. Например, хорошо известен OpenSCAD, который здесь не раз упоминался.

Предлагаю посмотреть на еще одну необычную САПР под названием Antimony.

1. image
Рис. Antimony — САПР из параллельного мира
Antimony — САПР с открытым исходным кодом, который предоставляет подход к твердотельному моделированию при помощи направленных ациклических графов.

Такой подход используется в различных пакетах для 3D визуализации, текстурирования и создания игровой графики, а для твердотельного моделирования такой подход применяется, наверное, впервые.

Сам автор Мэтт Китер описывает свое детище как «CAD из параллельной вселенной».
Antimony построен из трёх основных компонентов:

  • Фреймворк для движения данных по направленному ациклическому графу.
  • Геометрическое ядро для CSG (Constructive Solid Geometry) операций, использующее функциональное представление (F-Rep) твёрдых тел.
  • Библиотека примитивов и трансформаций «fab». Библиотека содержит как привычные операции вроде перемещения, масштабирования, поворота, булевы операции, так и более необычные для твердотельных САПР, такие как деформация притяжения, отталкивания, изгиба.

image
Рис. 2. Деформация отталкивания

Твердотельное моделирование в Antimony выполняется посредством соединения узлов графа.
Узел представляет собой какой-либо примитив или трансформацию.

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

3. image
Рис. Передача значений посредством связи и через имя узла и параметра

Внутри каждый узел представляет собой скрипт на языке Python, который можно редактировать, а также можно создавать новые узлы со своими скриптами.

Связи внутри графа обеспечивают автоматическое распространение изменений.

4. image
Рис. Скрипт узла «круг»

Принцип построения модели в общих чертах тот же что и в более привычных САПР: берём плоскую фигуру, применяем к ней операцию построения трёхмерного тела (или сразу берем трёхмерный примитив), затем комбинируем это тело с другими при помощи булевых операций или применяем операции перемещения и деформации.

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

Можно открыть дополнительное окно видового экрана с комплексом четырех проекций. Пользовательский интерфейс представлен двумя основными окнами: окном графов и
окном видового экрана (вьюпорта).

5. image
Рис. Минимализм во всём

Меню операций можно вызвать щелчком правой кнопки мыши из любой точки окна графов и окна видового экрана.

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

Поэтому Antimony поддерживает экспорт моделей в виде 2. Так как автор программы работает в Formlabs, то он позаботился о возможности материализации полученных моделей. Команда для экспорта — тоже узел графа. 5D растра (карты высот в формате PNG) и в виде моделей в формате STL для 3D-печати.

6. image
Рис. Результат экспорта в STL

И немного о недостатках:

  • Импорт моделей из других САПР отсутствует.
  • Невозможность задавать произвольный плоский контур в качестве эскиза для трёхмерного тела существенно ограничивает возможности моделирования.
  • Вопрос, как рационально делать фаски и скругления остается открытым.
  • Уровень стабильности проекта оценивается как бета-версия, что-то серьезное пытаться делать в Antimony пожалуй не стоит, но поиграть будет интересно.

Ожидая негодование инженеров-конструкторов, должен заметить, что такая САПР создана в первую очередь не в практических целях, а из личного спортивного или научного интереса автора. Понятно, что ни о каких чертежах здесь речь не идёт, так как Antimony разработан исключительно для моделирования трёхмерных тел.

Озвучу личное впечатление, что поиграть с моделированием в Antimony довольно необычно и интересно, а почти полное отсутствие элементов пользовательского интерфейса способствует погружению в процесс моделирования и приятному времяпрепровождению.

Antimony переводится как сурьма — вещество, сочетающее в себе свойства металлов и неметаллов, и расширяющееся при застывании расплава. Название для своей необычный САПР автор выбрал не случайно.

Интересно посмотреть программу в работе на скринкасте Мэтта Китера:

GitHub

В репозитории присутствуют инструкции по сборке из исходников для Linux и macOS, и готовые DMG образы. Antimony написан на C++ и Python.


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

[Из песочницы] От var b до собеседования

Вы почти закончили универ или колледж? Вас пригласили на собеседования, но вы идете туда без подготовки? У вас нет образования (высшего), но хотите работать программистом или в сфере IT? Речь пойдёт по большей степени о поиске работы, я буду говорить ...

OpenSceneGraph: Основы работы с геометрией сцены

OpenGL, являющийся бэкэндом для OpenSceneGraph, использует геометрические примитивы (такие как точки, линии, треугольники и полигональные грани) для построения всех объектов трехмерного мира. Эти данные хранятся в специальных массивах. Эти примитивы задаются данными об их вершинах, в которые входят координаты вершин, ...