Блог → Два разных подхода к автоматизации конструирования

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

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

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

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

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

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

В качестве редактора, поддерживающего процесс последовательных уточнений геометрии, может быть предложена отечественная система CherryCAD, где аналогом куска мягкой глины на плоскости является БЭФ в виде замкнутого заполненного скругляемого N-угольника. В системе возможны следующие операции с БЭФ:
- конформное преобразование типа: масштабирование, поворот, перемещение, зеркальное отображение и т.п.;
- неконформное преобразование (деформирование) в виде скругления углов, срезания фасок, безразрывного вытягивания и вдавливания (превращение "кота" в "зайца", и наоборот);
- добавление и исключение фрагментов;
- вырезание отверстий (создание многосвязных областей в заполненном штриховкой контуре).

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

Неконформные операции

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

Данные требования не содержат каких-либо принциальных трудностей в реализации. Самое существенное - это создать быстродействующие алгоритмы синтеза и регенерации БЭФ после его корректировки.

Аппликативные операции

Задачи добавления (исключения) фрагментов и вырезания отверстий могут быть решены, например, путем реализации аппликативных операций (затенения), с которыми мы нередко встречаемся в 3D-системах или растровых "рисовалках", типа Paintbrush. Правда, методы исполнения, тут и там, разные: векторные и растровые (темплейтные). Основное препятствие введению аппликативных операций в графический редактор - это снижение быстродействия, связанное с необходимостью анализа затеняемых фрагментов. Одно из решений этой проблемы, реализованное в системе CherryCAD - распределение растровых и векторных функций между графическим редактором и модулем трансляции файлов для плоттеров. Редактор использует свойства растрового монитора для получения аппликаций (аппликатирование само по себе - быстрый процесс). Транслятор же выполняет соответствующие операции в векторном виде непосредственно перед выводом на внешние устройства. Если проводить аналогию с 3D-системами, где реализованы булевы операции, то предлагаемую схему можно назвать плоской твердотельной моделью (2D solid model).

Выпущенный на свободу джин аппликаций позволяет решить еще две важные задачи. Первая - это создание сборочных чертежей, где очень много случаев затенения деталями друг друга, без необходимой доработки и переделки геометрии входящих в сборку деталей, т. е. 2D-редактор получает как бы третью безразмерную координату. Вторая - это управление топологией, например в линейной параметрической модели, (полученной с использованием аппликации), инвариантной к взаимному расположению БЭФ. Имеется в виду отсутствие необходимости доработки при передвижении БЭФ.

Способ представления БЭФ в виде скругляемого многоугольника дает возможность сократить объем памяти, занимаемый геометрической моделью. Вполне достаточным для описания является следующий набор: координаты вершин многоугольника, радиусы скругления вершин, виды скруглений и тип заполнения. Если работать с обычной точностью и отвести под координаты и радиусы четырехбайтные переменные, а под типы скругления и штриховки - однобайтные, то размер блока информации (в байтах) для подобного БЭФ будет (где N - число вершин многоугольника):



При хранении аналогичной модели в виде отрезков и дуг потребуется (где K - число отрезков в блоке линий штриховки, которое нередко очень велико):



Данные теоретические выкладки находят подтверждение при сравнении размеров чертежных файлов CherryCAD и других систем, а также при конвертировании из форматов *.CHR и *.CAT в формат DWG, разница размеров которых нередко достигает порядка. Малый размер модели позволяет полностью размещать текущую геометрическую информацию в оперативной памяти (100-200 Кбайт для чертежей повышенной сложности). Если сравнить время доступа к винчестеру и ОЗУ даже при самых благоприятных условиях для первого, то выигрыш в быстродействии будет не менее одного порядка.

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

Вопрос о преимуществах параметрического или "ручного" способа редактирования модели должен решаться в каждом конкретном случае, поэтому желательно иметь возможность выполнения обоих вариантов. Если использовать аппликации, неконформные преобразования и параметризацию, то можно выстроить следующую цепочку действий конструктора:
1. "Рисование размытого объекта" или точное построение объекта по желанию.
2. Модификация объекта, детальное уточнение, введение новых фрагментов, в том числе и ранее созданных, из архива. При необходимости, выполнение точных геометрических построений согласно принципам начертательной геометрии, расчетов геометрических характеристик, точных измерений и т.п.
3. Простановка размерных цепей. При необходимости, одновременное построение параметрической модели в автоматическом или полуавтоматическом режиме.
4. Задание необходимых значений размеров и автоматическое изменение геометрии (если была построена параметрическая модель).
5. Окончательное оформление чертежа с использованием архива фрагментов, встроенного текстового редактора, файл-менеджера и других сервисных возможностей.

В случае применения данной схемы для выпуска чертежей изделий, обладающих преемственностью, достаточно выполнить действия 2-5, а иногда можно ограничиться лишь 4-ым. Для примера приведем покадровое изображение процесса синтеза геометрии в графическом редакторе системы CherryCAD (без использования параметризации) и в традиционном графическом редакторе. Кадры не синхронизированы по времени: 1-4 иллюстрируют процесс создания объекта, 4-6 - процесс внесения изменений в готовый объект.



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

Если немного пофантазировать, то рассмотренный подход можно экстраполировать на 3D-системы и даже на CAM-системы, но делать какие-либо заключения по этому поводу представляется преждевременным. На этом я прощаюсь с вами, до новых встреч на страницах блога!