Летом 2022 года C3D Labs выпустила новую версию набора инструментов для разработки инженерного программного обеспечения C3D Toolkit 2022. В релизе обновлены основные компоненты: геометрическое ядро C3D Modeler, параметрический решатель C3D Solver, конвертеры данных C3D Converter и модуль визуализации C3D Vision.
Существенные изменения также внесены в компоненты C3D FairCurveModeler и C3D Web Vision, пополнившие список программных продуктов C3D в прошлом году. Тесно связанные между собой, они составляют целостное решение для создания настольных, мобильных, веб, и облачных 3Dприложений (рис. 1).
Рис. 1. C3D Toolkit 2022 для разработки инженерного программного обеспечения
В релизе 2022 были учтены потребности разных софтверных рынков, и сегодня C3D Toolkit предлагает мощный инструментарий для разработки классических CAD/CAM/CAEсистем, а также продуктов в сфере BIM, VR, 3Dсканирования и цифрового производства.
Ключевые приобретения новой версии связаны с поверхностным, полигональным, твердотельным и листовым моделированием, вебвизуализацией и параметризацией.
Поверхностное моделирование
В геометрическом ядре C3D Modeler 2022 активное развитие получила функциональность сложного поверхностного моделирования, которую традиционно относят к «тяжелому» классу. Она открывает путь к решению САПРзадач в авиационной промышленности, двигателе и судостроении.
С помощью функционала, связанного с построением срединных оболочек, ранее можно было моделировать оболочки только для равноудаленных друг от друга пар граней. Однако в новой версии мы реализовали возможность построения таких поверхностей по неэквидистантным парам плоских граней, при этом результирующая срединная поверхность строится, будучи равноудаленной от родительских граней (рис. 2).
Рис. 2. Срединная оболочка
Уже традиционно в каждой новой версии геометрического ядра существенным доработкам подвергается функционал поверхности конического сечения (рис. 3). На этот раз реализована возможность построения таких поверхностей с минимальным натяжением и касательно двум наборам граней.
Рис. 3. Поверхности конического сечения
Данные доработки произведены с целью расширения области применения поверхностей конического сечения; они помогут моделировать сложные обводы конструкций, которые используются в авиа, судо и турбомашиностроении.
Произведены крупные доработки поверхностей по сети кривых (ППСК). В частности, были проведены работы по улучшению операции гладкого сопряжения на границах этих поверхностей (рис. 4).
Рис. 4. Поверхности по сети кривых
Рис. 5. Линейчатые поверхности
Функционал линейчатых поверхностей расширен следующими новыми методами их построения (рис. 5):
- по кривой и направлению;
- по кривой и поверхности;
- по кривой с касанием поверхности;
- с касанием двух поверхностей.
Доработан функционал операции Заплатка. Ранее он разрешал моделировать заплатку на поверхности Кунса только в случае, когда все ее границы гладко сопряжены с исходными поверхностями. Теперь заплатку можно построить и на границах, где условие касательности нарушается (рис. 6).
Рис. 6. Построение заплатки
В операции продления многогранных поверхностей были проведены работы по устранению перехлеста или расхождения граней, подвергающихся продлению. Теперь, если продляемые грани перехлестываются или расходятся, метод строит для них общее ребро (рис. 7).
Рис. 7. Продление поверхностей
Методы построения кривых
В первую очередь стоит рассказать об изменениях, которые претерпел модуль построения плавных кривых C3D FairCurveModeler. Среди его новых интересных функций теперь присутствует метод аппроксимации массива зашумленных точек. В данной задаче на вход обычно поступают следующие параметры: массив зашумленных точек и некоторая NURBSкривая. На рис. 8 в верхнем правом углу можно видеть, что график кривизны такой кривой обладает «осциллирующим» эффектом.
Рис. 8. График кривизны кривой с «осциллирующим» эффектом
В результате работы нового алгоритма мы получаем гладкое изменение кривизны кривой (нижний правый угол), что подтверждается ее графиком.
В C3D FairCurveModeler также были улучшены алгоритмы построения кривых для граничных случаев, добавлены строители плавных кривых и новые функции API.
В C3D Modeler мы также сосредоточились на функционале построения кривых, доработав его существующие методы и реализовав новые.
Добавлены следующие методы: операция разворачивания пространственных кривых с цилиндра на плоскость (рис. 9) и операция снятия фасок на стыках трехмерного контура (рис. 10). Последний метод добавлен по запросу пользователей.
Рис. 9. Разворачивание кривых с цилиндра на плоскость
Рис. 10. Снятие фасок на стыках трехмерного контура
В разработке находится функционал продления кривых. Его суть заключается в том, что некоторая незамкнутая кривая может быть продлена с любого из ее концов на заданную длину, при этом пользователь имеет возможность изменять опции ее продления (рис. 11). Доступны следующие опции продления: по касательной, по дуге окружности и по натуральному закону.
Рис. 11. Продление кривых
Твердотельное моделирование
Функционал для редактирования твердых тел в геометрическом ядре модернизирован. В частности, были улучшены следующие операции над телами (рис. 12):
Рис. 12. Удаление скруглений на гранях тел
- замена граней эквидистантными гранями;
- перемещение и удаление граней;
- удаление скруглений на гранях.
Для операции скругления доступна возможность построения скругления с переменным радиусом по граничной кривой (рис. 13).
Рис. 13. Скругление с переменным радиусом
Листовое моделирование
C3D Modeler содержит уникальную для геометрических ядер функциональность листового моделирования.
В версии 2022 улучшена операция построения вырезов в листовом теле. Данный метод теперь позволяет нормализовать моделируемые вырезы в различных «косых» элементах тела. Под нормализацией понимается обеспечение перпендикулярности кромок получаемых вырезов. Улучшение позволит получать правильную развертку листовых тел, имеющих вырезы (рис. 14).
Рис. 14. Нормализация вырезов в листовом теле
Аналогичная возможность нормализации кромок также доступна и в операции штамповки произвольным телом. Ранее в теле штамповки при моделировании некой вырубки ее кромки были параллельны поверхности этой вырубки, однако теперь есть возможность создавать кромки перпендикулярно поверхности листового тела (рис. 15).
Рис. 15. Нормализация кромок вырубки листового тела
Полигональное моделирование
В C3D Modeler появился совершенно новый тип моделирования, позволяющий ему работать и с полигональными телами. В последнее время команда ядра ведет его активное развитие, что связано в первую очередь с большим количеством поступающих от пользователей запросов по этой теме.
В текущей версии ядра доступна возможность выполнения таких булевых операций над полигональными объектами, как объединение, пересечение и разность. На рис. 16 можно видеть результат работы этих операций.
Рис. 16. Булевы операции над полигональными телами
Для двух пересекающихся полигональных объектов реализована возможность расчета кривой их пересечения (рис. 17). В общем случае полученная кривая представляет собой набор ломаных линий.
Рис. 17. Кривая пересечения полигональных тел
Для диагностики полигональных моделей доступны алгоритмы оценки следующих дефектов:
- замкнутость полигональной модели;
- краевые ребра;
- ориентация нормалей соседних полигонов (совместность ориентации полигонов).
Для последнего дефекта реализован алгоритм исправления несоответствия ориентации таких полигонов (рис. 18).
Рис. 18. Диагностика полигональной модели
Преобразование полигональных моделей в твердотельные
В новой версии C3D Toolkit 2022 подвергся изменениям модуль C3D BShaper, выполняющий преобразования тел из полигонального представления в граничное.
Теперь после работы алгоритма распознавания пользователи могут изменять параметры распознанных поверхностей исходного тела непосредственно перед его преобразованием в граничное представление.
На рис. 19 продемонстрирован пример подобного редактирования поверхностей.
Рис. 19. Редактирование распознанных поверхностей
У плоской синей грани изменена ориентация локальной системы координат, а у цилиндрической грани — радиус.
Произведены работы по улучшению сегментации полигональной сетки.
Сейчас нами ведутся работы по улучшению алгоритма вписывания в набор полигонов поверхности, в частности NURBSповерхности (рис. 20).
Рис. 20. Вписывание в набор полигонов поверхности
Также стоит упомянуть функционал детектора столкновений Collision Detection, который является частью C3D Modeler. В новой версии добавлены новые случаи детектирования:
- прохождение луча через твердое тело или оболочку (рис. 21);
- обнаружение тела, полностью находящегося внутри другого тела (задача вложения тел, рис. 22).
Рис. 21. Луч в теле куба
Рис. 22. Вложенные тела
Параметрический решатель
В двумерном параметрическом решателе C3D Solver главной новинкой являются так называемые оффсетные (эквидистантные) кривые. Такие кривые представлены множеством точек, находящихся на определенном расстоянии от опорной кривой (рис. 23).
Рис. 23. Оффсетные кривые
Для использования эквидистантных кривых реализованы новые методы в API решателя, которые позволяют добавлять такие кривые, фиксировать их смещение или уравнивать значения смещений.
С новой версией трехмерного параметрического решателя пользователям доступен функционал линейных интервальных размеров. Он позволяет накладывать между двумя разными телами или частями одного тела управляющий размер, величина которого изменяется в некотором интервале (рис. 24).
Рис. 24. Линейные интервальные размеры
Предварительное чтение и новые версии форматов
В новой версии модуля обмена данными C3D Converter все изменения в основном направлены на улучшение внутренней работы компонента, однако среди них можно выделить несколько интересных новинок.
Одной из таких новинок является предварительное чтение модели, которое служит для получения только ее атрибутов без чтения геометрии. Такими атрибутами могут быть любые свойства модели, представленные в виде «ключ — значение»: числовые, строковые атрибуты, плотность, контрольные характеристики (например, масса) и т.д.
Таким способом разработчики приложения на базе C3D решают проблему интерпретации атрибутов, поскольку не существует единых правил именования свойств как на уровне приложения, так и при передаче их в обменные форматы, быть может, за очень редким исключением. При этом не все атрибуты могут быть интерпретированы (к примеру, служебная информация), тогда функционал конвертеров перенесет их «как есть», а у пользователя будет возможность самостоятельно решать, как их использовать.
Примером применения предварительного чтения является импорт из JTфайла в САПР КОМПАС3D. На рис. 25 представлен результат работы команды.
Рис. 25. Окно с настройками импорта из JT в КОМПАС-3D
Также в C3D Converter 2022 реализовано чтение новых версий форматов SAT и Parasolid — v.27 и v.30 соответственно. На рис. 26 представлены модели, импортированные из форматов этих версий.
Рис. 26. Модели, импортированные из новых версий форматов в C3D Converter 2022: слева — модель формата SAT v.27; справа — модель формата Parasolid v.30
Вебвизуализация
Возможности визуализации в вебсреде предоставляет компонент C3D Web Vision, выпущенный на рынок в прошлом году. За прошедший год было произведено много доработок, реализована большая часть функционала нативной визуализации C3D Vision, существенно повышена производительность отрисовки, добавлены новинки.
Далее мы перечислим основные возможности, ставшие доступными в вебкомпоненте. Некоторые из них перенесены из C3D Vision, другие являются совершенно новыми или специфичными для вебвизуализации.
Для модели появился функционал переключения нескольких режимов отображения: каркас, полутон и полутон с каркасом (рис. 27). В дальнейшем планируется добавить оставшиеся режимы, такие как Скрытые ребра и Контур модели.
Рис. 27. Режимы отображения модели (слева: полутон с каркасом, справа: каркас)
Реализована плавная анимация камеры при переключении видов модели. В отличие от десктопной версии, в C3D Web Vision такую анимацию можно прервать, например, при выборе другого вида модели. Анимация переключения на текущий вид остановится, вместо нее запустится анимация переключения на новый вид.
Для реализации аннотационной графики разработан новый объект Геометрические аннотации. Этот объект является уникальным для C3D Web Vison и предлагает улучшенную версию функционала аннотаций, используемого в нативной визуализации. В частности, при любых манипуляциях с объектом текста на сцене размер шрифта всегда остается одинаковым.
На рис. 28 демонстрируется различие в работе аннотаций.
a
b
Рис. 28. а — C3D Web Vision: обе текстовые отметки имеют одинаковый размер в перспективе; б — C3D Vision: текстовые отметки различаются по размеру
Для управления моделью в C3D Web Vision реализованы различные процессы. Некоторые их них дополнительно подверглись изменениям в сравнении с нативной визуализацией.
Например, процесс поиска геометрии существенно улучшен по производительности и функциональным возможностям. Теперь он не зависит от контекста отрисовки и выполняется с большей скоростью. Также поиск осуществляется по глубине элементов модели, то есть при селектировании рамкой или только курсором находятся все объекты, расположенные в области выделения (рис. 29).
Рис. 29. Селектирование рамкой
Кроме того, реализованы процессы добавления PMI (аннотаций, рис. 30) и динамических сечений (рис. 31).
Рис. 30. Добавление аннотаций
Рис. 31. Добавление сечений
Появилась совершенно новая функциональность, позволяющая устанавливать цветовую схему для выделенного элемента модели (рис. 32).
Рис. 32. Задание цветов для отдельных элементов модели
Еще одна новинка позволяет сохранять и восстанавливать параметры камеры. Такая возможность необходима для создания пользовательских видов камеры.
В десктопной версии визуализации все изменения направлены на повышение стабильности и производительности работы компонента.
***
Всего в C3D Toolkit 2022 насчитываются десятки новых методов, сотни улучшений и доработок имеющихся команд. Все новинки уже доступны пользователям. Более подробно о них можно узнать из записей докладов на прошедшей конференции C3Days 2022 на нашем канале youtube.com/c/C3dlabs.