Денис Стаценко, руководитель отдела продуктового маркетинга C3D Labs, представляет новую разработку компании — полигональное ядро C3D PolyShaper — и рассказывает об истории ее создания, функционале и областях применения.
C3D PolyShaper — новая разработка компании C3D Labs, полигональное ядро, представляющее собой набор инструментов для редактирования, анализа и устранения дефектов полигональных объектов.
Рассмотрим предпосылки появления этого модуля.
В области инженерного ПО в основном применяется граничное представление, потому что такое представление максимально точно описывает геометрию. Но технологии проектирования и производства развиваются, появляются новые типы, форматы и источники данных. Очевидно, что граничного представления становится недостаточно для работы инженера. Пользователи нуждаются еще и в полигональном представлении.
В 2023 году команда экспертов C3D Labs начала разработку в этом направлении и достигла таких результатов, что проект был выделен в отдельный модуль, который мы презентуем.
Прежде чем описать функциональность, которая заключается в этом модуле, следует вкратце объяснить, как применяются полигональное моделирование и полигональные объекты в инженерной сфере.
Первое направление — реверс-инжиниринг. Потребность в полигональном моделировании обнаруживается, когда нужно, например, по сканированной модели восстановить исходное изделие.
Другое направление — это топологическая оптимизация и генеративный дизайн.
К примеру, оптимизированные модели сложной формы нужно преобразовывать в твердотельные для последующей обработки.
Для адаптации и оптимизации расчетных сеток полигональное моделирование применяется в расчетных системах.
Для измерения готового изделия, его технического контроля применяются контрольно-измерительные машины.
Эти машины сканируют изделия, получая полигональную модель. Данную модель нужно сравнивать с конструкторской , чтобы определить отклонения и решить, можно ли принять изделие или нет.
В строительной сфере полигональные объекты — это в основном импортированная геометрия.
Если мы говорим о промышленном строительстве, то это всевозможное оборудование, техника, технологические линии. В гражданском строительстве это элементы интерьера, мебель, сантехника. С этой геометрией нужно уметь работать. Как правило, ее нужно редактировать, возможно, «лечить», исправлять, оптимизировать и использовать в своих проектах.
В медицине полигональные объекты применяются для планирования операций, для протезирования, для разработки учебных курсов и материалов, а также при проведении исследований.
Почти все объекты, которые получают с помощью компьютерной томографии, могут быть представлены в виде полигональной геометрии. Это необходимо для дальнейшей работы с ними — уже не инженерам, а медицинским работникам.
Отдельное направление — гибридное моделирование, когда одновременно в граничном представлении присутствуют и полигональные, и твердотельные объекты.
Естественно, инженерам удобно применять к полигональному представлению те же операции, которые они привыкли применять к граничному представлению, например булевы операции, сечения, вырезы и т. д. Наша задача заключалась в том, чтобы на этом пути они не встречали препятствий и их работа была комфортной и эффективной.
В CAM-приложениях и в приложениях по планированию и подготовке 3D-печати полигональные модели или объекты используются для того, чтобы визуализировать процесс механической обработки или 3D-печати.
Такая визуализация требует быстрого перестроения, поэтому твердотельная модель не подходит для такого рода работы.
Обратимся непосредственно к модулю C3D PolyShaper.
Его функциональность можно разделить на несколько основных категорий. Первая категория — это диагностика и «лечение».
Геометрия, которая поступает к инженеру, конструктору или разработчику, может содержать дефекты. Это могут быть разные дефекты — геометрические либо топологические. Например, вырожденные треугольники, дублирующие вершины треугольников, вырезы, спайки, неманифолдности. Дефекты нужно исправлять, потому что такая геометрия негативно влияет на работу всех алгоритмов, используемых для работы с таким представлением. Поэтому полигональная геометрия и способы ее «лечения» — это очень важная часть работы и функциональности модуля C3D PolyShaper.
Другое направление — это упрощение, уточнение и ремешинг.
Упрощение нужно для того, чтобы уменьшить в размерах геометрию, то есть сделать количество треугольников оптимальным. В PolyShaper есть две возможности упрощения триангуляции — до заданной точности или до заданного количества треугольников.
Обратное направление — это уточнение, когда нужно, наоборот, увеличить количество треугольников в какой-либо выбранной области модели.
Это необходимо, например, для расчетных систем — в случае, когда нужно провести более точный расчет на локальном участке.
Ремешинг способен улучшать модель целиком.
Он делает все треугольники максимально равносторонними, а это положительно влияет на работу всех алгоритмов.
Еще одно направление работы в модуле — это редактирование.
Получив геометрию, «вылечив» ее, возникает потребность в ее изменении. Для этого можно применять привычные булевы операции, сечение геометрии, обрезку геометрии габаритным кубом либо удаление треугольников.
Заключительный блок функциональности, но не менее важный, чем остальные, — это анализ.
Этот этап расширяет возможности работы c геометрией. В PolyShaper можно анализировать геометрию, полученную разными способами. Это могут быть и результаты сканирования, и топологическая оптимизация. Например, если мы уверены, что конструкторская и сканированная модели схожи, то можно применить инструменты автоматического или полуавтоматического совмещения для их сравнения.
Другое направление анализа в C3D PolyShaper — это реверс-инжиниринг — преобразование полигонального объекта в твердое тело. Для решения этой задачи применяется вписывание аналитических поверхностей методом наименьших квадратов. Можно выбрать какую-либо область в сканированной геометрии и тип поверхности — цилиндр, конус, плоскость, сфера, тор и т. д. После чего преобразовать эту область в оболочку или в поверхность заданной формы.
Такой подход применяется для конструкторских моделей, получаемых, например, методом обработки резанием, то есть таких, где имеются эти плоскости и цилиндры. Но есть модели более сложной формы, полученные, например, методом топологической оптимизации либо литьем, как, например, фигурка на иллюстрации. Чтобы преобразовать подобную полигональную модель в твердотельную, подходит функция покрытия ее оболочкой на основе сети NURBS-патчей.
Анализ полигональных моделей включает и сегментацию сетки. Для чего она нужна? Полигональной модели можно придать ту же топологию, что и модели в граничном представлении, только в данном случае гранями будет набор связанной группы фасетов, а ребра составлены из последовательности ребер сетки. Этим областям можно присвоить атрибут. Это может быть число, вектор, поверхность или произвольная структура.
В последнем обновлении C3D Toolkit уже появилась возможность загрузить модуль C3D PolyShaper, протестировать его функциональность и вернуться в C3D Labs с обратной связью. Мнение и оценка пользователей очень важны — ориентируясь на них, мы планируем развивать и совершенствовать новый модуль.
Чтобы воспользоваться ранним доступом к C3D PolyShaper, пожалуйста, свяжитесь с нами.
Денис Стаценко
Руководитель отдела продуктового маркетинга
C3D Labs
VirRus77
C3D PolyShaper будет представлен в Компас-3D Home?
Просто в текущих реалях у многих людей появляется возможность иметь дома не только 3D принтеры, но и ЧПУ станки (токарный, фрезер). И возможностей Компас-3D Home уже не хватает из-за отсутствия "Модуль ЧПУ".
А реверс инжиниринг можно организовать с помощью фотоаппарата телефона. Что в свою очередь потребует редактирования облака точек/треугольников.
kompas_3d
В состав КОМПАС-3D Home входит всё, что входит в коммерческий КОМПАС-3D без каких-либо ограничений. На данный момент какие-то возможности C3D PolyShaper уже задействованы, остальные будут задействоваться по мере развития функциональности КОМПАС-3D. Чтобы использовать компонент ядра нужно не просто где-то галочку поставить, но и написать как минимум интерфейс для его задействования, а это требует привлечения дополнительных ресурсов, поэтому не всё сразу.