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

Статьи

13 октября 2008

Вариационное прямое моделирование, или как сохранить намерения проектировщика в САПР без истории построения

Дмитрий УшаковДмитрий Ушаков

Введение

Если создание моделей или внесение изменений в существующие с помощью современных программ трехмерного проектирования (CAD) кажется вам слишком сложным процессом, недоступным для того, чтобы овладеть им за пару часов, стоит задуматься о новых технологиях проектирования. Даже дети умеют наглядно изображать свои мысли в двумерных рисунках, но переход в 3D дается не каждому взрослому, особенно если речь идет о технологиях проектирования на основе истории построения модели (history-based design), такой как параметрическое моделирование на основе конструктивных элементов (parametric feature-based modeling), являющейся стандартом для большинства «механических» CAD. Создать модель из конструктивных элементов просто, но управлять взаимоотношениями между элементами в процессе внесения изменения в модель в будущем уже сложно. Еще сложнее редактировать модели, созданные в другой CAD-системе: единого стандарта на конструктивные элементы до сих пор нет, поэтому при трансляции часть данных об истории построения модели неизбежно теряется.

Обе эти проблемы решаются в рамках подхода, допускающего непосредственные (а не через историю построения) манипуляции с элементами геометрической модели. Но до сих пор CAD-системы, основанные на данном подходе (известном как прямое или динамическое моделирование), не могут заменить проектирование на основе истории построения. Дело в том, что упрощая операции по редактированию модели, они оставляют пользователю слишком много степеней свободы. В результате практически любая операция редактирования неузнаваемо изменяет исходную модель, отдаляя ее от заложенной конструктивной концепции изделия (design intent). Стол перестает быть столом, подшипник — подшипником и т.д. Как можно сочетать интеллектуальность редактирования геометрии с простотой пользовательских манипуляций? Ответ дает новая технология — вариационное прямое моделирование, суть которой состоит в использовании геометрических и размерных ограничений для задания желаемого поведения модели при ее модификации. Вариационное моделирование состоит в одновременном удовлетворении всех ограничений, а не одного за другим в соответствии с историей построения, как это происходит при параметрическом моделировании. Вариационное моделирование становится возможным благодаря использованию современных символьных и численных методов декомпозиции и решения геометрических задач большого размера (состоящих из тысяч ограничений). Таким образом, набор ограничений представляет собой декларативную конструкцию, которая интерпретируется одинаково вне зависимости от истории их построения. В то же время аппарат ограничений обладает достаточными выразительными средствами для того, чтобы задавать конструктивные элементы и связи между ними. Ограничения задает не только пользователь такой системы, но и сама система, распознавая их автоматически в исходной модели при ее построении или импорте из другой системы. В результате получается простой в использовании инструмент для контроля конструктивной концепции изделия, который может служить полноценной заменой текущим системам на основе истории построения и прямого моделирования геометрии, объединяя их достоинства и скрывая недостатки.

В настоящей статье описываются преимущества, которые получает конечный пользователь приложений вариационного прямого моделирования. Больше года назад [1] компания ЛЕДАС обнародовала свои планы по разработке на основе собственного вариационного геометрического решателя LGS инструментальных наборов программных компонентов для разработки различных приложений CAD, которые нацелены на сокращение сроков разработки и увеличение инноваций за счет использования всех преимуществ вариационного моделирования. Один из анонсированных наборов заключается в использовании ограничений при работе с «немой» геометрией (без истории построения). Этот набор в настоящее время разрабатывается в компании ЛЕДАС и будет доступен для лицензирования во втором квартале 2009 г. Набор основан на собственном вариационном геометрическом решателе LGS 3D, который может работать в комбинации с любым ядром геометрического моделирования с возможностью граничного представления (полигональные сетки или BRep). Предлагаемое решение позволяет осуществить двунаправленную связь между геометрическим и параметрическим ядрами: пользовательская команда инициирует изменение геометрической модели в соответствии с автоматически распознанными или заданными вручную геометрическими ограничениями и размерами.

Стремясь продемонстрировать преимущества новой технологии моделирования конечным пользователям существующих CAD-систем, компания ЛЕДАС планирует к выпуску простые add-on приложения к самым популярным из них под названием Driving Dimensions (управляющие размеры). Первым из серии станет приложение для одной из самых популярных систем прямого моделирования — Google SketchUp. Опубликованный в статье план развития этого приложения позволяет получить представление о больших возможностях новой технологии применительно к любым CAD.

Публикацией настоящей статьи компания ЛЕДАС приглашает к сотрудничеству всех разработчиков CAD и конечных пользователей.


Геометрическое моделирование с точки зрения пользователя

Создание трехмерных тел в разных CAD-системах выглядит одинаково. С помощью набора двумерных примитивов конструктор создает плоский замкнутый профиль, его вытягиванием получает трехмерное тело (призму), на гранях которой строит другие элементы, добавляющие или отнимающие объем. Конкретный набор конструктивных элементов (form features) в каждой системе свой; при этом элементы на основе профиля могут дополняться собственно трехмерными построениями — булевыми операциями (такими как пересечение), зеркальным отражением и т.п.

При одинаковом подходе к созданию трехмерной формы, средства ее редактирования в CAD отличаются существенным образом. Современные моделеры разбиваются на два класса: одни предлагают редактировать модель на основе истории ее построения (history-based modeling), другие — путем непосредственного перемещения пользователем ее граничных элементов — граней, ребер, вершин (history-free, direct modeling). Первый класс моделеров представлен максимально широко (он стал де факто промышленным стандартом для механических CAD), а вот системы второго класса до недавних пор были в меньшинстве (CoCreate, Kubotek KeyCreator, SpaceClaim, Google SketchUp, 3DVIA Shape). Редактирование формы на основе история построения предполагает локализацию ранее выполненной операции моделирования (конструктивного элемента) в дереве построения и редактирование ее параметров. Реакцией на изменение параметров является автоматическая перестройка модели. Перестроению при этом подвергнутся все операции моделирования, которые в дереве построения были записаны позже.

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

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

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

Прямое редактирование прямоугольного параллелепипеда позволяет перемещать любую грань, ребро или вершину параллелепипеда. Что произойдет с параллелепипедом при перемещении одной из его вершин в тех системах, где это позволено пользователю? Останутся ли его углы прямыми? Будет ли поддерживаться параллельность противоположных граней? Да и сами грани — останутся ли они плоскими? Не увеличится ли их число? Каждая система прямого моделирования может давать свои ответы на эти вопросы, и далеко не всегда они совпадают с пожеланиями пользователя. Рассмотрим возможные реакции моделера (см. рис. 1). В варианте (б) перемещается только двигаемая вершина, все остальные остаются на месте. Но при этом не сохраняется даже число граней — фигура теряет свою форму. В варианте (в), где система вслед за пользовательской командой двигает еще две вершины, модель остается шестигранной, но не более того — параллельность и прямоугольность граней нарушена. В варианте (г) система перемещает три дополнительных вершины, сохраняя тем самым параллельность противоположных граней и их линейные размеры. Наконец, в варианте (д) параллелепипед при перемещении вершины остается прямоугольным (что достигается движением шести дополнительных вершин).

Рис. 1. Варианты поведения прямого моделера при перемещении вершины


Почему так происходит? Как пользователь может задать желаемое ему (ей) поведение системы? Давайте рассмотрим эту ситуацию с точки зрения разработчика.


Геометрическое моделирование с точки зрения разработчика

Первые CAD-системы, использовавшиеся на крупных предприятиях автомобильной и авиационной промышленности с середины 1960-х годов, были двумерными, представляя собой электронный аналог кульмана. Довольно скоро созрело понимание, что в центре проектирования должна быть трехмерная модель изделия, двумерные проекции которой могут быть сгенерированы автоматически. Однако, простое добавление третьей координаты к традиционным двумерным графическим моделям позволяет смоделировать только каркас изделия, которого недостаточно для вычисления объемно-массовых характеристик будущего изделия. Только твердотельное моделирование (solid modeling) позволяет описать каждую точку тела и открывает дорогу методам инженерного анализа статических и динамических свойств изделия. Кроме того, твердотельная модель используется для расчета траектории движения режущего инструмента при моделировании процесса изготовления изделия, а также для изготовления модели изделия методами быстрого прототипирования. Таким образом, твердотельное моделирование служит основой для систем CAD, CAE и CAM.

В основе большинства современных ядер геометрического моделирования (таких как Parasolid, ACIS, GRANITE, CATIA Geometric Modeler и др.) лежит один и тот же аппарат твердотельного моделирования — граничное представление (BRep), описывающее тело путем перечисления ограничивающих его объем плоских и криволинейных граней, пересекающихся в ребрах и вершинах (все они называются граничными элементами). Смежность граничных элементов задает топологию модели, а их параметрические свойства определяют ее геометрию. На основе такого представления можно легко вычислять объемно-массовые свойства тела, моделировать булевы операции (пересечение, объединение и разность).

Конструктивные элементы (form features) также моделируются на основе граничного представления. Изначально они пришли в проектирование из области CAPP (Computer-Aided Process Planning) — систем автоматизации технологической подготовки производства. Конструктивный элемент в смысле инженера-технолога — это геометрический образ элементарной операции металлорежущего станка, такой как высверливание отверстия, фрезеровка кармана, снятие фаски с острой кромки. Идея интегрировать конструирование изделия с технологической подготовкой его производства витала в воздухе 1980-х годов, когда в разных исследовательских лабораториях по всему миру было создана несколько экспериментальных разработок на эту тему. Первой коммерческой САПР с конструктивными элементами стала Pro/ENGINEER, выпущенная на рынок в 1987 г.

Именно Pro/ENGINEER задала стандарт, существовавший в отрасли последующие двадцать лет: почти во всех современных CAD конструктивные элементы реализуются на основе так называемого процедурного подхода [2]. В рамках этого подхода с каждым типом элементов связывается набор методов для создания, удаления, обновления, редактирования и копирования элементов данного типа. Параметры, требуемые для геометрического построения конструктивного элемента (например, ось, диаметр и глубина отверстия) при процедурном подходе делятся на зависимые и независимые. Например, ось отверстия обычно параллельна нормали грани, на которой строится соответствующий конструктивный элемент, поэтому при изменении ориентации этой грани, ось отверстия тоже должна быть изменена. А вот диаметр отверстия является независимым параметром, который задается пользователем в процессе построения и не зависит от других элементов (если только он не приравнен к диаметру другого отверстия). Процедурный подход заставляет разработчиков отказаться от наличия циклических зависимостей между конструктивными элементами, так как в случае их наличия цикл обновления модели при изменении параметра может оказаться бесконечным. Отсюда и складывается та пользовательская парадигма, которая называется параметрическим проектированием на основе истории построения.

Давно известен иной подход к моделированию конструктивных элементов на основе BRep — декларативный [2]. В рамках декларативного подхода каждый конструктивный элемент задается указанием пространственных отношений между граничными сущностями, которые определяют его геометрическую форму. Например, призма, полученная вытягиванием плоского профиля, обладает тем свойством, что нормали геометрических поверхностей всех ее боковых граней перпендикулярны нормали плоскости построения профиля. Аналогично, все цилиндрические грани конструктивного элемента «отверстие» соосны между собой, причем направление общей оси параллельно нормали плоскости грани, на которой было построено отверстие. Подобные пространственные соотношения называются геометрическими ограничениями. Для того чтобы в процессе прямого редактирования геометрии (например, перемещения граничных элементов) эти ограничения оставались удовлетворенными, требуется уметь динамически разрешать систему одновременных ограничений.

Геометрическая модель с ограничениями называется вариационной (этот термин традиционно используется в противовес термину параметрический, так как последний прочно связан в сознании пользователей и разработчиков с моделированием на основе истории построения) и находится в центре внимания разработчиков достаточно давно. В настоящее время на рынке вычислительных программных компонент доступно несколько коммерческих вариационных геометрических решателей, способных эффективно разрешать системы из сотен одновременных ограничений. До недавних пор их применение ограничивалось разрешением двумерных ограничений в рамках вариационного подхода к эскизному черчению (variational sketching), а также их использованием для реализации top-down подхода к проектированию сборок (в рамках которого существующие детали связываются друг с другом ограничениями сборки, одновременное разрешение которых позволяет определить механизм в сборе).

Перспектива использования вариационного геометрического решателя для прямого моделирования геометрии была осознана компанией ЛЕДАС еще год назад [1]. А спустя полгода компания Siemens PLM Software, ведущий разработчик в области CAD, объявила о разработке синхронной технологии [3]; подхода к редактированию моделей без истории построения с возможностью сохранять конструктивные элементы. Синхронная технология, насколько можно о ней судить из рекламных материалов компании-разработчика, является разновидностью декларативного подхода к моделированию конструктивных элементов на основе задания геометрических и размерных ограничений между граничными элементами модели. Данная технология основана на комбинации функций ядра геометрического моделирования Parasolid и вариационного геометрического решателя DCM.

Ниже мы представляем наш собственный взгляд на вариационное моделирование в контексте прямого редактирования геометрии, являющийся развитием наших идей, изложенных год назад в [1].


Вариационное прямое моделирование

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

Однако было бы неверно переложить на пользователя полную ручную спецификацию желаемого поведения. Многие намерения проектировщика можно распознать автоматически. Во-первых, многие операции редактирования модели (такие как перемещение грани, ребра или вершины) подразумевают, что топология модели (т.е. смежность ее граничных элементов) остается неизменной. В смысле вариационной модели смежность грани с ее ребрами и вершинами подразумевает наличие геометрических ограничений инцидентности (принадлежности) между соответствующими геометрическими объектами — поверхностями, кривыми и точками. Такие ограничения могут быть автоматически сгенерированы системой по топологическим структурам данных BRep-модели. Их отсутствие ведет к нарушению топологической целостности модели (рис. 2).

Рис. 2. Модель с нарушенной топологией


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

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

Рис. 3. Варианты поведения при прямом редактировании цилиндрических граней


Общий список возможных ограничений, возникающих при прямом моделировании, приведен в Таб. 1.

Источник ограничений Виды ограничений
Топология BRep Инцидентность поверхностей (плоскости), кривых (прямых) и точек
Геометрия BRep Инцидентность, параллельность, перпендикулярность прямых и плоскостей, соосность/концентричность цилиндров, сфер, торов и конусов, касание, симметрия
Конструктивные элементы Параллельность осей, соосность/концетричность цилиндров, сфер, конусов и торов
Пользователь Любые геометрические ограничения (включая абсолютную и относительную фиксации) и размеры

Таб. 1. Ограничения, возникающие при прямом моделировании


Вышеприведенная таблица указывает источники информации, которая содержится в модели (с историей построения или с «немой» геометрией), и которую можно облечь в форму геометрических ограничений и размеров. Комбинация геометрического BRep-моделера с вариационным геометрическим решателем позволяет реализовать этот подход в рамках любой системы прямого моделирования. Компания ЛЕДАС, следуя анонсированному курсу на построение готовых к интеграции наборов инструментальных средств, служащих основой для конечно-пользовательских приложений с вариационной функциональностью, планирует в ближайшее время выпустить набор для прямого моделирования геометрии на основе своего вариационного геометрического решателя LGS 3D. Открытая архитектура этого инструментального набора (рис. 4) позволяет интегрировать его в любую систему геометрического моделирования на основе граничного представления (будь то полигональные сетки или BRep).

Рис. 4. Архитектура вариационного прямого моделера


Чтобы показать выразительные возможности данного инструментального набора, компания ЛЕДАС разработала add-on приложение для одной из самых популярных систем прямого моделирования Google SketchUp.


Управляющие размеры для SketchUp

Управляющие размеры (driving dimensions) — инструментальные средства, хорошо знакомые пользователям многих систем, основанных на вариационном подходе. В отличие от обычных размеров (радиус/диаметр, длина, расстояние, угол), которые вычисляются по геометрической модели, управляющие размеры, напротив, форсируют автоматическое изменение расположения элементов модели в соответствии с указанными расстояниями и углами. Популярная система трехмерного проектирования Google SketchUp [4] известна не только многим профессионалам архитектурно-строительного проектирования, но и огромному количеству любителей, которые с ее помощью создают собственные виртуальные трехмерные миры (созданные модели реальных объектов можно привязать к местности, поместив их в геоинформационную систему Google Earth). Обладая доступными возможностями прямого моделирования, SketchUp ограничивает пользователя в возможностях параметризации модели. По сути, размеры могут быть заданы только в момент построения модели. Редактировать модель путем изменения размеров невозможно, пользователю доступны только простейшие функции масштабирования. Стремясь сделать средства вариационного проектирования доступными широкому классу пользователей SketchUp, компания ЛЕДАС разработал add-on приложение для этой системы под названием Driving Dimensions, с помощью которого можно задавать размерные ограничения между элементами модели (гранями, ребрами и вершинами).

Уже в первой версии Driving Dimensions (которая будет свободно доступна для тестирования в октябре 2008 г.) пользователи смогут задавать длины произвольного количества ребер и радиусы любого числа окружностей и дуг. Одновременное разрешение всех размерных ограничений (вместе с сохранением топологии исходной модели, т.е. числа и смежности ее элементов) позволит пользователям легко проводить параметрическую модификацию любой модели — созданной самостоятельно или найденной в огромной базе данных бесплатных моделей 3D Warehouse [5]. В последующих версиях этого приложения (которые выйдут позднее в 2008 и 2009 гг.) пользователям будут доступны возможности задания произвольных размерных и логических ограничений, средства автоматического распознавания ограничений в момент создания элементов модели, а также по геометрическим свойствам «немой» геометрии. К статическому удовлетворению ограничений (в момент создания или по команде пользователя) добавится возможность динамического удовлетворения ограничений при перемещении любого числа элементов модели.

В силу бесплатности базовых версий Google SketchUp и Driving Dimensions любой желающий сможет оценить основные преимущества технологии вариационного прямого моделирования:

  1. Использование геометрических и размерных ограничений в процессе проектирования существенно ускоряет время создания модели.
  2. Добавление намерений проектировщика (design intent) в виде ограничений между элементами модели и сохранение их в файл вместе с моделью упрощает ее будущее редактирование.
  3. Использование ограничений при редактировании чужой модели без ограничений, позволяет быстро адаптировать существующую модель для новых нужд.

На рис. 5 представлены пример простой модели, успешно параметризуемой с помощью Driving Dimensions.

Рис. 5. Модель дома до (а) и после (б) параметризации


Заключение

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

Компания ЛЕДАС анонсирует разработку инструментального набора для реализации соответствующей функциональности, который будет доступен для лицензирования разработчикам CAD во втором квартале 2009 г.

Конечно-пользовательские возможности вариационного прямого моделирования будут доступны всем желающим в октябре 2008 г. в рамках add-on приложения Driving Dimensions для популярной системы трехмерного проектирования Google SketchUp. Компания планирует в дальнейшем развивать функциональность этого приложения, а также выпустить аналогичные приложения для других популярных CAD-систем.


Список литературы

  1. Дмитрий Ушаков. Технологии вариационного проектирования для разработки типичных приложений САПР. Июль 2007, ЗАО "ЛЕДАС". URL
  2. Jami J. Shah and Martti Mäntylä. Parametric and Feature-Based CAD/CAM: Concepts, Techniques, and Applications. Wiley, Chichester, 1995, 619 pp.
  3. Synchronous Technology. April 2008, CPDA LLC. URL
  4. Google SketchUp. URL
  5. 3D Warehouse. URL


Об авторе

Директор по управлению продуктами (а до недавних пор - директор по технологии) компании ЛЕДАС, Дмитрий Ушаков в 1995 году получил диплом магистра математики Новосибирского государственного университета, а в 1998 стал кандидатом физико-математических наук по специальности «Математическое обеспечение вычислительных машин, комплексов и компьютерных сетей». В 1993-1999 годах Д.Ушаков являлся научным сотрудником Российского НИИ искусственного интеллекта, став основным разработчиком универсального объектно-ориентированного расширяемого решателя задач удовлетворения и оптимизации в ограничениях. В рамках своей деятельности в компании ЛЕДАС Д.Ушаков занимался разработкой вычислительных программных компонентов для системы CATIA V5, на основе которых создан ряд приложений, последовательно применяющих вариационный подход к параметризации. Д.Ушаков является автором пятидесяти научных работ.


О компании ЛЕДАС

ЗАО "ЛЕДАС" — независимая софтверная компания, образованная в Новосибирском Научном Центре (Академгородке) Сибирского отделения Российской Академии Наук в 1999 г. Являясь лидером в области вычислительных технологий, основанных на аппарате математических ограничений, ЛЕДАС хорошо известен как поставщик вычислительных программных компонентов для систем PLM (управления жизненным циклом изделия) и ERP (планирования ресурсов предприятия). В портфеле предложений компании – решатель геометрических ограничений для САПР (CAD/CAM/CAE), оптимизирующий процессор для систем управления проектами, планирования рабочей силы и организации собраний, интервальные технологии для организации баз знаний и совместного проектирования в САПР. Компания также оказывает своим заказчикам различные услуги в области PLM и ERP: разработка ПО, консалтинг, распространение продуктов партнеров, тренинги персонала.

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

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