Летом 2021 года C3D Labs выпустила новую версию набора инструментов для разработки инженерного программного обеспечения C3D Toolkit 2021. В релизе обновлены основные компоненты: геометрическое ядро C3D Modeler, параметрический решатель C3D Solver, конвертеры данных C3D Converter и модуль визуализации C3D Vision.
Помимо традиционных обновлений компонентов в C3D Toolkit появились и совершенно новые модули: C3D FairCurveModeler и C3D Web Vision. Тесно связанные между собой, они составляют целостное решение для создания настольных, мобильных, облачных и Web 3D-приложений (рис. 1).
Рис. 1. C3D Toolkit для разработки инженерного программного обеспечения
В 2021-м релизе были учтены потребности разных софтверных рынков, и сегодня C3D Toolkit предлагает мощный инструментарий для разработки классических CAD/CAM/CAE-систем, а также продуктов в сфере BIM, VR, 3D-сканирования и цифрового производства.
Ключевые приобретения новой версии связаны с поверхностным, твердотельным и листовым моделированием, 3D-визуализацией и чтением всех форматов.
C3D FairCurveModeler
Компания C3D Labs разработала новый раздел C3D FairCurveModeler для геометрического ядра C3D, расширяющий возможности последнего в части построения кривых и поверхностей (рис. 2).
Рис. 2. C3D FairCurveModeler
Большинство существующих ныне CAD-систем позволяет моделировать сложные кривые и поверхности, однако, даже если CAD-система поддерживает моделирование кривых и поверхностей класса А, она не обеспечивает надлежащего качества так называемых функциональных кривых (кривых класса F) по критериям плавности.
Мы провели изыскания в области геометрического моделирования и вывели ряд специальных требований, соблюдение которых позволило нам получить необходимые параметры плавности кривых. Ниже приведен список этих требований:
- минимальное число опорных точек моделируемой сплайн-траектории движения и высокий, не ниже 4-го, порядок гладкости;
- плавное кручение пространственной кривой;
- ограничение максимального значения кривизны и скорости ее изменения;
- минимизация функционала потенциальной энергии.
Так на свет и появился C3D FairCurveModeler, методы которого полностью отвечают приведенным выше требованиям и позволяют моделировать кривые и поверхности самого высокого качества.
Область применения C3D FairCurveModeler распространяется на проектные задачи, возникающие в разных отраслях техники. Использование данного раздела в области моделирования изделий — это быстрый и недорогой способ улучшения проектных характеристик изделий только за счет улучшения плавности их геометрии.
Поверхностное моделирование
В геометрическом ядре C3D Modeler 2021 активное развитие получила функциональность сложного поверхностного моделирования, которую традиционно относят к «тяжелому» классу. Она открывает путь к решению САПР-задач в авиационной промышленности, двигателе- и судостроении.
Основной новинкой является поверхность конического или переменного сечения, которая уже была представлена в прошлом году, однако сегодня получила серьезные доработки (рис. 3). Сечение этих поверхностей может меняться в процессе движения вдоль направляющей кривой по заданному закону и иметь форму окружности, дуги эллипса, параболы, гиперболы, заданного сплайна, отрезка прямой. Поверхности конического сечения могут гладко стыковаться с заданными поверхностями.
Рис. 3. Поверхности конического сечения
Произведены крупные доработки поверхностей по сети кривых (ППСК). Составные кривые теперь можно задавать как границы поверхности по сети кривых — ранее такая возможность была недоступна (рис. 4).
Рис. 4. Поверхности по сети кривых (ППСК)
Внутри функционала ППСК реализовано достраивание сечений с учетом сопряжений, которые можно задавать на границах поверхности. Также реализована функциональность автоцепочки, которая в автоматическом режиме при достраивании сечений выстраивает их в нужном порядке для обеспечения ровной формы поверхности по сети кривых (рис. 5).
Рис. 5. Автоцепочки
В операции продления поверхностей была проведена работа по устранению зубцов на стыке граней, подлежащих продлению (рис. 6).
Рис. 6. Продление поверхностей
Твердотельное моделирование
В функционале срединной оболочки доработаны операции подрезки и продления строящейся оболочки (рис. 7). Для срединной оболочки также появилась возможность задания атрибутов толщин для сохранения информации о расположении срединной оболочки относительно твердого тела.
Рис. 7. Срединная оболочка
Доступен новый функционал объединения гладко стыкующихся граней по одному ребру.
Моделирование листовых тел
C3D Modeler содержит уникальную для геометрических ядер функциональность листового моделирования. В версии 2021 разработан метод распознавания листового тела буквально в один клик после импорта модели. В результате работы новой операции для полученного тела будут доступны все методы листового моделирования (рис. 8).
Рис. 8. Распознавание листового тела
Новая функциональность, реализующая преобразование твердого тела в листовое, теперь полностью функционирует и доступна в геометрическом ядре (рис. 9).
Рис. 9. Преобразование в листовое тело
Доработаны операции штамповки произвольным телом и отбортовки. В частности, была улучшена производительность работы этих операций и увеличена область их применения, то есть операции теперь обрабатывают и более сложные конфигурации тел (рис. 10).
Рис. 10. Штамповка произвольным телом и отбортовка
Параметрический решатель
В параметрическом решателе C3D Solver паттерны (массивы) вращения теперь работают и по двусторонней схеме: появилась возможность по экземпляру паттерна получить положение оригинала, то есть решить обратную задачу паттерна. Помимо этого для массивов теперь можно задавать способы выравнивания их экземпляров: линейное или ротационное (рис. 11).
Рис. 11. Паттерны вращения
Реализовано моделирование роликовых кулачковых механизмов посредством добавления в сопряжение «кулачок — толкатель» нового объекта толкателя — цилиндр (рис. 12). Теперь Solver может обрабатывать касание цилиндрической грани в подобных механизмах.
Рис. 12. Кулачковый механизм
Возможности Solver при работе со сплайнами, на которые уже наложены какие-либо ограничения, пополнились функцией добавления и удаления его точек. Теперь при внесении любых изменений в существующий сплайн все ограничения сохраняются (рис. 13).
Рис. 13. Работа C3D Solver со сплайнами
Для каркасных моделей была доработана функция драггинга, которая теперь учитывает специфику перетаскивания вершин не только твердотельных, но и каркасных моделей (рис. 14).
Рис. 14. Драггинг каркасных моделей
Поддержка всех форматов
Являясь частью C3D Toolkit, C3D Converter поддерживает наиболее популярные обменные форматы, но имеет определенные ограничения в части реализации проприетарных форматов, например нативных форматов сторонних CAD-систем. Это связано с тем, что геометрическое ядро не должно поддерживать форматы, являющиеся специфичными для определенных отраслей.
Команда C3D Converter пришла к выводу, что необходимо создать такую систему интеграции, которая позволила бы подключать к приложению на базе C3D сторонние модули для поддержки других форматов. Так и появился плагин для C3D Converter, позволяющий подключать к приложению любые сторонние пакеты.
Для пользователя C3D работа плагина реализуется посредством двух новых функций API C3D Converter:
- IConvertor3D::LoadForeignReader( path_to_plugin, settings);
- IConvertor3D::ForeignRead( ItModelDocument&, … ).
Первая функция загружает сторонний пакет и считывает специфичные для него настройки, а вторая читает формат и формирует модельный документ.
Схема интеграции стороннего пакета в приложении на основе плагина продемонстрирована на рис. 15. В верхней части схемы имеется ядро C3D и приложение на его основе, которому необходимо передать файл с настройками пакета, определяющий нюансы его работы и являющийся частью плагина. В нижней части имеется сторонняя подключаемая библиотека и поставляемые с ней модули, в которых реализован интерфейс для C3D. После загрузки пакета через LoadForeignReader все данные импортируются в ядро C3D.
Рис. 15. Схема интеграции стороннего пакета
Также в C3D Converter реализован импорт моделей в формате OBJ, позволяющий передавать полигональное представление, визуальные атрибуты и текстуры (рис. 16).
Рис. 16. Модель в формате OBJ
3D-визуализация
Разработанный для инженерных 3D-приложений движок C3D Vision нацелен в первую очередь на точность отображения геометрических построений и высокую производительность при работе с большими моделями.
В версии 2021 впервые реализованы представления для объединения геометрии в один объект. Основным преимуществом таких представлений является многократное повышение производительности за счет того, что все элементы находятся в одной геометрии и вызов функции отрисовки происходит только один раз.
Первое такое представление PolygonGeometry объединяет большое количество кривых в пределах одной геометрии (рис. 17). Для редактирования данного геометрического представления в C3D Vision предусмотрен ряд функций, таких как динамическое добавление кривых, назначение материала для каждой кривой и т.д.
Рис. 17. Множество объектов PolygonGeometry
Следующее геометрическое представление MathGroupGeometry позволяет объединять большое количество любых тел, при этом возможность изменения свойств каждого отдельного тела, например изменение его цвета, положения и т.д., сохраняется (рис. 18).
Рис. 18. Объединенная геометрия MathGroupGeometry
Доработано представление аннотационной геометрии CommentGeometry, которое теперь позволяет создать произвольное количество меток (рис. 19).
Рис. 19. Несколько меток CommentGeometry
Кроме того, в C3D Vision 2021 были произведены доработки представленных в прошлом году новинок, таких как манипуляторы для интерактивного редактирования геометрии, инструменты для управления ее визуальными свойствами и инструменты для выделения объектов и масштабирования камеры.
Рис. 20. Модель, открытая в C3D Web Vision
Веб-визуализация
Помимо улучшения существующего модуля визуализации мы разработали новый программный компонент C3D Web Vision 2021, предоставляющий возможности десктопного модуля визуализации C3D Vision разработчикам инженерных веб-приложений.
C3D Web Vision, используя возможности трехмерной визуализации C3D Vision, позволяет повышать качество отображения моделей на сцене, управлять свойствами рендеринга элементов моделей и, что самое главное, существенно ускорять разработку инженерного веб-софтвера.
Как и любое веб-решение, C3D Web Vision разделен на две части: серверную и клиентскую. На стороне клиента доступно API для управления визуализацией, например изменение цвета фона, селектирование объекта и прочие функции для управления визуальными свойствами объектов сцены. На стороне сервера предоставляется API для управления структурой модели, например загрузка модели из файла, добавление модели и иные функции, отвечающие за изменение данных самой модели.
C3D Web Vision в настоящий момент поддерживает работу в браузерах Chrome, Safari и Firefox.
Модуль C3D Web Vision аналогично движку визуализации C3D Vision не только может быть тесно интегрирован с другими компонентами инструментария C3D, работая в связке с ними, но и представлять самостоятельное решение c компонентами иных производителей.
Всего в C3D Toolkit 2021 насчитываются десятки новых разработанных методов, сотни улучшений и доработок имеющихся команд. Подробнее о них можно узнать из записей докладов на прошедшей конференции C3Days 2021 на нашем YouTube-канале youtube.com/c3dlabs.