C3D Labs выпустила C3D Toolkit 2019 с пятью компонентами для разработки инженерного программного обеспечения

C3D Labs представляет C3D Toolkit 2019, новую версию комплекта инструментов для разработки инженерного программного обеспечения. Теперь в его состав входят пять программных компонентов: геометрическое ядро C3D Modeler, параметрическое ядро C3D Solver, модуль обмена данными C3D Converter, движок визуализации C3D Vision и новый модуль преобразования полигональных моделей в граничное представление C3D B-Shaper. Тем самым C3D Toolkit подтверждает свой статус самого полного и целостного решения для создания систем класса CAD/CAE/CAM/EDA/BIM.

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

Что умеет C3D B-Shaper 2019

Новый, пятый по счету компонент C3D Toolkit предназначен для работы с полигональными моделями при создании 3D-приложений. Его оригинальный алгоритм преобразует полигональную сетку в модель с граничным представлением (B-rep), которую можно редактировать классическими инструментами CAD — выполнять булевы операции, строить фаски, получать проекции и сечения.

Полигональная модель и ее граничное представление после конвертации в C3D B-Shaper

Что нового в C3D Modeler 2019

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

В моделировании появилась операция сечения тела открытой оболочкой. Оболочка в геометрическом ядре представляет собой связное множество стыкующихся друг с другом граней. Если грани данного множества не имеют края, т.е. все ребра являются пересечением двух соседних граней, то оболочка называется замкнутой. Если же на одной из граней лежит краевое ребро, то оболочка – незамкнутая (она же открытая). Теперь пользователи C3D Modeler могут отсекать часть тела подобным набором граней (открытой оболочкой).

Сечение тела открытой оболочкой

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

Различные элементы листового тела могут быть размножены отдельно от исходного тела. Удобство такого подхода заключается в том, что при добавлении нового элемента нет необходимости обрабатывать исходное тело и сразу объединять его с размноженным объектом. Все заново созданные элементы массива присоединяются к листовому телу за одну операцию.

Размножение элементов листового тела

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

Упрощение развертки

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

Ребро усиления с прогибом

Другие новинки геометрического моделирования:

  • управление погрешностью в сравнении подобных поверхностей
  • учет нормалей поверхностной направляющей кинематического тела
  • добавление привязок по именам в операции «Уклон»
  • реализация возможности именования граничных ребер по именам кривых.

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

Проецирование осевых линий поверхностей

Помимо улучшения и модификации непосредственно вычислительных алгоритмов геометрического ядра, разработчики провели системные работы по повышению производительности и стабильности работы геометрического ядра:

  • реализована возможность сохранения в формате C3D в предыдущие релизы
  • добавлены чтение и запись исполнений из САПР КОМПАС-3D
  • выполнена оптимизация истории построения, что позволило устранить повторное использование данных
  • в многопоточном режиме реализована сборка «мусора» – хранящихся в памяти данных, которые в дальнейшем не потребуются для работы приложения.

Что нового в C3D Solver 2019

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

При классификации задач, которые решает параметрическое ядро C3D Solver, выделяется особый тип –  каркасные задачи.  Они связаны с потребностями инженерного ПО в моделях каркасного характера: трассах трубопроводов, металлоконструкциях. Такие модели отличаются большим числом гладко стыкующихся отрезков и дуг (контуров), привязанных к неподвижным объектам. Например, проектирование коммуникаций в BIM-системе – типичная прикладная задача, в рамках которой сначала собирается каркас (обычно с помощью отрезков и дуг), а затем на его основе приложение генерирует сеть кабелей, трубопроводов и прочих протяженных объектов. Такие модели могут быть очень сложными, поэтому к производительности и решаемости алгоритмов предъявляются серьезные требования. C3D Solver обрабатывает достаточно большие системы уравнений, для упрощения которых применяются специальные методы.

В C3D Solver 2019 проведен комплекс работ в интересах решения каркасных задач:

  • тестовая база расширена на основе собственной коллекции тестов и благодаря моделям, полученным от пользователей
  • численная устойчивость алгоритмов улучшена за счет более качественной формулировки внутренней системы уравнений
  • доработано API параметрического ядра: опция выравнивания для паттернов GCM_ALIGN_WITH_AXIAL_GEOM позволяет формулировать касания с гладкой стыковкой дуг и отрезков за счет меньшего количества вызовов.

Каркасная модель в C3D Solver

Большинство ограничений, которые применяются к окружности (касание, расстояние, точка на окружности и т. д.), в предыдущих версиях C3D Solver работали только для окружности некоторого радиуса (R > eps). За счет внутренних переформулировок системы уравнений теперь можно работать с окружностью нулевого радиуса, в частности, при построении скруглений. Например, для случая отключаемых скруглений, когда параметрический чертеж может иметь или не иметь скругления. Дополнительным преимуществом использования окружностей нулевого радиуса стало повышение точности гладких стыковок за счет хорошо обусловленных систем уравнений.

Отключаемые скругления на чертеже

Основу программного интерфейса C3D Solver изначально составляли так называемые прямые вызовы, когда исходные данные для вычислений берутся из того, что было сообщено при вызовах API со стороны приложения. С ростом требований к функциональности параметрического ядра таких вызовов стало недостаточно. Все чаще возникала необходимость в обратных вызовах (callbacks), которые и были реализованы в C3D Solver 2019. Обратные вызовы отвечают концепции функционального программирования, когда в расчетный модуль передают не только исходные данные, но и функции, через которые можно запросить те данные, которые удобнее вычислить на стороне приложения или которые нужны в данный момент времени.

Обратные вызовы в C3D Solver 2019

Для полноты документирования параметрического ядра в руководство разработчика C3D добавлена глава S6 c описанием основ по встраиванию и применению трехмерного геометрического решателя C3D Solver.

Что нового в C3D Converter 2019

В число приоритетов развития модуля обмена данными C3D Converter входит передача технологических данных для производства (Product Manufacturing Information – PMI), формирование топологии модели в соответствии со спецификой различных CAD-систем, исправление дефектов топологии, поддержка импорта/экспорта актуальных форматов данных.

В C3D Converter 2019 мы расширили передачу PMI через формат JT. Среди параметров линий-выносок пользователь может задать тип законцовки и направление стрелок, явно указать плоскость размещения элемента. При указании размера выбирается его тип, номинал и отклонения, а также единицы измерения.

Представление PMI в JT

В результате работы с моделями в формате SAT был реализован экспорт моделей, при котором в файлах обменного формата топология формируется с учетом специфики системы, в которую предполагается импортировать эти файлы. Например, цилиндрическая и коническая поверхности в рамках разных топологических моделей описываются по-разному. Подход, применяемый в геометрическом ядре C3D Modeler, предполагает наличие замкнутых параметрических циклов, включающих в себя специальные виды ребер: швов и полюсных ребер. В рамках другого подхода швы в модели отсутствуют, а полюса обрабатываются особым образом; при этом замкнутость циклов не является обязательной. Практика использования обменных форматов, которая ранее была реализована в модуле C3D Converter как безальтернативная, допускает также принудительное разбиение замкнутых граней. В C3D Converter 2019 мы предлагаем возможность передавать замкнутые грани без принудительного разбиения, что лучше адаптировано к особенностям формата SAT.

Полюсы и швы в форматах C3D и SAT

Для обнаружения и исправления дефектов в геометрической модели ядро C3D Modeler имеет штатные средства диагностики и лечения. Они обладают развитым функционалом, но в некоторых случаях могут быть недостаточными при обработке конвертированной модели. В C3D Converter 2019 были добавлены алгоритмы по выявлению и исправлению дефектов топологии, учитывающие специфичность обменных форматов.

Исправление дефектов оболочек

Что нового в C3D Vision 2019

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

В новой версии еще теснее стала интеграция визуализатора с геометрическим ядром C3D Modeler, что позволяет создавать визуальное представление на базе математического представления MbItem, автоматически генерировать сцену на основе геометрической модели MbModel с учетом ссылочной геометрии, а также отслеживать прогресс генерации сцены с помощью ProgressBuild.

Генерация сцены на основе математического представления

К числу наиболее важных новинок относится поддержка многоуровневой визуализации MultiViews. За счет применения одного графа сцены используется одна модель отображения. На каждом уровне (View) рассчитана своя проекция и собственный режим отображения сцены. Работа инструментов для управления сценой, а также механизм выбора объектов, применяется в единственном экземпляре.

C3D Vision MultiViews

C3D Vision 2019 содержит новый класс Pen, определяющий стиль линий. Пользователи могут задавать такие параметры линий, как ширина (Width) и цвет (Color). Визуализатор предлагает следующие типы линий: основная (Solid), осевая (Axial), штриховая (Dashed), штрих-пунктирная с двумя точками (Divide), осевая толстая (AxialFat), штриховая толстая (DashedFat).

Стили линий

В инструменте для работы с выбором геометрических объектов SelectManager стали доступны настройки цветов для примитивов, подсветок и выбранных объектов, настройка физических устройств для выбора, а также фильтрация объектов. Режим Multi-selection позволяет накопить объекты в контейнере при их указании, а об изменении содержимого контейнера просигнализирует ObjectSelectionChanged. Для определения объектов, попавших под курсор, добавлен метод ObjectPickSelection.

Селектирование геометрических объектов

Что еще нового в C3D Toolkit 2019

Среди технологических новшеств, общих для всех компонентов C3D Toolkit, отметим поддержку Microsoft Visual Studio 2019, Clang 6.0, GCC 7.3.

Полный C3D Toolkit 2019 и его отдельные модули доступны для бесплатного тестирования.