Параметризация и твердотельное моделирование
После вебинара об использовании параметризации при моделировании изделий в одной российской CAD системе вспомнилась старая статья Владимира Жигулина (Delcam) в журнале "CАПР и графика", 1/2000 «О том, как твердое тело может быть слишком твердым, или взгляд на параметризацию сбоку»
Процитирую кратко и без рисунков (кого заинтересует - ищите оригинал).
Понятия «твердотельное моделирование» и «параметризация» стали очень модными сегодня в России и, зачастую, при выборе системы моделирования мы не отдаем себе отчет, что любое поветрие – даже самое модное и впечатляющее – имеет вполне определенную область применения. Давайте рассмотрим две ключевые фигуры в процессе производства – конструктора и технолога.
Конструктор
Одной из первоочередных задач конструктора является создание концептуального дизайна будущего продукта и первоначальная увязка элементов конструкции. Чтобы облегчить работу конструктора, была изобретена параметризация – очень ценный инструмент, позволяющий за короткое время проиграть различные конструктивные схемы и избежать принципиальных ошибок. Хорошая идея – изменить один или несколько параметров и посмотреть, как будет вести себя при этом изделие.
Просматривая популярные издания в области психологии, автор статьи однажды натолкнулся на результаты одного интересного исследования. Оказывается, человеческий мозг может оперировать одновременно в среднем с 7-ю понятиями. Если параметров много, то поведение модели становиться абсолютно непредсказуемым – изменение одного параметра может изменить значения десятков других, и конструктор вынужден проверять вслед за компьютером все параметры, чтобы понять, что же на самом деле произошло. Еще хуже обстоит дело, если нужно заменить какой-либо параметр на другой.
Каждая конструкция обладает вполне определенным числом степеней свободы. Каждый параметр или связь ограничивает некоторое количество степеней свободы. Чтобы параметрическая модель была полностью определенной, количество параметров и связей должно быть таким, чтобы точно ограничивать все степени свободы – не больше и не меньше. Если ограничений меньше, чем нужно, то модель недоопределена, и недостающие значения приходится брать из воздуха. Если ограничений больше – то они начинают зависеть друг от друга, и часть параметров и связей перестают быть определяющими (кто знает, какие!?). Ситуация усугубляется еще и тем, что определяющие параметры и связи должны быть независимыми друг от друга.
Часто получается, что система переопределена, когда пользователь хочет добавить необходимые ему связь или параметр. Чтобы восстановить баланс, система должна удалить какие-либо связи. Иногда системы выдают предупреждение и дают пользователю возможность выбрать – какие связи удалить, иногда они делают это автоматически и молча. В этой ситуации легко потерять важные связи, и важный размер может непредсказуемо изменить свое значение. Чтобы не допустить ошибку, приходится в уме проигрывать всю последовательность действий компьютера и проверять результат. Это сводит на нет все преимущества параметризации.
Таким образом, параметризация оказывается полезной только на начальных этапах работы конструктора, когда схема параметризации еще достаточно проста. Если количество параметров начинает переходить за некоторое значение (автор считает, что это значение лежит в интервале 10-50 параметров в зависимости от типа конструкции), то трудозатраты на согласование схемы параметризации становятся неоправданно большими и проще не использовать параметризацию вообще.
После того, как принципиальная схема конструкции выбрана, конструктор начинает создавать первоначальную модель изделия. Здесь наряду с параметризацией ему на помощь приходит другое изобретение человеческого ума – твердотельное моделирование. Основная идея твердотельного моделирования состоит в том, чтобы всегда гарантировать физически непротиворечивое представление геометрических объемных тел и оперировать понятиями добавления/удаления материала. Корректное твердое тело содержит внутренний объем, ограниченный внешней поверхностью тела. Такое представление позволяет определять объем тела, его массу, моменты инерции, центр тяжести и т.п. Эти параметры зачастую являются критическими при оценке эффективности конструкции изделия и жизненно важны конструктору.
Несмотря на различные трудности, параметризация и твердотельное моделирование являются ценным инструментом конструктора. Однако существует область, где твердотельное моделирование может в принципе ограничить возможности конструктора – это создание сложных форм. Твердотельные моделировщики сознательно стараются ограничить количество параметров, чтобы легче было с ними работать. Для создания же сложных форм нужно свободно манипулировать формой поверхности. Рассмотрим параллелепипед. Чтобы задать его геометрию, достаточно определить 3 параметра: длина, ширина и высота. Попробуем теперь оттянуть точку на границе одной грани. Количество параметров сразу приближается к 100 при использовании Безье поверхностей 3-го порядка – одного из наиболее распространенных аппаратов описания геометрии подобного типа. Уже для такой простой фигуры количество параметров выходит за предел, когда еще можно работать. Для более сложных моделей количество параметров может достигать миллионов. Автоматизация не дается бесплатно. Ее цена – ограничение свободы дизайна.
Однако, практически все твердотельные моделировщики, предназначенные для моделирования промышленных изделий, на самом деле в своей основе содержат поверхностное моделирование – так называемое граничное представление твердых тел. Твердое тело в граничном представлении описывается набором поверхностей, соединенных по границам в единое целое. Основное требование – поверхности должны образовывать замкнутый объем. В противном случае операции твердотельного моделирования (сложение, вычитание, пересечение) перестают быть однозначно определенными. Чтобы обойти данное ограничение, различные системы предлагают различные решения.
Поверхности могут быть интегрированы в твердотельный моделировщик различными способами. Как вариант используется сшивка поверхностей в твердое тело. Чтобы такая сшивка была осуществлена, необходимо, чтобы поверхности с определенной точностью ограничивали замкнутый объем.
Технолог
Задача технолога состоит в том, чтобы попытаться изготовить деталь той формы, которую придумал конструктор. Довольно часто эта задача оказывается невыполнимой. Причин для этого множество: деталь может не выниматься из пресс-формы, металл застывает прежде, чем заполняет все полости кокиля, фреза не может выбрать карман, потому что другая часть детали не дает ей доступа и т.д. Достаточно много технологов с удовольствием сняли бы голову с конструктора, тем более, что «он ей все равно не думает».
Технологу нет нужды проигрывать различные конструкционные схемы – он должен как можно быстрее изготовить деталь, которая бы в конечном счете удовлетворила бы конструктора и в то же время изготавливалась бы с минимальными затратами усилий. Таким образом, применение параметризации в работе технологов крайне ограничено, а порой не требуется вообще.
Технологам приходится очень часто изменять геометрию детали, чтобы сделать ее технологичной: вводить штамповочные и литейные уклоны, скруглять острые углы, учитывать усадку и т.д. Может показаться, что поверхность уклона и скругление – достаточно простые геометрические элементы, с которыми справляется любой уважающий себя твердотельщик. Проблема в том, что в данном случае количество переходит в качество. Скругления и уклоны начинают накладываться друг на друга и система твердотельного моделирования перестает с этим справляться.
Корректность математической модели часто не имеет большого значения в производстве. Если между математическими поверхностями есть зазор размером в 0,2 мм, то фреза диаметром 60 мм пройдет по нему и оставит после себя гладкую физическую поверхность. В то же время твердотельный моделировщик обычно не может проигнорировать такой зазор и требует исправить модель…
Далее от себя добавлю еще одно популярное сегодня направление. Это реверсивный инжиниринг. Модель после сканирования имеет фасетное представление. Есть сейчас системы, которые автоматически создают замкнутое тело, но его практически невозможно изменить, т.к. оно аппроксимировано мелкими лоскутами. Можно сказать, что оно стало неуправляемым. Чтобы на основе этой модели делать что-то новое, надо интерактивно создавать поверхности в соответствие с их функциональным назначением. Чем жестче требования по точности, тем более мелкие лоскуты – тем сложнее с ними дальше работать. А затем надо сшивать их в твердое тело, если заказчик далее использует CAD легкого класса. Но это тема отдельной статьи.