Кремень КД Реклама
Кремень КМ Реклама

Российское геометрическое ядро RGK (часть 1)

T-FLEX CAD
Идет загрузка
Загрузка
28.07.2023
3625
21
Разное

Подпишитесь на автора

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

8

Российское геометрическое ядро 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 (часть 1)

Сергей Козлов и Леонид Баранов представляют геометрическое ядро RGK

Геометрическое ядро RGK нашло своё применение в проекте «Гербарий», который компания «Топ Системы» выполняла по заказу Фонда перспективных исследований (ФПИ) в 2015-2016 годах, а также в проекте СПЖЦ «Цифровое предприятие» («САРУС») — проекте, первый этап которого завершился совсем недавно. В разработке этого проекта компания «Топ Системы» приняла самое активное участие.

В настоящее время компания «Топ Системы» получила все возможности по самостоятельному развитию и выводу на рынок RGK в качестве коммерческого продукта. Продукт будет поставляться сразу для нескольких платформ, включая различные версии Linux, в том числе отечественные сертифицированные версии. Поставка продукта планируется в виде библиотеки классов для использования на языке программирования C++, а также всех компонентов, необходимых для удобного применения в конечных системах. Комплект инструментов разработчика (SDK) включает в себя:

  • исполняемые модули;
  • библиотечные и заголовочные файлы, необходимые для сборки конечного приложения;
  • файл электронного руководства в виде гипертекстовой справки;
  • набор примеров в исходных кодах;
  • исполняемую программу RGKWorkshop — тестовую и отладочную оболочку, являющуюся одновременно и средством анализа, и средством отладки геометрических моделей;
  • описание формата хранения моделей RGK - RGK_XML.

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

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

Геометрическое ядро RGK обеспечивает моделирование геометрических объектов по классической схеме граничного представления (B-Rep) с «точной» геометрией – с использованием аналитического представления кривых и поверхностей разных типов. Такое представление позволяет моделировать объекты с высокой точностью, одновременно обеспечивая возможность работы с толерантной геометрией, когда вместе с объектами модели хранится точность, с которой они были рассчитаны. Параметры точности толерантной геометрии применяются при всех вычислениях, выполняемых в коде ядра. Данная особенность обеспечивает возможности по сохранению целостности геометрической модели даже для очень сложных геометрических форм и невысокой точности исходных данных.

Геометрическое ядро обеспечивает выполнение следующих основных функций:

  • хранение геометрической модели (геометрии/топологии тел, поверхностей, кривых);
  • создание и редактирование геометрической модели;
  • управление идентификацией и атрибутами геометрической модели;
  • контроль целостности и качества геометрической модели;
  • измерение и анализ геометрической модели;
  • построение плоскогранных представлений (тесселяции) модели с целью визуализации или подготовки данных для генерации расчётных (CAE) сеток;
  • генерация проекций и видов.

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

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

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

Например, в генераторе «по траектории» и «по сечениям» поддерживается ряд довольно продвинутых опций. Возможно задание законов кручения и масштабирования протягиваемого контура как отдельно, так и в комбинации (рис. 1), а также задание нескольких траекторий и различных способов их синхронизации.

Российское геометрическое ядро RGK (часть 1)Рис. 1. Протягивание по траектории с масштабированием и/или кручением

Кроме того, поддерживается обработка изломов на траектории движения (рис. 2,3).

Российское геометрическое ядро RGK (часть 1)

Рис.2. Обработка изломов при протягивании по траектории

Российское геометрическое ядро RGK (часть 1)

Рис.3. Протягивание по траектории по трём направляющим

Продолжение в следующем материале. 

Подпишитесь на автора

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

8
Комментарии к статье