Традиционно раз в год компания C3D Labs, дочернее подразделение АСКОН и резидент ИТ-кластера «Сколково», представляет итоги проделанной работы по улучшению и доработке C3D Toolkit. Сегодня это целый набор программных средств для разработчиков инженерного ПО, который включает геометрическое ядро C3D Modeler, параметрическое ядро C3D Solver, модуль обмена данными C3D Converter и модуль визуализации C3D Vision.
Немного фактов
По статистике от момента первого обращения за тестированием C3D до принятия компанией решения о лицензировании ПО проходит от шести месяцев до двух лет. За это время потенциальный заказчик успевает задать команде разработки C3D множество вопросов, касающихся функционала C3D Toolkit и его грамотного использования в своих будущих проектах. Количество входящих запросов в службу технической поддержки тоже ежегодно возрастает (рис. 1). Это непосредственно связано с увеличением числа заказчиков C3D Labs и глубиной внедрения ими технологий C3D в собственные продукты.
Рис. 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системе.
Рис. 2. Удаление отверстий из 3D-модели
При этом можно удалить указанные отверстия или отверстия, радиус которых не превышает определенного значения. Аналогично можно удалить указанные скругления либо скругления, радиус которых меньше или равен заданной величине (рис. 3).
Рис. 3. Поэтапное удаление скруглений
Та же самая функция может быть использована при прямом моделировании, когда необходимо внести изменения в 3Dмодель со скруглениями, например переместить отдельные элементы этой модели в другое место (рис. 4).
Рис. 4. Прямое редактирование модели со скруглениями
Еще одно применение новой функции — это модификация скруглений (рис. 5). Наличие данной операции по достоинству оценят не только CAEразработчики, но и создатели CAD/CAMсистем на основе геометрического ядра C3D Modeler.
Рис. 5. Модификация скруглений
Доработано построение скруглений, поглощающих элементы исходной 3Dмодели (рис. 6). Теперь геометрическое ядро C3D Modeler умеет строить ранее недоступные комбинации скруглений, и может быть использовано в приложениях для проектирования литейных форм различной сложности.
Рис. 6. Построение литейных радиусов
Улучшено построение тел и поверхностей выдавливания. Функция выдавливания «до ближайшего тела» определяет положение тела к эскизу и строит выдавливание таким образом, что исключается направление, в котором отсутствует тело или его отдельные части (рис. 7).
Рис. 7. Выдавливание «до ближайшего тела»
По запросу пользователей C3D был изменен алгоритм построения тела выдавливания «до поверхности». C3D Modeler 2017 успешно обрабатывает ситуации, при которых две поверхности лежат по одну сторону от эскиза (рис. 8а). Дополнительно можно определять различные углы наклона по направлению к заданным поверхностям для каждого из выдавливаемых контуров (рис. 8б).
Рис. 8. Выдавливание до поверхностей, лежащих по одну сторону от эскиза
В предыдущих версиях геометрического ядра C3D Modeler в методах выдавливания однозначно задавалось прямое и обратное направление построений. Поэтому выдавливались контуры только до тех поверхностей, которые лежали в строго указанном направлении. В случаях, когда поверхность лежала по другую сторону от контура выдавливания, C3D Modeler выдавал ошибку. Легко представить себе ситуацию, при которой пользователь САПР, задав изначально корректные данные для построения, делал отступ и получал эквидистантную поверхность, лежащую в другом направлении. Достичь корректного перестроения выдавливания в таком случае было невозможно. В C3D Modeler 2017 эта проблема устранена (рис. 9).
Рис. 9. Выдавливание до поверхности независимо от ее положения по отношению к эскизу
Кстати, если эквидистантная поверхность располагается по обе стороны от эскиза, то возможны различные варианты построения выдавливания. В Центре разработки C3D Labs было решено считать корректным направление, которое согласуется с выдавливанием до поверхности без отступа (зеленая стрелка на рис. 10).
Рис. 10. Выдавливание до поверхности, лежащей по обе стороны от эскиза
В одной операции построения выдавливания теперь можно задействовать сразу несколько замкнутых контуров, которые вдобавок могут пересекаться между собой (рис. 11). Важно, чтобы при этом отсутствовали самопересечения в отдельно взятых контурах.
Рис. 11. Выдавливание нескольких контуров (с пересечениями и без)
В C3D Modeler 2017 заметно переработан метод построения тел по сечениям с несколькими направляющими (рис. 12).
Рис. 12. Построение тел по сечениям с несколькими направляющими
Появилась возможность строить по сечениям с несколькими направляющими тонкостенные тела (рис. 13).
Рис. 13. Построение тонкостенных тел по сечениям с направляющими
Обновленный C3D Modeler умеет решать понастоящему сложные задачи, связанные с расчетом тел по сечениям (рис. 14).
Рис. 14. Построение сложных тел по сечениям с направляющими кривыми
Расширен функционал, работающий с телами из листового материала. В частности, усовершенствована операция сгиба и разгиба обечайки (рис. 15).
Рис. 15. Усовершенствованная операция сгиба и разгиба обечайки
Также при работе с листовыми телами теперь можно создавать сгибы с множественным выбором ребер и обработкой углов между смежными сгибами (рис. 16).
Рис. 16. Сгиб листового тела с множественным выбором ребер
Для удобства построения оболочечной конечноэлементной расчетной сетки по исходной 3Dмодели была разработана совершенно новая операция построения срединной оболочки по заданным парам граней тела (рис. 17). Наборы граней при этом основываются на эквидистантных по отношению друг к другу поверхностях.
Рис. 17. Построение срединной оболочки по наборам пар граней тела
По умолчанию срединная оболочка определяется на равном отстоянии от образующих граней (t=0,5d), но ее можно сместить, указав параметр 0<t<d (рис. 18).
Рис. 18. Варьирование положения срединной оболочки
Доступно несколько опций построения:
- ручной выбор одной пары эквидистантных граней;
- последовательный выбор набора пар эквидистантных граней;
- автоматический поиск и выбор всех подходящих граней тела, которые являются эквидистантными и смещение которых друг относительно друга равно заданному значению d.
Что ещё? В новой версии C3D Modeler можно работать с объемными сетками (рис. 19). Примечательно, что данная функциональность не относится к перечню традиционных для геометрических ядер функций, хотя многие разработчики инженерного ПО часто нуждаются в ней. Пока это только первые шаги C3D Labs в данном направлении. Уже в ближайшее время планируется расширение набора доступных операций для работы с 3Dсетками.
Рис. 19. Построение объемных сеток в C3D Modeler
Разработан и реализован расширенный формат хранения геометрической модели в файле C3D (рис. 20), который позволяет получать информацию о структуре модели, а также ее отдельных объектах без загрузки всей модели из файла. Новый формат совместим с основным форматом C3D и поддерживает чтение из файлов отдельных объектов модели в произвольном порядке.
Рис. 20. Хранение объектов геометрической модели в расширенном формате C3D
На практике это означает, что уже на стадии загрузки 3Dмодели можно определить, какие конкретно объекты необходимо прочитать и отобразить на экране (рис. 21).
Рис. 21. Загрузка геометрических объектов из файла C3D (по наименованию, типу или размеру)
Большое внимание в 20162017 годах было уделено исправлению ошибок в C3D Modeler. Например, исправлена стыковка скруглений с постоянной хордой (рис. 22).
Рис. 22. Стыковка скруглений с постоянной хордой
Доработан алгоритм построения кривых пересечения поверхностей, когда кривая пересечения проходит через полюс поверхности или совпадает с одним из ее опорных объектов. На рис. 23 приведен пример булевой операции вычитания тел, в котором используется данный алгоритм.
Рис. 23. Пример булевой операции, в которой используется доработанный алгоритм построения кривых пересечения поверхностей
Реализован отдельный случай вычисления кривой пересечения двух сфер, касающихся полюсами (рис. 24), благодаря чему достигнуто ускорение более чем в сто раз по сравнению с общим методом.
Рис. 24. Вычисление кривой пересечения двух сфер, касающихся полюсами
В ходе доработок геометрического ядра C3D Modeler была расширена функциональность «обертки» C3D под C#: предусмотрена работа с плоскими проекциями, чтение/запись обменных форматов и поддержка новых структур данных.
По усмотрению пользователя C3D Modeler поиск столкновений элементов 3Dмодели теперь может быть остановлен уже на первом соударении или будет произведен от начала до конца с фиксацией всех имеющихся столкновений в сборке. Появилась возможность управления слиянием ребер и граней в операциях C3D Modeler 2017, возросло быстродействие булевой операции и скорость построения NURBSкривых по большим группам точек.
Набор многопоточных операций геометрического ядра C3D Modeler также был обновлен. В него вошли: построение плоских проекций, триангуляция геометрической модели, расчет массовоцентровочных характеристик. Обнаружены и устранены избыточные блокировки в контейнере атрибутов и в менеджере кэша, который теперь переведен на систему мьютексов. При этом объектное распараллеливание программного кода, отвечающего за создание триангуляционных сеток, дало приращение скорости в четыре раза на рабочей станции с восьмиядерным процессором и операционной системой Windows 10 — против 30%, которые дает классическое распараллеливание кода.
Параметрическое ядро C3D Solver
Параметрическое ядро C3D Solver обеспечивает связь элементов геометрической модели друг с другом путем наложения на них геометрических ограничений — условий, выражаемых с помощью уравнений. Оно работает с трехмерными и двумерными объектами и может быть использовано для управления геометрической моделью с помощью логических и размерных ограничений.
В новой версии C3D Solver существенно переработан программный интерфейс: API теперь основывается на базовом наборе типов и функций, необходимых для постановки задачи геометрических ограничений; в то же время объектноориентированная часть интерфейса остается в качестве надстройки над базовой. Данное улучшение упрощает работу с геометрическими данными, а унификация интерфейса позволяет встраивать параметрическое ядро C3D Solver в приложения с произвольной архитектурой.
Для 3Dмоделей в C3D Solver 2017 появилась возможность регистрировать субобъекты, что согласуется с концепцией «геометрически жестких» кластеров и позволяет корректно организовать работу с большими и сложными сборками 3Dмоделей.
По запросу пользователей C3D был добавлен новый тип данных — скалярная переменная. Несмотря на кажущуюся простоту, данное улучшение потребовало переработать параметрическое ядро C3D Solver. В настоящее время ядро может работать с варьируемыми радиусами различных геометрических объектов (окружностей, цилиндров, торов и сфер), а также умеет масштабировать размеры линейных и угловых паттернов (рис. 25).
Рис. 25. Масштабирование размеров линейных и угловых паттернов
В предыдущей версии 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данных существенно возрос, а представление для передачи текста используется преимущественно графическое (рис. 26).
Рис. 26. Чтение модели с PMI из файла в формате STEP AP242
Разработчиков ПО, которые желают расширить перечень доступных форматов для обмена данными со сторонними приложениями, может заинтересовать новый функционал C3D Converter: импорт и экспорт 3Dмоделей формата JT (ISO 14306). Данный формат ориентирован на быструю загрузку информации из файла, умеет передавать визуальные свойства модели и может быть использован в целом ряде случаев, так как поддерживает два представления геометрии: полигональное и граничное (Brep).
Граничное представление геометрии наиболее полно передает информацию о форме изделия и в явном виде описывает гладкость поверхностей, топологию и т.д. Поддержка данного представления в JT была реализована за счет имеющихся у C3D Labs наработок по конвертации обменных форматов Parasolid. Граничное представление удобно использовать для внесения изменений в 3Dмодель, но есть ряд задач, например визуализация, для которых оно является избыточным. В таких случаях лучше применять полигональное представление геометрии, которое может быть отдельно прочитано из файла с меньшими вычислительными затратами на обработку. Имеющиеся в JT метаданные позволяют выбрать необходимый уровень детализации 3Dмодели с учетом режима ее отображения (рис. 27).
Рис. 27. Отображение модели с разными уровнями детализации
Дополнительно стоит отметить, что разработчики формата JT включили в спецификацию компрессию данных с использованием различных механизмов сжатия, что снимает проблему размера файлов при передаче больших и сложных 3Dмоделей (рис. 28).
Рис. 28. Импорт геометрической модели из файла в формате JT
Другая отличительная особенность формата JT заключается в его блочной структуре. Описание дерева модели и формы каждого из компонентов хранятся в отдельных непрерывно записанных сегментах, смещение которых относительно начала файла может быть получено из записанной таблицы. В начале каждого сегмента или его отдельной части (элемента) хранится заголовок, который содержит размер данных в байтах. Перспективы развития C3D Converter с учетом сильных сторон блочной структуры файлов сегодня активно прорабатываются. В некотором смысле эта работа созвучна той, которая была проделана в ходе рефакторинга формата C3D.
Приложение C3D Viewer
Впервые в истории C3D Labs разработано конечнопользовательское приложение — C3D Viewer, которое позволяет открывать 3Dмодели в распространенных форматах данных и сохранять их в собственный формат C3D (рис. 29). Приложение создано на основе геометрического ядра C3D Modeler, модуля визуализации C3D Vision и модуля обмена данными C3D Converter.
Рис. 29. Графический интерфейс приложения C3D Viewer для просмотра и конвертации 3D-моделей
Возможности C3D Viewer:
- чтение 3Dмоделей в форматах STEP, X_T, X_B, SAT, IGES, STL, VRML, C3D;
- загрузка массива моделей в одну сцену;
- управление ориентацией модели, стандартные виды;
- управление отображением модели, перспективная проекция;
- управление качеством отображения модели (детализацией);
- управление параметрами производительности;
- сохранение моделей в растр с настройкой сцены (форматы JPEG, TIFF, BMP, PNG);
- сохранение моделей в формат C3D.
Приложение C3D Viewer будет полезно при подготовке различных материалов на основе 3Dмоделей специалистами по рекламе и маркетингу, а также может быть задействовано в проектах, требующих визуальной оценки качества компьютерного проектирования изделий и анализа внутренней структуры 3Dмоделей, без создания и редактирования трехмерной геометрии.
Приведенный в статье перечень доработок и улучшений C3D Toolkit не является исчерпывающим. Стоит добавить, что «Руководство пользователя C3D» было дополнено новыми главами и разделами, а каталог 3Dмоделей — новыми примерами.
***
Если у вас возникли какието вопросы, вы можете задать их по адресу: info@c3dlabs.com. Скачать C3D Viewer можно на официальном сайте компании www.c3dlabs.com. Приложение распространяется БЕСПЛАТНО без какихлибо ограничений в использовании.