Российское геометрическое ядро RGK (часть 1)
На прошедшем 24 мая форуме компании «Топ Системы» одна из основных сессий была посвящена представлению продукта компании «Топ Системы» - геометрического ядра RGK. Сессию вели директор по разработке компании Сергей Козлов и директор по развитию технологий 3D моделирования Леонид Баранов. Он, в частности, является руководителем группы разработки геометрического ядра RGK.
В первой части секции Сергей Козлов рассказал об истории создания и текущем статусе геометрического ядра.
Разработка геометрического ядра RGK, по сути, началась в далёком 1984 году, когда в Московском станкоинструментальном институте (позже МГТУ «Станкин») была организована группа по исследованиям в области геометрического моделирования и разработке 3D ядра под руководством доцентов А.В. Рыбакова и В.Ю. Судзиловского. Именно с того момента Леонид Баранов начал заниматься этой работой в качестве математика-программиста, а позже, после завершения учёбы в Станкине, возглавил эту группу. Результат работы оказался существенным. В 1995 году была выпущена версия T-FLEX CAD, в которой функциональность 3D моделирования обеспечивалась собственным геометрическим ядром. Ресурсов для ведения столь наукоёмкой и дорогостоящей разработки у компании на тот момент было недостаточно. Одновременно с этим представилась возможность лицензировать геометрическое ядро ACIS, а потом и Parasolid. Так, в 1996 году была выпущена 6-я версия T-FLEX CAD на геометрическом ядре ACIS, а в 1998-м году вышла версия 7 на ядре Parasolid. Таким образом, разработчики T-FLEX CAD получили возможность поработать со всеми основными геометрическими ядрами и оценить их архитектуру и особенности.
В 2011 году МГТУ «Станкин» получил контракт на разработку российского геометрического ядра в рамках развития программы отечественного станкостроения. В качестве задела этой работы были взяты наработки компании «Топ Системы». С целью обеспечения наиболее современного уровня решения алгоритмы ядра были практически полностью модернизированы, но основные подходы к реализации сохранены. По завершении работы по контракту в 2013 году компания «Топ Системы» не остановила разработку RGK (именно в то время получил название этот продукт), а продолжила его развитие.
Сергей Козлов и Леонид Баранов представляют геометрическое ядро RGK
Геометрическое ядро RGK нашло своё применение в проекте «Гербарий», который компания «Топ Системы» выполняла по заказу Фонда перспективных исследований (ФПИ) в 2015-2016 годах, а также в проекте СПЖЦ «Цифровое предприятие» («САРУС») — проекте, первый этап которого завершился совсем недавно. В разработке этого проекта компания «Топ Системы» приняла самое активное участие.
В настоящее время компания «Топ Системы» получила все возможности по самостоятельному развитию и выводу на рынок RGK в качестве коммерческого продукта. Продукт будет поставляться сразу для нескольких платформ, включая различные версии Linux, в том числе отечественные сертифицированные версии. Поставка продукта планируется в виде библиотеки классов для использования на языке программирования C++, а также всех компонентов, необходимых для удобного применения в конечных системах. Комплект инструментов разработчика (SDK) включает в себя:
- исполняемые модули;
- библиотечные и заголовочные файлы, необходимые для сборки конечного приложения;
- файл электронного руководства в виде гипертекстовой справки;
- набор примеров в исходных кодах;
- исполняемую программу RGKWorkshop — тестовую и отладочную оболочку, являющуюся одновременно и средством анализа, и средством отладки геометрических моделей;
- описание формата хранения моделей RGK - RGK_XML.
Отдельно стоит отметить, что формат хранения данных RGK_XML является открытым и специфицированным. Он имеет понятную структуру, соответствующую общим принципам организации модели данных RGK. Формат может быть использован с целью стандартизации для обеспечения представления точной геометрической модели данных объектов.
Вторую часть секции вёл Леонид Баранов. Он рассказал о принципах построения модели данных геометрического ядра RGK, его архитектурных особенностях и наиболее сложных и интересных задачах, которые приходится решать разработчикам модуля. Рассказ сопровождался большим количеством иллюстраций и демонстрацией сравнительных тестов.
Геометрическое ядро RGK обеспечивает моделирование геометрических объектов по классической схеме граничного представления (B-Rep) с «точной» геометрией – с использованием аналитического представления кривых и поверхностей разных типов. Такое представление позволяет моделировать объекты с высокой точностью, одновременно обеспечивая возможность работы с толерантной геометрией, когда вместе с объектами модели хранится точность, с которой они были рассчитаны. Параметры точности толерантной геометрии применяются при всех вычислениях, выполняемых в коде ядра. Данная особенность обеспечивает возможности по сохранению целостности геометрической модели даже для очень сложных геометрических форм и невысокой точности исходных данных.
Геометрическое ядро обеспечивает выполнение следующих основных функций:
- хранение геометрической модели (геометрии/топологии тел, поверхностей, кривых);
- создание и редактирование геометрической модели;
- управление идентификацией и атрибутами геометрической модели;
- контроль целостности и качества геометрической модели;
- измерение и анализ геометрической модели;
- построение плоскогранных представлений (тесселяции) модели с целью визуализации или подготовки данных для генерации расчётных (CAE) сеток;
- генерация проекций и видов.
Классы геометрического ядра RGK, доступные для использования в конечных приложениях, обеспечивают как низкоуровневую функциональность для создания и редактирования геометрии, так и высокоуровневые специализированные функции, которые в ядре называются генераторами. Так, в составе библиотеки классов ядра имеются следующие генераторы:
- примитивы (призма, тор, сфера, цилиндр, конус);
- кинематические операции (вытягивание, вращение, по траектории, по сечениям);
- булевы операции (глобальные, локальные, селективные);
- операции сглаживания различных типов (фаски, рёберное сглаживания, трёхгранное сглаживание, сглаживание граней);
- операция оболочки/тела смещения/придания толщины;
- операция уклона граней;
- операции удаления/замены/трансформации граней (так называемые операции прямого моделирования);
- операции сшивки/разрезания;
- операции копирования/трансформации тел, в том числе с использованием различных масштабов по осям;
- ряд низкоуровневых операций с телами, а также множество операций с кривыми.
Функциональность многих генераторов в RGK весьма развитая. Остановимся на описании особенностей некоторых из операций, поддерживаемых ядром.
Например, в генераторе «по траектории» и «по сечениям» поддерживается ряд довольно продвинутых опций. Возможно задание законов кручения и масштабирования протягиваемого контура как отдельно, так и в комбинации (рис. 1), а также задание нескольких траекторий и различных способов их синхронизации.
Рис. 1. Протягивание по траектории с масштабированием и/или кручением
Кроме того, поддерживается обработка изломов на траектории движения (рис. 2,3).
Рис.2. Обработка изломов при протягивании по траектории
Рис.3. Протягивание по траектории по трём направляющим
Продолжение в следующем материале.
Еще больше интересных статей
Резьбовые соединения в 3D моделях
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Использование и настройка WiFi Sdcard в 3D принтере.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Вечер пятницы в стиле Кэпа
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
Очень интересно посыпались рол...
У меня посудомока DEXP она же....
Спасибо за файлы с опозданием....
Добрый вечер! Подскажите пожал...
Всех приветствую, у меня 3д пр...
Печатаю на принтере Ender 3 v3...
ellego