17.05.2017

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

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

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

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

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


Входящие запросы в техподдержку 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 появилась функциональность для удаления из модели отверстий и скруглений. Это может быть полезно для упрощения 3D-модели, которая подготавливается к дальнейшему расчёту в CAE-системе.


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


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


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


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


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


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


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


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


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


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


Появилась возможность строить по сечениям с несколькими направляющими тонкостенные тела.


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


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


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


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


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

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


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


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


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

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


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

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


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


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


В ходе доработок геометрического ядра 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. В настоящее время ядро может работать с варьируемыми радиусами различных геометрических объектов (окружностей, цилиндров, торов и сфер), а также умеет масштабировать размеры линейных и угловых паттернов.


В предыдущей версии 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-данных существенно возрос, а представление для передачи текста используется преимущественно графическое.


Чтение модели с PMI из файла в формате STEP AP242

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

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


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

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


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

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

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

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

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


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

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

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

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

Бесплатно скачать C3D Viewer

Взять C3D Toolkit на тестирование


Google+