isicad.ru :: портал САПР, PLM и ERP :: версия для печати

Статьи

19 мая 2017

C3D Labs представляет C3D Toolkit 2017

Актуальные технологии для разработчиков инженерного ПО

Аркадий Камнев, менеджер по маркетингу в компании C3D Labs

Аркадий Камнев

От редакции isicad.ru: Вчера и сегодня в Коломне проходит C3Days 2017 — ставшая ежегодной двухдневная встреча с разработчиками геометрического ядра C3D. В связи с этим особенно уместной и своевременной представляется предлагаемая вам подробная характеристика новой версии компонентов ядра C3D, которые в совокупности вполне обоснованно теперь трактуются как toolkit или даже платформа для разработчиков САПР.
Традиционно раз в год компания C3D Labs, дочернее подразделение АСКОН и резидент ИТ-кластера Сколково, представляет итоги проделанной работы по улучшению и доработке C3D Toolkit. Сегодня это целый набор программных средств для разработчиков инженерного ПО, который включает в себя геометрическое ядро C3D Modeler, параметрическое ядро C3D Solver, модуль обмена данными C3D Converter и модуль визуализации C3D Vision.

Немного фактов

По статистике от момента первого обращения за тестированием C3D до принятия компанией решения о лицензировании ПО проходит от полугода до двух лет. За это время потенциальный заказчик успевает задать множество вопросов команде разработки C3D по функционалу C3D Toolkit и его грамотному использованию в своих будущих проектах. Количество входящих запросов в службу технической поддержки тоже ежегодно растёт (рис. 1). Это непосредственно связано с увеличением числа заказчиков C3D Labs и глубиной внедрения ими технологий C3D в собственные продукты.
C3D Toolkit 2017

Рисунок 1. Входящие запросы в техподдержку C3D Labs в период с 2013 по 2016 гг.

Полученная в общении с пользователями информация и её последующий анализ являются главными драйверами при развитии компонентов C3D. Раньше в этом процессе преимущественно участвовала компания АСКОН с программным обеспечением КОМПАС-3D, КОМПАС-График и КОМПАС-Строитель. Теперь пищу для размышлений C3D Labs дают 25 организаций и высших учебных заведений из России, США, Европы и Азии.

Стоит отметить, что сотрудники C3D Labs ежегодно посещают промышленные выставки и конференции разработчиков ПО, чтобы всегда оставаться в курсе актуальных событий отрасли и развивать технологии в правильном направлении. В прошлом году делегация C3D Labs была представлена на всемирно известных выставках Hannover Messe 2016 (Ганновер, Германия) и SIMTOS (Сеул, Корея), а также на конференциях Альянса по открытому проектированию (Прага, Чехия) и Intel (Москва, Россия). В апреле 2017 года компания провела собственную конференцию в США в рамках Конгресса о будущем инженерного программного обеспечения (COFES).

Тесное взаимодействие с пользователями C3D Toolkit и рынком САПР позволяет C3D Labs создавать по-настоящему качественные и удобные продукты для разработчиков 3D-приложений. Технические подробности произведенных за год работ представляем далее.

Геометрическое ядро C3D Modeler

Геометрическое ядро C3D Modeler выполняет построение геометрической модели и вычисление геометрических характеристик моделируемого объекта. В новой версии C3D Modeler появилась функциональность для удаления из модели отверстий и скруглений (рис. 2). Это может быть полезно для упрощения 3D-модели, которая подготавливается к дальнейшему расчёту в CAE-системе.
C3D Toolkit 2017

Рисунок 2. Удаление отверстий из 3D-модели

При этом можно удалить указанные отверстия или отверстия, радиус которых не превосходит определённого значения. Аналогично можно удалить указанные скругления либо скругления, радиус которых меньше или равен заданной величине (рис. 3).
C3D Toolkit 2017

Рисунок 3. Поэтапное удаление скруглений

Та же самая функция может быть использована при прямом моделировании, когда необходимо внести изменения в 3D-модель со скруглениями, например, переместить отдельные элементы этой модели в другое место (рис. 4).
C3D Toolkit 2017

Рисунок 4. Прямое редактирование модели со скруглениями

Ещё одно применение новой функции – это модификация скруглений (рис. 5). Наличие данной операции по достоинству оценят уже не только CAE-разработчики, но и создатели CAD/CAM-систем на основе геометрического ядра C3D Modeler.
C3D Toolkit 2017

Рисунок 5. Модификация скруглений

Доработано построение скруглений, поглощающих элементы исходной 3D-модели (рис. 6). Теперь геометрическое ядро C3D Modeler умеет строить ранее недоступные комбинации скруглений, и может быть использовано в приложениях для проектирования литейных форм различной сложности.
C3D Toolkit 2017

Рисунок 6. Построение литейных радиусов

Улучшено построение тел и поверхностей выдавливания. Функция выдавливания «до ближайшего тела» определяет положение тела к эскизу и строит выдавливание таким образом, что исключается направление, в котором отсутствует тело или его отдельные части (рис. 7).
C3D Toolkit 2017

Рисунок 7. Выдавливание «до ближайшего тела»

По запросу пользователей C3D был изменён алгоритм построения тела выдавливания «до поверхности». C3D Modeler 2017 успешно обрабатывает ситуации, при которых две поверхности лежат по одну сторону от эскиза (рис. 8). Дополнительно можно определять различные углы наклона по направлению к заданным поверхностям для каждого из выдавливаемых контуров (рис. 9).
C3D Toolkit 2017 C3D Toolkit 2017

Рисунки 8 и 9. Выдавливание до поверхностей, лежащих по одну сторону от эскиза

В предыдущих версиях геометрического ядра C3D Modeler в методах выдавливания однозначно задавалось прямое и обратное направление построений. Поэтому выдавливались контуры только до тех поверхностей, которые лежали в строго указанном направлении. В случаях, когда поверхность лежала по другую сторону от контура выдавливания, C3D Modeler выдавал ошибку. Легко представить себе ситуацию, при которой пользователь САПР, задав изначально корректные данные для построения, делал отступ и получал эквидистантную поверхность, лежащую в другом направлении. Достичь корректного перестроения выдавливания в таком случае было невозможно. В C3D Modeler 2017 эта проблема устранена (рис. 10).
C3D Toolkit 2017

Рисунок 10. Выдавливание до поверхности независимо от её положения по отношению к эскизу

Кстати, если эквидистантная поверхность располагается по обе стороны от эскиза, то возможны различные варианты построения выдавливания. В Центре разработки C3D Labs было решено считать корректным направление, которое согласуется с выдавливанием до поверхности без отступа (зеленая стрелка на рисунке 11).
C3D Toolkit 2017

Рисунок 11. Выдавливание до поверхности, лежащей по обе стороны от эскиза

В одной операции построения выдавливания теперь можно задействовать сразу несколько замкнутых контуров, которые вдобавок могут пересекаться между собой (рис. 12). Важно, чтобы при этом отсутствовали самопересечения в отдельно взятых контурах.
C3D Toolkit 2017

Рисунок 12. Выдавливание нескольких контуров (с пересечениями и без)

В C3D Modeler 2017 заметно переработан метод построения тел по сечениям с несколькими направляющими (рис. 13).
C3D Toolkit 2017

Рисунок 13. Построение тел по сечениям с несколькими направляющими

Появилась возможность строить по сечениям с несколькими направляющими тонкостенные тела (рис. 14).
C3D Toolkit 2017

Рисунок 14. Построение тонкостенных тел по сечениям с направляющими

Обновленный C3D Modeler умеет решать по-настоящему сложные задачи, связанные с расчётом тел по сечениям (рис. 15).
C3D Toolkit 2017

Рисунок 15. Построение сложных тел по сечениям с направляющими кривыми

Расширен функционал, работающий с телами из листового материала. В частности, усовершенствована операция сгиба и разгиба обечайки (рис. 16).
C3D Toolkit 2017

Рисунок 16. Усовершенствованная операция сгиба и разгиба обечайки

Также при работе с листовыми телами теперь можно создавать сгибы с множественным выбором рёбер и обработкой углов между смежными сгибами (рис. 17).
C3D Toolkit 2017

Рисунок 17. Сгиб листового тела с множественным выбором рёбер

Для удобства построения оболочечной конечно-элементной расчётной сетки по исходной 3D-модели была разработана совершенно новая операция построения срединной оболочки по заданным парам граней тела (рис. 18). Наборы граней при этом основываются на эквидистантных по отношению друг к другу поверхностях.
C3D Toolkit 2017

Рисунок 18. Построение срединной оболочки по наборам пар граней тела

По умолчанию срединная оболочка определяется на равном отстоянии от образующих граней (t=0.5d), но её можно сместить, указав параметр 0<t<d (рис. 19).

Доступно несколько опций построения:

  • ручной выбор одной пары эквидистантных граней;
  • последовательный выбор набора пар эквидистантных граней;
  • автоматический поиск и выбор всех подходящих граней тела, которые являются эквидистантными и смещение которых друг относительно друга равно заданному значению d.
C3D Toolkit 2017

Рисунок 19. Варьирование положения срединной оболочки

Что ещё? В новой версии C3D Modeler можно работать с объёмными сетками (рис. 20). Примечательно, что данная функциональность не относится к перечню традиционных для геометрических ядер функций, хотя многие разработчики инженерного ПО часто нуждаются в ней. Пока это только первые шаги C3D Labs в данном направлении. Уже в ближайшее время планируется расширение набора доступных операций для работы с 3D-сетками.
C3D Toolkit 2017

Рисунок 20. Построение объёмных сеток в C3D Modeler

Разработан и реализован расширенный формат хранения геометрической модели в файле C3D (рис. 21), который позволяет получать информацию о структуре модели, а также её отдельных объектах без загрузки всей модели из файла. Новый формат совместим с основным форматом C3D и поддерживает чтение из файлов отдельных объектов модели в произвольном порядке.
C3D Toolkit 2017

Рисунок 21. Хранение объектов геометрической модели в расширенном формате C3D

На практике это означает, что уже на стадии загрузки 3D-модели можно определить, какие конкретно объекты необходимо прочитать и отобразить на экране (рис. 22).
C3D Toolkit 2017

Рисунок 22. Загрузка геометрических объектов из файла C3D (по наименованию, типу или размеру)

Большое внимание в 2016-2017 гг. было уделено исправлению ошибок в C3D Modeler. Например, исправлена стыковка скруглений с постоянной хордой (рис. 23).
C3D Toolkit 2017

Рисунок 23. Стыковка скруглений с постоянной хордой

Доработан алгоритм построения кривых пересечения поверхностей, когда кривая пересечения проходит через полюс поверхности или совпадает с одним из ее опорных объектов. На рисунке 24 приведён пример булевой операции вычитания тел, в котором используется данный алгоритм.
C3D Toolkit 2017

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

Реализован отдельный случай вычисления кривой пересечения двух сфер, касающихся полюсами (рис. 25), благодаря чему достигнуто ускорение более чем в 100 раз по сравнению с общим методом.
C3D Toolkit 2017

Рисунок 25. Вычисление кривой пересечения двух сфер, совпадающих полюсами

В ходе доработок геометрического ядра C3D Modeler была расширена функциональность «обёртки» C3D под C#: появились работа с плоскими проекциями, чтение/запись обменных форматов и поддержка новых структур данных.

По усмотрению пользователя C3D Modeler, поиск столкновений элементов 3D-модели теперь может быть остановлен уже на первом соударении или будет произведён от начала и до конца с фиксацией всех имеющихся столкновений в сборке. Появилось управление слиянием рёбер и граней в операциях C3D Modeler 2017, возросло быстродействие булевой операции и скорость построения NURBS-кривых по большим группам точек.

Набор многопоточных операций геометрического ядра C3D Modeler также был обновлён. В него вошли: построение плоских проекций, триангуляция геометрической модели, расчёт массово-центровочных характеристик. Обнаружены и устранены избыточные блокировки в контейнере атрибутов и в менеджере кэша, который теперь переведён на систему мьютексов. При этом объектное распараллеливание программного кода, отвечающего за создание триангуляционных сеток, дало приращение скорости в 4 раза на рабочей станции с 8-ядерным процессором и операционной системой Windows 10 – против 30%, которые даёт классическое распараллеливание кода.

Параметрическое ядро C3D Solver

Параметрическое ядро C3D Solver обеспечивает связь элементов геометрической модели друг с другом путем наложения на них геометрических ограничений - условий, выражаемых с помощью уравнений. Оно работает с трехмерными и двумерными объектами и может быть использовано для управления геометрической моделью с помощью логических и размерных ограничений.

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

Для 3D-моделей в C3D Solver 2017 появилась возможность регистрировать субобъекты, что согласуется с концепцией «геометрически жёстких» кластеров и позволяет корректно организовать работу с большими и сложными сборками 3D-моделей.

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

C3D Toolkit 2017

Рисунок 26. Масштабирование размеров линейных и угловых паттернов

В предыдущей версии C3D Solver впервые появилось журналирование API-функций 2D-решателя при задании геометрических ограничений. Теперь в журнале также фиксируются вызовы 3D-решателя, что позволило реализовать комплексную систему автоматизированного тестирования C3D Solver 2017 на основе журналов API и повысить качество взаимодействия с пользователями параметрического ядра C3D Solver в рамках технической поддержки C3D Labs.

Одна из главных тенденций ИТ-отрасли последних лет – это миграция технологий в облака. Мы учли популярный тренд в своей работе и создали новый продукт – C3D Solver для JavaScript. Уникальность данного решения состоит в том, что программное обеспечение, написанное на его основе, может не только функционировать в браузере, но, что самое ценное, способно производить геометрические расчёты на стороне клиента. C3D Solver – первое параметрическое ядро, которое работает в браузере без необходимости вычислений на стороне сервера!

Модуль обмена данными C3D Converter

Модуль обмена данными C3D Converter используется разработчиками инженерного ПО для чтения и записи 3D-моделей в такие форматы данных, как STEP, IGES, X_T, X_B, SAT, JT, STL, VRML. В новой версии C3D Converter появилась поддержка STEP AP242. По замыслу комитета ISO, данный протокол должен со временем заменить двух других его предшественников – AP203 и AP214. Обновленный формат STEP претерпел существенные изменения преимущественно в той области, которая находится вне функционала геометрического ядра C3D Modeler. Наибольших изменений в AP242 коснулась работа с информацией о производстве изделия (PMI). Существенно доработаны способы передачи аннотации, которая включает в себя технические требования, размеры и обозначения.

Команда разработчиков C3D Converter внимательно отслеживает практическое применение обменного формата STEP. Анализ файлов показывает, что объём передаваемых PMI-данных существенно возрос, а представление для передачи текста используется преимущественно графическое (рис. 27).

C3D Toolkit 2017

Рисунок 27. Чтение модели с PMI из файла в формате STEP AP242

Разработчиков ПО, которые желают расширить перечень доступных форматов для обмена данными со сторонними приложениями, может заинтересовать новый функционал C3D Converter: импорт и экспорт 3D-моделей формата JT (ISO 14306). Данный формат ориентирован на быструю загрузку информации из файла, умеет передавать визуальные свойства модели и может быть использован в целом ряде случаев, так как поддерживает два представления геометрии: полигональное и граничное (B-rep).

Граничное представление геометрии наиболее полно передаёт информацию о форме изделия и в явном виде описывает гладкость поверхностей, топологию и т.д. Поддержка данного представления в JT была реализована за счёт имеющихся у C3D Labs наработок по конвертации обменных форматов Parasolid. Граничное представление удобно использовать для внесения изменений в 3D-модель, но есть ряд задач, например визуализация, для которых оно является избыточным. В таких случаях лучше использовать полигональное представление геометрии, которое может быть отдельно прочитано из файла с меньшими вычислительными затратами на обработку. Имеющиеся в JT метаданные позволяют выбрать необходимый уровень детализации 3D-модели с учётом режима её отображения (рис. 28).

C3D Toolkit 2017

Рисунок 28. Отображение модели с разными уровнями детализации

Дополнительно стоит отметить, что разработчики формата JT включили в спецификацию компрессию данных с использованием различных механизмов сжатия, что снимает проблему размера файлов при передаче больших и сложных 3D-моделей.
C3D Toolkit 2017

Рисунок 29. Импорт геометрической модели из файла в формате JT

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

Приложение C3D Viewer

Впервые в истории C3D Labs разработано конечно-пользовательское приложение – C3D Viewer, которое позволяет открывать 3D-модели в распространенных форматах данных и сохранять их в собственный формат C3D. Приложение создано на основе геометрического ядра C3D Modeler, модуля визуализации C3D Vision и модуля обмена данными C3D Converter.

Возможности C3D Viewer:

  • чтение 3D-моделей в форматах STEP, X_T, X_B, SAT, IGES, STL, VRML, C3D;
  • загрузка массива моделей в одну сцену;
  • управление ориентацией модели, стандартные виды;
  • управление отображением модели, перспективная проекция;
  • управление качеством отображения модели (детализацией);
  • управление параметрами производительности;
  • сохранение моделей в растр с настройкой сцены (форматы JPEG, TIFF, BMP, PNG);
  • сохранение моделей в формат C3D.
C3D Toolkit 2017

Рисунок 30. Графический интерфейс приложения C3D Viewer для просмотра и конвертации 3D-моделей

Приложение C3D Viewer будет полезно при подготовке различных материалов на основе 3D-моделей специалистами по рекламе и маркетингу, а также может быть задействовано в проектах, требующих визуальной оценки качества компьютерного проектирования изделий и анализа внутренней структуры 3D-моделей, без создания и редактирования трёхмерной геометрии.

Приведённый в статье перечень доработок и улучшений C3D Toolkit не является исчерпывающим. Стоит добавить, что «Руководство пользователя C3D» было дополнено новыми главами и разделами, а каталог 3D-моделей – новыми примерами.

Если у вас возникли какие-то вопросы, то вы можете задать их по адресу: info@c3dlabs.com

Скачать C3D Viewer можно на официальном сайте компании

Приложение распространяется БЕСПЛАТНО без каких-либо ограничений в использовании.

Все права защищены. © 2004-2024 Группа компаний «ЛЕДАС»

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