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

Статьи

16 января 2014

Как создавать редактируемые модели в параметрических CAD

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

От редакции isicad.ru: На нашем портале периодически вспыхивают дискуссии о сравнении параметрического моделирования на основе истории построения с прямым моделированием. Свежий пример — 25 комментариев к статье «Вариационное прямое моделирование — революционная парадигма для 3D». Желающим ознакомиться с другими мнениями на эту тему предлагаем прочитать 31 комментарий к статье «Параметрическое прямое моделирование», 61 комментарий к обзору «Кому и зачем нужно прямое моделирование? Обзор конкурентных технологий» или 121 комментарий к отчету о конференции пользователей Rhino «Доспехи для носорога».

В чем видится корень этих дискуссий? Разработчики и пользователи систем прямого моделирования указывают на недостатки параметрического моделирования на основе истории построения, но приверженцы последнего подхода зачастую отказываются эти недостатки признавать. Их можно понять — многие из них успешно применяли CAD-системы на основе истории построения многие годы, сжились со всеми их достоинствами и недостатками, и теперь не в состоянии отделить одно от другого. Безусловно, при текущем уровне развития обоих технологий, во многих реальных случаях моделированию на основе истории построения нет альтернативы. Поэтому важно не скрывать недостатки этой технологии, а напротив осознать их природу и предложить методы борьбы с ними.

Именно такого рода работа была недавно проделана Ричардом Гебхардом (Richard Gebhard), президентом американской компании Assembly Technology Inc., предлагающей услуги по проектированию и сборке электронных приборов. Ричард обладает двадцатилетним опытом работы с машиностроительными САПР (MCAD). Предложенная им Стратегия Упругого Моделирования (Resilient Modeling Strategy) позволяет минимизировать недостатки моделирования на основе истории построения и получать в рамках этого подхода надежные, очевидные и готовые к повторному использованию CAD-модели.

Ричард Гебхард представил свою стратегии на Solid Edge University 2013 (слайды его мастер-класса на соответствующую тему можно посмотреть здесь). Использование Solid Edge в данном случае непринципиально — предлагаемую стратегию можно применять в Creo, SolidWorks, Inventor и других серийных MCAD-системах. Стратегию Ричерда Гебхарда широко разрекламировал Эван Ярес в серии своих публикаций «Несбывшееся обещание параметрических CAD» : части 1, 2, 3, 4, 5 и 6.

Как вспоминает Эван Ярес, эра трехмерного параметрического моделирования (в его современном понимании) началась в сентябре 1987 г. с покупки двух первых лицензий Pro/Engineer компанией Deere & Company. Первый пользователь был в восторге: «Pro/ENGINEER является лучшим примером того, как должно работать твердотельное моделирование. Сила продукта заключена в его механических конструктивных элементах с возможностью параметрического изменения. Преимуществом такой комбинации является более дружественный пользовательский интерфейс и интеллектуальная геометрическая база данных».

Самуил Гейзберг

Самуил Гейзберг

Самуил Гейзберг, основатель PTC и отец Pro/ENGINEER, целился в свое время на создание «системы, которая была бы достаточно гибкой для того, чтобы вдохновить инженеров на легкое рассмотрение множества вариантов проекта. А стоимость внесения изменений должна быть как можно ближе к нулю».

Получилось ли у него добиться поставленной цели? Несомненный коммерческий успех Pro/E, а также последующая реализация технологии параметрических конструктивных элементов практически во всех MCAD-системах лишь отдаляют нас от ответа на этот вопрос. Вот что думает на этот счет Дэвид Вайсберг (David Weisberg), пионер компьютерной графики и автор знаменитой книги «Engineering Design Revolution»:

«Проблема с параметрическим проектированием, основанным на методе регенерации модели из дерева ее истории, состоит в том, что добавляемая в модель геометрия зависит от созданной ранее. Эта методология, описываемая отношением родитель-ребенок, которое может распространяться на много уровней в глубину. Удаление или изменение родительского элемента может оказывать неожиданный эффект на дочерние элементы. В предельных случаях пользователь вынужден полностью перестроить свою модель.»

Обратная сторона отношения родитель-потомок

Действительно, дерево конструктивных элементов модели в традиционной MCAD-системе типа Pro/E строится на основе отношения родитель-ребенок. Например, если вы получаете тело вытягиванием двумерного профиля, а затем создаете отверстие в одной из граней тела, то конструктивный элемент «отверстие» становится ребенком элемента «вытягивание». Собственно, именно отношение родитель-ребенок и является основным способом выражения конструктивной концепции модели (design intent) в традиционных MCAD-системах, основанных на истории построения.

Это отношение находится в «спящем» режиме до тех пор, пока вы не захотите отредактировать модель. Но проблема этой концепции в том, что детали редко редактируются в процессе создания, поэтому многие отношения родитель-ребенок остаются непротестированными. Момент истины наступает в момент первого редактирования. Кто не видел «деталей из ада» — тех, редактировать которые нет никакой возможности, так как процесс их редактирования подобен дуновению ветра на карточный домик?

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

Стратегия Упругого Моделирования

Есть ли способ преодолеть эти проблемы? Именно для этого служит предложенная Ричардом Гебхардом Стратегия Упругого Моделирования (англ. Resilient Modeling Strategy). Она состоит в применении согласованного набора правил проектирования с целью получить:
  1. редактируемую модель со структурированным набором конкруктивных элементов,
  2. явную модель, которая не основана на чьей-то персональной интуиции,
  3. модель, готовую к повторному использованию.

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

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

Проектирование детали хрупким (слева) и упругим (справа) способами

Проектирование детали ломким (слева) и упругим (справа) способами (нажмите для увеличения)

Здесь представлено два возможных дерева конструктивных элементов для одной и той же детали: слева неустойчивое (ломкое), справа — отказоустойчивое (упругое). Внимательный анализ правого дерева показывает, что все конструктивные элементы в нем разбиты на шесть групп, заданных в строгом порядке друг за другом.

1. Элементы-ссылки (Ref)
Они задают начальные требования к проекту детали. Это могут быть уже существующие (нередактируемые в рамках этой модели) твердые тела, системы координат, двумерные эскизы, чертежи, отсканированные рисунки и т.п. На основе этих элементов-ссылок строятся остальные конструктивные элементы модели. Сами же элементы-ссылки, как правило, делаются невидимыми.

2. Элементы конструкции (Construction)
Вспомогательные кривые и поверхности, которые ниже в дереве будут использоваться для создания твердотельной геометрии. К этой же группе относятся конструктивные элементы, которые редактируют грани поверхностей — «расширение», «обрезание», «расщепление».

Как и в случае элементов первой группы, элементы конструкции часто делаются невидимыми после финального построения.

3. Основные элементы (Core)
Призматические конструктивные элементы, которые фиксируют общую форму и ориентацию модели. Сюда включаются только создающие объем элементы. На грани, ребра и вершины этих элементов будут ссылаться детальные элементы (см. ниже).

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

4. Детальные элементы (Detail)
Конструктивные элементы, которые подепляются к основным элементам. В отличие от элементов предыдущей группы, их редактирование должно вызывать лишь малые изменения модели. По большей части эти элементы не добавляют, а удаляют объем из модели. К группе детальных элементов относятся бобышки, карманы, отверстия и т.п.

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

5. Модифицирующие элементы (Modify)
Конструктивные элементы, которые модифицируют существующую геометрию — такие как уклоны, зеркальные отражения, шаблоны и т.п. В эту же группу надо включать все конструктивные элементы, которые изменяют трансформированную или скопированную геометрию.

В целях экономии размера файла, конструктивные элементы этой группы рекомендуется сохранять в погашенном (скрытом) состоянии.

6. Изолированные элементы (Quarantine)
Косметические конструктивные элементы — резьбы, фаски, скругления и т.п. Они не могут быть родителями никаких других элементов. Скругления рекомендуется упорядочить по размеру (от больших к меньшим). Следует избегать ситуации, когда в результате скругления полностью исчезает одна из определяющих его граней.

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

Ричард Гебхард называет модели, получаемые в результате систематического применения описанной стратегии, явными — в отличие от интуитивных моделей, которые опираются на интуицию автора. Если автор модели использует свои собственные предположения о том, что является очевидным, а что нет, то где гарантия, что пользователь модели встанет на тот же уровень интуитивного понимания? Более того, чем более опытен автор модели, тем более неуловимой становится его интуиция и вместе с этим возрастает сложность понимания его моделей.

Конструктивная концепция — это еще и правильные имена!
Когда вы создаете конструктивный элемент в MCAD-системе, для него обычно генерируется имя по умолчанию типа «Бобышка-07» или «Отверстие-03». Такое имя не несет особой информации об элементе — ведь его тип также определяется по иконке, расположенной слева от имени элемента. Поэтому намного больше смысла в том, чтобы поменять имя элемента по умолчанию на более значимое. Например, заменить «Бобышка-07» на «Цилиндр 60 диа x 20×35ID», а «Отверстие-03» на «Отверстие 35мм». Такой подход позволяет значительно облегчить чтение дерева элементов. Не менее важно правильно именовать детали по принципу Категория — Номер — Вариант — Ревизия.

Некоторые могут возразить на это, что переименовывать вручную каждый создаваемый элемент — непозволительная роскошь, приводящая к увеличению времени создания модели. Однако, по мнению Ричарда Гебхарда, этот довод не идет ни в какое сравнение с возможностью редактировать модель в будущем.

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

Реализация

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

Вторым шагом может стать создание «Руководства по лучшему опыту» — в этом документе должны подробно описываться несколько примеров создания с нуля правильных моделей, типичных для конкретного предприятия.

Третий важный документ — список контрольных вопросов для проверки соответствия любой модели принятым требованиям. В отличие от «Руководства», этот документ может быть предельно простым — за образец можно взять рисунок ниже:

Пример списка контрольных вопросов

Пример списка контрольных вопросов (нажмите для увеличения)

«Если бы программисты строили дома...»

Ни в презентации Ричарда Гебхарда, ни в публикациях Эвана Яреса нет никаких доказательств тому факту, что в результате применения описанной стратегии действительно получаются редактируемые модели. Неясна и коммерческая выгода от ее внедрения на предприятии — соответствующий эксперимент, похоже, еще не проводился.

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

А что же прямое моделирование?

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

Дописывание операций прямого редактирования в конец дерева построения (подход Creo Parametric/Direct и Inventor/Fusion) создает новые отношения родитель-ребенок, чреватые проблемами в будущем. Синхронные конструктивные элементы Solid Edge лишь увеличивают общую сложность дерева и затрудняют его понимание.

В то же время, возрастающая с каждым релизом мощь «чистых» (не обременных историей построения) систем прямого моделирования — типа BricsCAD и SpaceClaim — показывает, что конструктивная концепция вполне может существовать и без необходимости регенерации геометрии. Одно из обещающих направлений в рамках прямого моделирования — так называемые локальные конструктивные элементы. Они не образуют отношения родитель-ребенок — каждый из таких элементов можно удалить или изменить независимо. Подобно своим упорядоченным собратьям, локальные конструктивные элементы имеют параметры, с помощью которых можно редактировать их форму и размеры. Операции прямого редактирования используют степени свободы локальных элементов и тем самым просто перестраивают их, не изменяя конструктивную концепцию и не добавляя никакой лишней информации к списку конструктивных элементов. Явные и неявные геометрические и размерные ограничения могут связывать локальные элементы между собой, опеспечивая глобальной изменения параметрической модели.

Пример конструктивных элементов в системе прямого моделирования BricsCAD

Пример конструктивных элементов в системе прямого моделирования BricsCAD (нажмите для увеличения)

Пример реализации локальных конструктивных элементов на основе декларативного подхода (с помощью скрытых от пользователя геометрических и размерных ограничений) можно найти в подсистеме моделирования изделий из листового металла, доступной в BricsCAD Platinum. Разработчики BricsCAD делают ставку на эту технологию, которая получит дальнейшее развитие в релизе V15 (он будет выпущен в октябре 2014 г.)

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

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