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

Статьи

19 мая 2013

Российское 3D-ядро. ЧАСТЬ I: архитектура и приложения

Леонид Баранов, Сергей Козлов, Дмитрий Сёмин, Николай Снытников

Леонид Баранов Сергей Козлов Дмитрий Сёмин Николай Снытников

От редакции isicad.ru: Это — первая часть большой статьи, представляющей текущие результаты выполнения проекта построения Российского геометрического ядра (RGK). Во второй части последовательно описан набор инструментов для решения задач современного геометрического моделирования, представлены средства поддержки решения стандартизованных классов задач САПР, приведены краткие сведения о пользовании системой, а также даны некоторые ссылки.

Авторы публикации — представители комплексного коллектива архитекторов и разработчиков проекта RGK — входят в число ведущих отечественных специалистов в области инженерного программного обеспечения; кандидаты технических и физико-математических наук.

Геометрическое ядро трёхмерного моделирования — это программная компонента, предназначенная для использования в качестве базового инструментального средства при разработке программных систем, связанных с точным компьютерным моделированием физических трёхмерных объектов. Конечными продуктами, которые могут быть разработаны на основе такого решения, являются системы автоматизированного проектирования (CAD), подготовки производства (CAM), инженерного анализа (CAE) и многих других приложений инженерного программного обеспечения. Во всех таких системах требуется точный и высокопроизводительный инструмент для работы с моделью — формирования данных, хранения, восстановления, средства анализа, специализированные расчёты и многое другое.

Как показывает история отрасли, создание промышленного ядра геометрического моделирования — одна из самых трудных задач в разработке инженерного программного обеспечения. Решение такой задачи требует сочетания высоких компетенций в математике, системной архитектуре, конструировании программ, проблематике САПР и др. Как показывают обзоры [1], [2], к настоящему времени на мировом рынке известны лишь несколько поставщиков промышленных геометрических ядер, от которых коммерчески (и не только коммерчески) зависит огромная часть рынка САПР и смежных продуктов.

В этой статье охарактеризовано геометрическое ядро RGK, созданное в рамках проекта, который выполняется по заказу Министерства промышленности и торговли РФ для построения одной из важных составляющих отечественной независимой высокотехнологичной базы. Проект выполняется под эгидой Московского государственного технологического университета «СТАНКИН» комплексным коллективом российских разработчиков с участием ряда ведущих российских команд и специалистов. Дополнительные сведения об организации проекта и его участниках можно найти в публикациях [3-7]. В настоящее время ядро RGK, разработка которого была начата в 2011 году, находится в стадии интенсивной внутренней комплексной апробации продукта. Одновременно заказчиком рассматриваются и решаются вопросы сопровождения, внедрения, лицензирования, развития и построения приложений.


Кратко охарактеризуем структуру данной статьи.

Все наиболее распространённые сегодня геометрические ядра были созданы 15-30 лет назад, и, хотя на протяжении всего этого периода они развивались и отлаживались, их программная архитектура и реализация не могли быть в полной мере подкреплены постоянно появляющимися новыми возможностями программных и аппаратных технологий. Разработка ядра RGK была начата в конце 2011 года, и мы постарались при реализации проекта использовать как основные известные современные эффективные решения, так и ряд новых механизмов и возможностей: они представлены в первом разделе нашей статьи.

Геометрическое ядро по своей природе является технологической компонентой, на основе интеграции с которой строятся многочисленные и разнообразные приложения. Принципы и реализация интеграции ядра RGK с приложениями описаны в разделе II.

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

Граница между базовой функциональностью ядра (востребованной большинством приложений) и некоторой оболочкой ядра, поддерживающей ряд специальных, но устойчивых классов приложений и процедур, является условной. Некоторые производители ядер предпочитают настаивать на том, что такая оболочка (например, включающая геометрический решатель, конвертер данных и др.) является неотъемлемой частью самого ядра, другие считают конфигурируемость поставки преимуществом своего решения. Так или иначе, поддержка распространённых устойчивых классов приложений типовых технологических операций обязана ассоциироваться с современным развитым геометрическим ядром. Соответствующие возможности RGK описаны в разделе IV.

Как уже отмечалось, пользователями геометрических ядер являются разработчики прикладных систем, а не массовые (конечные) потребители. В связи с этим, ядра имеет специфическую комплектацию поставки. Комплектация поставки RGK описана в разделе V.

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

I. Современная архитектура, инновационные решения

В ядре RGK использован хорошо зарекомендовавший себя подход к описанию модели методами «B-Rep» (Boundary Representation, граничное представление). Для описания параметров модели используются геометрические объекты, а также описание топологии взаимосвязи между геометрическими объектами (точки, кривые, поверхности). В целях оптимизации скорости работы функций ядра, а также для обеспечения точности хранения и расчётов модели используются как общие типы кривых и поверхностей (плоскости, отрезки, кривые и поверхности второго порядка и т.д.), так и NURBS (кривые и поверхности). Для решения прикладных задач, возникающих при выполнении различных сложных операций, наряду с традиционными типами геометрических объектов, в ядре используются специальные типы кривых и поверхностей (например, поверхности затягивания N-сторонних областей, поверхности сглаживания поверхностей в сложных случаях и т.д.). Такие комбинированные решения во многих случаях позволяют ускорить выполнение функций ядра, а также повысить их точность.

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

Охарактеризуем более подробно некоторые решения, которые, в полной мере, по-видимому, впервые были реализованы в проекте RGK, а также ряд решений, которые относятся к лучшим современным мировым практикам.

Многопоточность

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

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

Кроме автоматического распараллеливания операций внутри функций ядра, пользователь-разработчик имеет все возможности для параллельного выполнения операций, запуская параллельно операции над телами. В ядре имеется полный набор инструмента для блокировки от одновременного изменения из разных потоков, а также диагностики возможных конфликтных ситуаций. Функции ядра могут выполняться параллельно, если они изменяют разные тела или работают в разных сессиях (документах). Возможности внутреннего и внешнего распараллеливания ядра, как и ожидалось, дают серьёзную прибавку производительности.

Генерация 300 000 разных простых объектов в однопоточном и многопоточном режимах.
Слева: запущен один поток, время генерации 40.9 секунд.
Справа: запущено 6 потоков, время генерации 8.36 секунд.

Использование вычислений на GPU

Одним из ресурсов для повышения производительности вычислений для современных систем является также использование устройств GPU (Graphics Processing Unit, графический процессор). Графические процессоры современных персональных компьютеров, дают на некоторых классах задач значительное (иногда в десятки и даже сотни раз) ускорение вычислений. В рамках проекта были проведены серьёзные исследования возможностей по использованию данного ресурса, которые принесли значительные плоды. Часть вычислений, в зависимости от наличия аппаратных ресурсов, может быть перенесена на устройство GPU (графическую плату или специальный GPU-вычислитель). В таком случае, эти вычисления могут производиться на порядки быстрее, чем на центральном процессоре. Например, с использованием GPU могут вычисляться масс-инерционные характеристики тел, рассчитываться линии проекций, производиться поиск элементов модели по заданной точке (лучу), а также выполняться ряд других вычислений. Настройка того, какое из доступных GPU-устройств использовать, или не использовать его вовсе, доступна при выполнении инициализации ядра.

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

Многоплатформенность

При разработке кода ядра были учтены потребности современного парка вычислительных систем, а также перспективы его развития. С самого начала была поставлена задача разработки как 32-битной, так и 64-битной версии. Компоненты, входящие в состав ядра должны использоваться как на платформе Windows, так и на других платформах (например, Linux-системах). Вся разработка и тестирование изначально велось с учётом данных требований.

Окно тестового приложения, запущенного под Linux (Ubuntu)

Многодокументность

Учитывая специфику функциональности различных прикладных систем, разработчики ядра сразу предусмотрели возможность управления «контекстом» вычислений. В модели ядра реализован набор инструментов, управляющий сессией ядра и обеспечивающий передачу информации о текущей сессии по всем функциям, задействованным в вычислениях. Таким образом, разработчики конечных CAD/CAM/CAE приложений, с использованием ядра RGK сразу имеют готовую инфраструктуру для реализации работы с несколькими документами, имеющими свой набор трёхмерных объектов (например, тел), разные параметры точности вычислений и других специфичных настроек. Каждая сессия хранит свой набор объектов изолированно от других, что позволяет удобно управлять составом объектов, удалять и создавать их. Механизм изолированных сессий ядра, совместно с возможностями многопоточной обработки позволяют создать современную и эффективную прикладную систему, в полной мере использующую вычислительные возможности современного компьютера.

Многооконный интерфейс тестового приложения. Каждое окно хранит данные в отдельной сессии.

Многотельное и гибридное моделирование

Современные CAD/CAM/CAE системы должны обеспечивать решение как задач твердотельного моделирования (когда тело представляется замкнутым набором граней без дырок), так и поверхностного моделирования (когда объектами модели являются поверхностями нулевой толщины). Кроме этого, иногда требуется функциональность каркасного (проволочного моделирования), когда объекты представляют собой пространственные кривые и наборы кривых. Ядро RGK представляет полный набор инструментов для решения задач над любыми из таких объектов, а также одновременную работу с объектами разных типов. Причём, там, где это возможно, для работы с разными типами объектов модели, используются одни и те же инструменты. Например, один и тот же генератор тел «По сечениям» может с успехом генерировать модели как твёрдых, так поверхностных тел. Тип результирующего объекта может задаваться либо дополнительными опциями используемого генератора, либо будет определяться автоматически. На примере генератора «По сечениям» по умолчанию, если на вход подаются замкнутые контуры, будет создано твёрдое тело. В случае использования незамкнутых контуров создастся листовое тело. Альтернативой такому поведению является принудительный режим создания тел требуемого типа.

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

Гибридная модель, содержащая твёрдое, листовое и проволочное тела

Моделирование с управляемой точностью

Все вычисления в ядре выполняются с конечной точностью. В зависимости от типа вычислений используются разные значения точностей:
  • Линейная точность используется для сравнения размерных величин. Если расстояние между точками или скалярными величинами меньше этой точности, то такие величины в системе неразличимы.
  • Угловая точность используется для сравнения угловых величин. В пределах этой точности углы неразличимы.
  • Относительная точность для сравнения размерных величин на параметрических интервалах кривых и поверхностей. По умолчанию величина относительной точности подобрана с учётом возможной потери точности при преобразовании линейных и двумерных параметров в трёхмерное пространство.
  • Точность моделирования позволяет выбирать соотношение между двумя, как правило, взаимоисключающими целями:
    • Быстрое получение результатов, поскольку моделирование выполняется в реальном времени
    • Получение более точных результатов, но затратных по времени и количеству данных.

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

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

Для работы с низкой точностью моделирования, когда не удаётся «зафиксировать» представление в пределах точности ядра, используется толерантная геометрия. Полученная толерантная геометрия совпадает с реальной в пределах некоторой ошибки. Толерантная модель характеризуется следующим набором особенностей:

  • В геометрии модели возникают неопределённости и разрывы
  • Принимаются во внимание геометрические ошибки в топологии при выполнении операций и расчётах
  • Возникают ограничения на применимость модельных операций.

Помимо хранения информации о точности моделирования, толерантная геометрия применяется при конвертировании данных из одного представления в другое. Например, использование промышленных форматов IGES, STEP для обмена информацией в CAD/CAM/FEA-системах. Эта задача имеет ключевое значение при внедрении на производстве средств автоматизации от различных фирм-производителей.

II. Инфраструктура для разработки приложений

Идентификация объектов модели

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

Вот некоторые типовые примеры использования ссылок на топологические элементы:

  • Задание параметров генераторов локальной модификации:
    • Рёбра в сглаживании
    • Грани в уклонах
    • Грани в операции замены граней
    • Грани в оболочках
  • Задание элементов, участвующих в сопряжениях
  • Использование для конструирования объектов моделирования:
    • 3D элементы оформления, построенные на топологических элементах: размеры, надписи, шероховатости
    • Рисование эскизов на выбранных гранях
    • Назначение материалов на грани

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

  • Сравнимость между собой. Поиск элемента выполняется сравнением идентификаторов на предмет совпадения.
  • Уникальность в границах одного тела. Для того чтобы различать топологические элементы в теле, должны быть разные идентификаторы.
  • Воспроизводимость при перестроении модели. При выполнении одинаковой последовательности вызовов генераторов геометрического ядра, идентификаторы на топологических элементах результирующих тел не должны меняться.
  • Независимость от геометрических характеристик. Идентификаторы не должны хранить геометрию или строится на основе геометрической информации.
  • Устойчивость к локальным структурным модификациям. Возможны следующие варианты изменений, приводящие к изменению топологической структуры тел:
    • Изменение топологической структуры входных параметров генератора. Например, добавление нового ребра в контур выталкивания.
    • Изменение свойств генераторов тел: числовые параметры; опции. В результате может измениться, например, радиус сглаживания, способ обработки перекрытий. В этих случаях изменение идентификации должно носить локальный характер, то есть новые идентификаторы должны возникать на минимально возможном количестве топологических элементов.
  • Локальность изменений идентификации. В генераторах локальных операций (сглаживания, уклоны, оболочки), не должны меняться идентификаторы для топологических элементов, которые не меняются в смысле топологии. В частности, идентификация топологических элементов, не участвующих в правках генератора, должна сохраняться. Также, если в процессе выполнения генератора грань или ребро обрезается или удлиняется, то идентификатор такого элемента должен сохраняться.
  • Инвариантность. Для обеспечения максимальной устойчивости идентификации важно в качестве свойств, хранимых в идентификаторах выбирать какие-то инварианты по отношению к возможным модификациям модели. Выбор таких инвариантных характеристик зависит от типа генератора.

В RGK задача назначения идентификаторов на грани, рёбра и вершины решается на уровне генераторов тел. Идентификаторы создаются исходя из логики построений топологических элементов в генераторах. На пользовательском уровне доступны следующие методы работы с идентификаторами:

  • У топологического элемента можно получить описание идентификатора, соответствующее истории создания элемента
  • Поиск элемента в теле по запомненному идентификатору
  • Так же, как и другие сущности модели, информация об идентификации сохраняется в обменном файле или потоке данных приложения
  • Если идентификация не нужна или задача решается на пользовательском уровне, то можно отключить идентификацию, сэкономив на времени выполнения генераторов и памяти под данные идентификаторов
  • Набор типов идентификаторов может быть расширен пользовательскими идентификаторами, данные для которых хранятся в атрибутах. Типичный пример использования импортированные модели со своими описателями топологических элементов.

Работа с системными и пользовательскими атрибутами

Для хранения дополнительной информации прикладного характера, связанной с топологическими элементами модели, в ядре RGK предусмотрен механизм атрибутов:
  • На каждый топологический элемент можно назначить неограниченное число атрибутов разных типов
  • Все атрибуты типизированы согласно хранимым данным:
    • Целочисленный атрибут
    • Массив целых чисел
    • Атрибут для чисел с плавающей точкой
    • Массив чисел с плавающей точкой
    • Строковый атрибут
    • Бинарный атрибут для хранения произвольных данных
    • Составной атрибут, хранящий множество других атрибутов. Используется для организации многоуровневых структурированных данных
  • С каждым атрибутом связан именованный описатель атрибута, который хранит его семантическую сущность. Например, для хранения информации о цвете тела, может использоваться целочисленный атрибут, у которого описатель имеет имя «Color»;
  • Атрибуты могут копироваться вместе с телом
  • Атрибуты можно копировать с одного топологического элемента на другой
  • Атрибуты можно удалять
  • Все атрибуты и их описатели сохраняются в обменном файле
  • Атрибуты используются не только приложениями, но и самим ядром для хранения дополнительной информации о свойствах объектов модели.

Подробная диагностика ошибок

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

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

В ядре также реализованы мощные средства проверки корректности тел. Такая проверка в первую очередь необходима для импортированных моделей или моделей, полученных низкоуровневыми средствами редактирования. Список диагностируемых ошибок достаточно большой. Вот некоторые примеры:

  • Нарушение согласованности ориентации кривых с рёбрами
  • Нарушение связанности рёбер в циклах
  • В модели установлены не все ссылки между элементами
  • Неправильное отношение вложенности циклов на одной грани
  • Самопересечения граней, циклов, рёбер
  • Отсутствие замыкания границы грани
  • Нарушение согласованности ориентации граней
  • У топологических элементов не задана геометрия
  • Внутренние пресечения граней и рёбер
  • Геометрия ребра, грани или вершины не удовлетворяет требуемой точности
  • Элемент добавлен в тело, но нигде не используется
  • Тип топологии тела не соответствует структуре тела
  • Неполное задание информации о теле
  • Вырожденные рёбра, циклы и грани
  • Неограниченные по длине рёбра
  • Неверное отношение вложенности оболочек.

«Откат» модели в случае ошибок

«Генераторы» являются основным инструментом управления и редактирования моделей. В результате выполнения генераторов модифицируется геометрия и топология входных тел. Возможны ситуации, когда происходит аварийное завершение работы генератора: в случае возникновения ошибок в алгоритме генератора или на вход подаются некорректные данные (например, недопустимо большой радиус сглаживания ребра). В случае ошибки состояние модели может быть неопределённым или некорректным. Одним из возможных решений проблемы может быть резервное копирование тел перед модификацией. Такой подход связан с издержками на хранение избыточной модели. К тому же частично модифицированное некорректное тело может также оставаться модели, что усложняет дальнейшую работу с ней. RGK, в случае возникновения ошибок в генераторе, выполняет откат модели до исходного состояния, которое было до вызова генератора, тем самым обеспечивая прогнозируемое состояние модели независимо от результата выполнения генератора.

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

Хранение истории модификации модели позволяет выполнять откат изменений в модели. Типовые примеры использования откатов модели в прикладных системах:

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

Универсальный платформенно-независимый формат хранения данных

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

Обменный формат, по сути, является XML-документом. Такой выбор структуры данных имеет ряд преимуществ:

  • Универсальность по отношению к типам сохраняемых данных
  • Платформенная независимость
  • Расширяемость формата новыми типами данных
  • Открытость формата

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

Обеспечение качества и тестовая инфраструктура

Геометрическое ядро трёхмерного моделирования является сложным программным продуктом, к которому предъявляются высочайшие требования отказоустойчивости. Поскольку ядро предполагается использовать как фундамент для построения разнообразных приложений САПР с широким спектром пользовательских сценариев, было необходимо уже на начальном этапе предусмотреть соответствующие типы специальных тестов и разработать схему тестирования ядра, способную обеспечить качество программной реализации на надлежащем уровне. Также хорошо известно, что геометрическое ядро проходит длительный жизненный цикл развития и внедрения (фактически — десятки лет) с необходимостью обратной связи со стороны использующих его приложений. Такой цикл нельзя трактовать как устранение недоработок или ошибок: напротив, здесь должна быть сознательно и в полной мере применена концепция управления жизненным циклом программного продукта (Application Lifecycle Management), по смыслу эквивалентная PLM (Product Lifecycle Management, управление жизненным циклом изделия).

Исходя из вышесказанного, при разработке и проектировании архитектуры геометрического ядра были поставлены решены следующие задачи обеспечения качества:

  • Создание удобной тестовой инфраструктуры для разработчиков
  • Предоставление возможности непрерывного и естественного расширения тестовой базы реальными пользовательскими сценариями
  • Обеспечение обратной совместимости при дальнейшей разработке, улучшениях и модификациях геометрического ядра.
Тестовая инфраструктура
Тестовая инфраструктура разрабатывалась в контексте применения таких хорошо зарекомендовавших себя практик инженерии ПО, как итерационная разработка, непрерывная интеграция и разработка через тестирование. Тестовая база состоит из большого набора тестов в виде C++ кода, тестирующих отдельные внутренние и внешние (API) функции ядра, а также нескольких тысяч сценариев, сохранённых в собственном XML-формате ядра и сгенерированных из реальных промышленных моделей. Тестирование включает в себя автоматические сборки проекта и регулярное (не реже чем раз в сутки) регрессионное тестирование базы на всех поддерживаемых программных и аппаратных платформах и конфигурациях (различные операционные системы, компиляторы, многопроцессорность, CPU/GPU и прочее). По результатам прогона тестовой базы выполняется построение индикаторов для контроля производительности и уровня успеха функций. Кроме того, в автоматическом режиме осуществляются статические проверки качества кода и динамический анализ корректности работы с памятью.
Расширение тестовой базы
Расширение тестовой базы необходимо проводить на постоянной основе в тесном сотрудничестве с разработчиками систем, создаваемых на основе геометрического ядра — это является одним из важнейших критериев высокого качества конечно-пользовательской САПР. В архитектуре ядра заложена возможность простой и естественной генерации сценариев в виде XML с одновременным протоколированием действий пользователя в виде отдельных функциональных операторов ядра. Сценарии в таком формате будут мгновенно проанализированы разработчиками ядра и в обязательном порядке добавлены в тестовую базу для дальнейшего регрессионного тестирования. Кроме того, возможность разбиения исходного пользовательского сценария на компактные функциональные операторы позволяет конечному пользователю или разработчику САПР самому определять, какую часть модели передавать для анализа. Это является очень важным преимуществом для предприятий с высокой степенью секретности и конфиденциальности.
Обеспечение обратной совместимости
Обеспечение обратной совместимости при переходе к новым версиям геометрического ядра является одной их ключевых задач разработки. При усовершенствовании математических алгоритмов вероятно возникновение численных расхождений старой и новой версии алгоритма, запущенных на одних и тех же входных данных. Хотя оба таких решения могут быть корректными, необходимо учитывать, что на момент модификации алгоритма и выпуска очередной версии ядра конечно-пользовательской цифровой модели уже может соответствовать некоторое реальное изделие, находящееся в производстве и/или эксплуатации. В таких случаях очень важно обеспечивать постоянство численного решения. Отслеживание подобных проблем предусмотрено тестовым форматом XML и специальным способом сравнения результатов тестирования.


Публикации

  1. Д. Ушаков. Геометрические ядра в мире и в России
  2. Д. Ушаков. На ядре
  3. ЛЕДАС поможет МГТУ «СТАНКИН» разработать отечественное 3D-ядро
  4. Уральский федеральный университет им.Б.Н.Ельцина (УрФУ) участвует в разработке отечественного геометрического 3D-ядра
  5. Волгоградский государственный технический университет — участник проекта по разработке отечественного геометрического ядра
  6. К разработке отечественного геометрического ядра подключились математики МГУ
  7. Создана первая версия российского ядра геометрического моделирования

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

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