О том, как твердое тело может быть слишком твердым, или Взгляд на параметризацию сбоку
О том, как потянуть за точку на поверхности
Понятия «твердотельное моделирование» и «параметризация» стали сегодня в России очень модными, и зачастую при выборе системы моделирования мы не отдаем себе отчета в том, что любое поветрие — даже самое модное и впечатляющее — имеет вполне определенную область применения.
Давайте рассмотрим две ключевые фигуры в процессе производства — конструктора и технолога.
Конструктор
Одной из первоочередных задач конструктора является создание концептуального дизайна будущего продукта и первоначальная увязка элементов конструкции. Чтобы облегчить работу конструктора, была изобретена параметризация — очень ценный инструмент, позволяющий за короткое время «проиграть» различные конструктивные схемы и избежать принципиальных ошибок.
Хорошая идея — изменить один или несколько параметров и посмотреть, как будет вести себя при этом изделие. Она завораживает конструкторов. Но давайте посмотрим на рисунок с параметризацией, которая может быть получена в пакете Pro/Engineer фирмы Parametric Technology Corporation.
Просматривая популярные издания в области психологии, автор статьи однажды натолкнулся на результаты одного интересного исследования. Оказывается, человеческий мозг может оперировать одновременно в среднем семью понятиями. А сколько параметров и условий связи мы видим здесь? Несколько десятков. И хотя в данном случае мы еще можем представить себе зависимость между параметрами, в более сложных ситуациях поведение модели становится абсолютно непредсказуемым. Изменение одного параметра может изменить значения десятков других, и конструктор вынужден проверять вслед за компьютером все параметры, чтобы понять, что же на самом деле произошло. Еще хуже обстоит дело, если какой-либо параметр нужно заменить.
Каждая конструкция обладает вполне определенным числом степеней свободы. Каждый параметр или связь ограничивает некоторое количество степеней свободы. Чтобы параметрическая модель была полностью определенной, количество параметров и связей должно быть таким, чтобы точно ограничивать все степени свободы, — не больше и не меньше. Если ограничений меньше, чем нужно, то модель недоопределена, и недостающие значения приходится брать «из воздуха». Если ограничений становится больше, они начинают зависеть друг от друга, и некоторые параметры и связи перестают быть определяющими (кто знает, какие?!). Ситуация усугубляется еще и тем, что определяющие параметры и связи должны быть независимыми друг от друга.
Решение задачи параметризации по силам практически только компьютеру. Варианты поведения компьютера в различных ситуациях могут быть следующими:
- Система определена: компьютер молчит, пользователь счастлив. Обычно это бывает на самом начальном этапе, когда система моделирования сама расставляет связи и параметры так, как считает это необходимым.
- Система недоопределена: пакет моделирования обычно молча подставляет недостающие параметры, исходя из текущих значений координат и размеров. Некоторые интеллектуальные системы, такие как Pro/Engineer и SolidEdge, подставляют более сложные связи (параллельность, перпендикулярность, совпадение точек и т.п.). Обычно эта ситуация не вызывает проблем и возникает тогда, когда пользователь удаляет какой-либо параметр или связь. Неприятный момент здесь заключается лишь в том, что компьютер автоматически создает новые связи порой в непредсказуемых для пользователя местах. Если система решает, что нужно восстановить тот параметр, который только что был удален, то такой параметр пользователь в принципе не может удалить.
- Система переопределена. Это типичный случай, когда пользователь хочет добавить необходимые ему связь или параметр. Чтобы восстановить баланс, система должна удалить какие-либо связи. Иногда системы выдают предупреждение и дают пользователю возможность выбрать, какие связи удалить, но иногда они делают это автоматически и молча. В этой ситуации легко потерять важные связи, и важный размер может непредсказуемо изменить свое значение. Чтобы не допустить ошибку, приходится в уме «проигрывать» всю последовательность действий компьютера и проверять результат. Это сводит на нет все преимущества параметризации.
Таким образом, параметризация оказывается полезной только на начальных этапах работы конструктора, когда схема параметризации еще достаточно проста. Если количество параметров начинает превышать некоторое значение (автор считает, что это значение составляет 10-50 параметров в зависимости от типа конструкции), то трудозатраты на согласование схемы параметризации становятся неоправданно большими, и проще не использовать параметризацию вообще.
Одно из очень полезных применений параметризации — создание библиотек стандартных элементов. Затраты на создание схемы параметризации окупаются многократным использованием библиотек. Однако в системе КОМПАС российской компании АО «Аскон» успешно реализован более простой подход к вопросу создания библиотек стандартных элементов. Вместо того чтобы тратить силы и средства на создание или покупку дорогостоящего параметризатора, «Аскон» запрограммировал большое количество стандартных элементов в подключаемые библиотеки и дал сторонним фирмам средства для создания подобных библиотек. Это позволило при низкой стоимости программного продукта получить большой набор параметризованных библиотек. И хотя КОМПАС не имеет современных графических средств для создания собственных элементов, пользователь может найти значительную часть стандартных элементов в существующих библиотеках или использовать специальный язык описания для программирования собственных.
После того как принципиальная схема конструкции выбрана, конструктор начинает создавать первоначальную модель изделия. Здесь наряду с параметризацией ему на помощь приходит другое изобретение — твердотельное моделирование. Основная идея твердотельного моделирования состоит в том, чтобы всегда гарантировать физически непротиворечивое представление геометрических объемных тел и оперировать понятиями добавления/удаления материала. Корректное твердое тело содержит внутренний объем, ограниченный внешней поверхностью тела. Такое представление позволяет определять объем тела, его массу, моменты инерции, центр тяжести и т.п. Эти параметры зачастую являются критическими при оценке эффективности конструкции изделия и чрезвычайно важны для конструктора.
Все было бы хорошо, но существующая математика твердых тел в ряде случаев не в состоянии решить правильно поставленную задачу. В этих ситуациях приходится искать обходные пути.
Несмотря на различные трудности, параметризация и твердотельное моделирование являются ценным инструментом конструктора. Однако существует область, где твердотельное моделирование может в принципе ограничить возможности конструктора, — это создание сложных форм.
Твердотельные моделировщики сознательно стараются ограничить количество параметров, чтобы с ними легче было работать. Для создания же сложных форм нужно свободно манипулировать формой поверхности. Рассмотрим параллелепипед. Чтобы задать его геометрию, достаточно определить три параметра: длину, ширину и высоту. Попробуем теперь оттянуть точку на границе одной грани, как это показано на рисунке. Количество параметров при использовании поверхностей Безье третьего порядка — одного из наиболее распространенных аппаратов описания геометрии подобного типа сразу приближается к 100. Уже для такой простой фигуры количество параметров выходит за предел, еще позволяющий работать. Для более сложных моделей количество параметров может достигать несколько миллионов. Автоматизация не дается даром; ее цена — ограничение свободы дизайна.
Не многие из сторонников твердотельного моделирования знают, что практически все твердотельные моделировщики, предназначенные для моделирования промышленных изделий, на самом деле в своей основе содержат поверхностное моделирование — так называемое граничное представление твердых тел.
Посмотрим на рисунок. Твердое тело в граничном представлении описывается набором поверхностей, соединенных по границам в единое целое. Основное требование — поверхности должны образовывать замкнутый объем. В противном случае операции твердотельного моделирования (сложение, вычитание, пересечение) перестают быть однозначно определенными. Чтобы обойти данное ограничение, различные системы предлагают различные решения.
В большинстве случаев системы твердотельного моделирования предлагают такой набор операций, который гарантирует построение правильных твердых тел. Такой подход покрывает 60-70% потребностей моделирования, но оставшаяся их часть требует использования поверхностей.
Поверхности могут быть интегрированы в твердотельный моделировщик различными способами. Так, Unigraphics, SolidWorks имеют возможность сшивки поверхностей в твердое тело. Для осуществления такой сшивки необходимо, чтобы поверхности с определенной точностью ограничивали замкнутый объем. Выполнить такое условие часто бывает довольно трудно, но оно является необходимым, чтобы продолжать процесс моделирования.
Другой подход — считать поверхности твердыми телами малой толщины. Проблема здесь в том, что при твердотельных операциях такие тела прорезают «щели», а не отсекают объемы.
Фирма Delcam plc (Великобритания) использовала другой принципиально новый подход. Вместо того чтобы пытаться из «некорректной» геометрии создать правильное твердое тело, система моделирования PowerSHAPE применяет твердотельные операции к произвольной геометрии и предлагает наиболее логичный с точки зрения системы результат. Подход разработчиков здесь прост:
- если геометрия образует твердое тело, то и в результате получится твердое тело;
- если геометрия неточная, то и результат получается приблизительный (а в ряде случаев — точный). Если результат оказался не таким, как ожидал пользователь, PowerSHAPE предлагает набор средств редактирования, чтобы «исправить» получившуюся геометрию.
Таким образом, PowerSHAPE дает возможность пользователю выполнить операцию и, если результат неудовлетворителен, исправить либо исходную, либо конечную геометрию. Такой подход значительно ускоряет процесс моделирования, потому что в каждой конкретной ситуации отдельные несовершенства математической модели могут не иметь принципиального значения, и если в PowerSHAPE пользователь может просто проигнорировать их, то в «правильных» системах твердотельного моделирования ему придется либо искать обходные пути, либо вообще отказаться от конструкции подобного типа.
Технолог
Задача технолога состоит в том, чтобы попытаться изготовить деталь той формы, которую придумал конструктор. Довольно часто эта задача оказывается невыполнимой. Причин для этого множество: деталь может не выниматься из пресс-формы; металл застывает прежде, чем заполняет все полости кокиля; фреза не может выбрать карман, потому что другая часть детали не дает ей доступа, и т.д. Многие технологи с удовольствием сняли бы голову с конструктора, тем более, что, по их мнению, «он ею все равно не думает».
Технологу нет нужды «проигрывать» различные конструкционные схемы — он должен как можно быстрее изготовить деталь, которая в конечном счете удовлетворила бы конструктора и в то же время изготавливалась бы с минимальными затратами. Таким образом, применение параметризации в работе технологов крайне ограничено, а порой не требуется вообще.
Очень часто у технолога нет необходимости иметь дело с законченной моделью детали. Чтобы обработать поверхность вставки пресс-формы, нужна только эта поверхность, а сама пресс-форма набирается из стандартных компонентов, которые могут быть куплены в готовом виде или как полуфабрикаты. Часто заготовки поступают из других подразделений и предприятий, и задача технолога — обработать конкретный элемент детали. Если заставлять технолога моделировать законченное твердое тело, то это может потребовать в несколько раз больше времени, чем моделирование определенного участка, который требуется обработать.
Таким образом, применение твердотельного моделирования может существенно (более чем вдвое) удлинить время подготовки производства. Технологам приходится очень часто изменять геометрию детали, чтобы сделать ее технологичной: вводить штамповочные и литейные уклоны, скруглять острые углы, учитывать усадку и т.д.
Может показаться, что поверхность уклона и скругление — достаточно простые геометрические элементы, с которыми справляется любой уважающий себя твердотельщик. Однако в данном случае количество переходит в качество. Скруглений и уклонов становится настолько много, что модель приобретает колоссальные размеры, и система твердотельного моделирования перестает справляться со свалившимся на нее объемом информации.
Давайте снова вспомним о том, что системы твердотельного моделирования хранят не только поверхности, ограничивающие твердое тело, но и связи между ними, а также поддерживают замкнутость и непротиворечивость объема твердого тела. Таким образом, твердотельщики выполняют намного больше работы, чем поверхностные моделировщики, и должны удовлетворять более жестким ограничениям. Все это снижает вероятность получения конечного результата — давайте не будем забывать, что математика для моделирования все еще далека от совершенства.
Корректность математической модели часто не имеет большого значения в производстве. Если между математическими поверхностями есть зазор размером в 0,2 мм, то фреза диаметром 60 мм пройдет по нему и оставит после себя гладкую физическую поверхность. В то же время твердотельный моделировщик обычно не может проигнорировать такой зазор и требует исправить модель. В таких случаях поверхностный моделировщик позволяет получить деталь сегодня, тогда как твердотельный откладывает ее на завтра.
О том, как потянуть за точку на поверхности
Существует задача в моделировании, которая пока не по зубам ни одному из твердотельных моделировщиков и большинству поверхностных. Эта задача обычно формулируется следующим образом: «Я хочу взять точку на поверхности и оттянуть ее туда, куда мне нужно. Поверхность при этом должна оставаться гладкой, а изменения формы поверхности находиться в пределах небольшой области» .
Не останавливаясь на подробностях математики, скажем только, что в твердотельных моделях в общем случае возникают разрывы, если тянуть за точку. Рассмотрим менее очевидную проблему: почему даже большинство поверхностных моделировщиков не может удовлетворительно справиться с поставленной задачей?
В математическом моделировании наиболее распространены два типа поверхностей: поверхности Безье и NURBS-поверхности.
Поверхности Безье (одни из самых старых) представляют собой множество элементарных лоскутов, сшитых вместе вдоль границ. Форма поверхности Безье определяется набором контрольных точек, и важной особенностью является то, что угловые контрольные точки совпадают с точками в углах лоскутов поверхности, а касательная плоскость проходит через угловую контрольную точку и две соседние к ней . В сочетании с возможностью разбить любой лоскут в любой точке на два лоскута это позволяет использовать простые средства редактирования поверхностей (наподобие тех, которые известны в пакете CorelDraw для редактирования кривых).
Для поверхностей Безье пользователь может указать точку на поверхности и задать ей произвольное положение. Кроме того, можно легко задать значения касательных в этой точке. Все было бы хорошо, если бы не одна особенность поверхностей Безье: на границах лоскутов между угловыми точками возникают изломы и поверхность теряет гладкость. Восстановить гладкость можно, но для этого приходится изменять форму соседних лоскутов и т.д. Этот процесс распространяется до внешних границ поверхности. Таким образом, локальное изменение координат одной точки при условии сохранения гладкости вызывает глобальное изменение формы всей поверхности, и, исправив модель в одном месте, мы легко можем испортить ее в другом.
NURBS-поверхности, напротив, позволяют производить локальные изменения формы, сохраняя при этом гладкость. Но у NURBS-поверхностей все контрольные точки, управляющие формой, «висят» вне поверхности и не существует простых средств редактирования формы. Чтобы позволить пользователю относительно легко редактировать форму поверхности, приходится применять изощренные математические методы. Эти методы порой дают непредсказуемые результаты, которые уже невозможно исправить.
Около 20 лет назад ученые в Кембридже поставили и решили задачу «оттягивания точки». Сейчас эта уникальная математика используется в программном обеспечении фирмы Delcam plc. Описание поверхностей Безье было модифицировано таким образом, что при редактировании положения угловых точек излома на границах лоскутов не возникает и изменения остаются локальными, как у NURBS-поверхностей. Это дает возможность легко изменять форму поверхности и «лепить» модели практически произвольной формы. Даже если стандартные алгоритмы редактирования поверхностей не срабатывают, всегда можно использовать ручные методы и реализовать задуманное.
Заключение
Системы математического моделирования — дорогое удовольствие. Прежде чем выбирать систему для своего предприятия, необходимо представить себе задачи, которые она должна решать.
Если система приобретается для конструкторов, создающих новые изделия, то оптимальным может оказаться параметризованный твердотельный моделировщик. Однако для дизайна внешних поверхностей, от которых зависит внешний вид изделия и его потребительские качества, лучше подходит поверхностный моделировщик.
Если же система предназначена для подготовки производства, то здесь лучшим решением будет система поверхностного моделирования. Исключение составляют производства, которые выпускают изделия простых геометрических форм с помощью механообработки. Твердотельный моделировщик в этом случае может оказаться более эффективным.
Не нужно бояться комбинировать программное обеспечение различных фирм. В настоящее время общепризнанно, что ни одна CAD/CAM-компания пока не в состоянии предложить полное интегрированное решение, способное удовлетворить все потребности. Сейчас политика многих компаний состоит в том, чтобы использовать лучшие в своем классе решения. Некоторые проблемы при передаче данных многократно окупаются преимуществами использования специализированных систем.
«САПР и графика» 1'2000