/
Author: Ли К.
Tags: электротехника проектирование инженерия машиностроение автоматизация инженерное дело автоматизация технологических процессов
ISBN: 5-94723-770-9
Year: 2004
Text
Основы САПР
CAD/CAM/CAE
Кунву Ли
Основы САПР
CAD/CAM/CAE
ПИТЕР
Москва Санкт-Петербург Нижний Новгород Воронеж
Новосибирск Ростов-на-Дону - Екатеринбург - Самара
Киев Харьков Минск
2004
ББК 30.2-5-05
УДК 621.398.001 2
Л55
Ли К.
Л55 Основы САПР (CAD/CAM/CAE). — СПб.: Питер, 2004. — 560 с.: ил.
ISBN 5-94723-770-9
В этой книге изложены основные принципы работы автоматизированных систем для проектиро-
вания изделий и подготовки их производства (без углубления и детали конкретных систем). Рассмотрены
компоненты САПР, основные концепции графического программирования системы автоматизированной
разработки чертежей, системы геометрического моделирования, представление кривых и поверхностей и
работа с ними, метод конечных элементов, интеграция систем, быстрое прототипирование и изготовле-
ние, виртуальная инженерия, стандарты обмена данными между системами.
Книга может быть использована студентами инженерных специальностей в качестве учебного по-
собия при изучении систем автоматизированного проектирования.
ББК 30 2-5-05
УДК 621 398.001.2
Права на издание получены по соглашению с Addison-Wesley Longman.
Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного
разрешения владельцев авторских прав.
Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как надежные Тем не
менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную
точность и полноту приводимых сведений и не несет ответственности за возможные ошибки, связанные с использованием книги.
ISBN 0201380366 (англ.)
ISBN 5-94723-770-9
© 1999 by Addison Wesley Longman, Inc.
© Перевод на русский язык ЗАО Издательский дом «Питер», 2004
© Издание на русском языке, оформление ЗАО Издательский дом «Питер», 2004
Краткое содержание
Предисловие............................................................13
Глава 1. Введение в САПР...............................................17
Глава 2. Компоненты САПР...............................................34
Глава 3. Основные концепции графического программирования............51
Глава 4. Системы автоматизированной разработки чертежей..............96
Глава 5. Системы геометрического моделирования......................115
Глава 6. Представление кривых и работа с ними ......................164
Глава 7. Представление поверхностей и работа с ними..................202
Глава 8. Метод конечных элементов....................................225
Глава 9. Оптимизация.................................................268
Глава 10. Интеграция CAD и САМ............................................300
Глава 11. Числовое программное управление.................................329
Глава 12. Быстрое прототипирование и изготовление.........................378
Глава 13. Виртуальная инженерия...........................................436
Глава 14. Стандарты обмена данными между системами........................462
Приложение А. Реализация структуры данных полуребер.......................474
Приложение Б. Реализация структуры данных крыльевых ребер.................476
Приложение В. Операторы Эйлера.............................(..............478
Приложение Г. Пошаговый алгоритм реализации булевской операции.......492
Приложение Д. Структура данных и топологические операторы
для немногообразных систем моделирования............................499
Приложение Е. Алгоритм де Кастильо...................................508
Приложение Ж. Вычисление В-сплайновой кривой по методу Кокса—де Бура . . 511
Приложение 3. Объединение В-сплайнов.................................516
Приложение И. Доказательство формулы дифференцирования В-сплайна . . . 519
Приложение К. Подход Пенга к вычислению пересечения
NURBS-поверхностей.........................................................522
Приложение Л. Формулировка системных уравнений конечноэлементного
анализа на базе основного дифференциального уравнения . . . 526
Приложение М. Сравнение CAD-систем на платформе Windows..................531
Литература ...............................................................541
Алфавитный указатель......................................................551
Содержание
Предисловие...............................................................13
От издательства...........................................................16
Глава 1. Введение в САПР................................................17
1.1. Обзор..............................................................17
1.2. Определение CAD, САМ и САЕ.........................................22
1.3. Сценарий интеграции проектирования и производства посредством
общей базы данных ......................................................24
1.4. Реальный пример использования САПР в разработке продукта...........28
Вопросы и задачи........................................................33
Глава 2. Компоненты САПР................................................34
2.1. Аппаратное обеспечение.............................................34
2.1.1. Векторные графические устройства .............................36
2.1.2. Растровые графические устройства..............................38
2.2. Конфигурация аппаратных средств....................................42
2.3. Программные компоненты.............................................43
2.4. САПР на базе Windows...............................................48
Вопросы и задачи........................................................50
Глава 3. Основные концепции графического программирования...............51
3.1. Графические библиотеки.............................................51
3.2. Системы координат..................................................53
3 3. Окно и видовой экран..............................................59
3.4. Примитивы..........................................................61
3.4.1. Отрезок........................................................62
3.4.2. Многоугольник..................................................63
3.4.3. Маркер.........................................................63
3.4.4. Текст..........................................................64
3.5. Ввод графики........................................................66
3.6. Дисплейный файл.....................................................66
3.7. Матрица преобразования.............................................67
3.7.1. Трансляция ....................................................68
3.7.2. Вращение.......................................................69
3.7.3. Отображение....................................................73
3.7.4. Другие матрицы преобразования..................................77
3.8. Удаление невидимых линий и поверхностей............................Т
3.8.1. Алгоритм удаления невидимых граней............................7
3 8.2. Алгоритм художника..........................................8и
7
Содержание
3.8.3. Алгоритм удаления невидимых линий ..............................81
3.8.4. Метод z-буфера..................................................82
3.9. Визуализация.........................................................84
3.9.1. Затушевывание ..................................................84
3.9.2. Трассировка лучей...............................................89
3.10. Графический интерфейс пользователя..................................90
3.11. Система X window....................................................91
Вопросы и задачи..........................................................92
Глава 4. Системы автоматизированной разработки чертежей...................96
4.1. Настройка параметров чертежа.........................................96
4.1.1. Единицы измерения...............................................96
4.1.2. Размеры чертежа.................................................97
4.1.3. Слой............................................................99
4.1.4. Сетка и привязка...............................................100
4.2. Базовые функции черчения ...........................................100
4.2.1. Прямая линия...................................................100
4.2.2. Окружность и дуга окружности...................................101
4.2.3. Сплайн..........................................................Ю2
4.2.4. Удаление.......................................................102
4.2.5. Скругление и снятие фасок......................................102
4.2.6. Штриховка.......................................................ЮЗ
4.3. Функции аннотирования................................................ЮЗ
4.3.1. Простановка размеров ...........................................ЮЗ
4.3.2. Примечания......................................................Ю5
4.4. Вспомогательные функции.............................................105
4.4.1. Копирование....................................................105
4.4.2. Окно............................................................Ю6
4.4.3. Символы....................................................... Ю6
4.4.4. Макропрограммирование..........................................107
4.4.5. Измерения.......................................................Ю7
4.4.6. Дополнительные функции.........................................108
4.5. Совместимость файлов чертежей.......................................108
Вопросы и задачи...................................................... 109
Глава 5. Системы геометрического моделирования..........................115
5.1. Системы каркасного моделирования...................................116
5.2. Системы поверхностного моделирования...............................117
5.3. Системы твердотельного моделирования...............................118
5.3.1. Функции моделирования.........................................119
5.3.2. Структура данных..............................................129
5.3.3. Операторы Эйлера..............................................144
5.3.4. Булевские операторы...........................................147
5.3.5. Расчет объемных параметров....................................148
5.4. Немногообразные системы моделирования..............................153
5.5. Системы моделирования устройств....................................156
8
Содержание
5.5.1. Базовые функции моделирования агрегатов......................156
5.5.2. Просмотр агрегата............................................158
5.5.3. Возможности совместного проектирования.......................159
5.5.4. Использование моделей агрегатов .............................159
5.5.5. Упрощение агрегатов..........................................160
5.6. Моделирование для Web.............................................161
Вопросы и задачи.......................................................162
Глава 6. Представление кривых и работа с ними..........................164
6.1. Типы уравнений....................................................164
6.2. Конические сечения................................................165
6.2.1. Окружность и дуга окружности.................................165
6.2.2. Эллипс и эллиптическая дуга..................................167
6.2.3. Гипербола ...................................................168
6.2.4. Парабола.....................................................168
6.3. Эрмитовы кривые ..................................................169
6.4. Кривая Безье......................................................171
6.4.1. Дифференцирование уравнения кривой Безье.....................174
6.4.2. Вычисление кривой Безье......................................176
6.5. В-сплайн..........................................................176
6.5.1. Вычисление В-сплайна.........................................184
6.5.2. Объединение В-сплайнов.......................................184
6.5.3. Дифференцирование В-сплайна..................................184
Пример 6.5..........................................................185
6.6. Неоднородный рациональный В-сплайн ...............................186
6.6.1. Вычисление NURBS-кривой......................................190
6.6.2. Дифференцирование NURBS-кривой...............................191
6.7. Интерполяционные кривые...........................................192
6.7.1. Интерполяция эрмитовой кривой................................193
6.7.2. Интерполяция В-сплайном .....................................196
6.8. Пересечение кривых................................................197
Вопросы и задачи.......................................................199
Глава 7. Представление поверхностей и работа с ними....................202
7.1. Типы уравнений поверхностей.......................................202
7.2. Билинейная поверхность............................................203
7.3. Лоскут Куна.......................................................204
7.4. Бикубический лоскут...............................................206
7.5. Поверхность Безье.................................................209
7.5.1. Вычисление поверхности Безье.................................211
7.5.2. Дифференцирование поверхности Безье..........................212
7.6. В-сплайновая поверхность..........................................213
7.6.1. Вычисление В-сплайновой поверхности..........................213
7.6.2. Дифференцирование В-сплайновой поверхности...................214
7.7. Поверхность NURBS.................................................215
7.8. Интерполяционная поверхность......................................219
Содержание
9
7.9. Пересечение поверхностей..........................................221
Вопросы и задачи.......................................................222
Глава 8. Метод конечных элементов......................................225
8.1. Введение в метод конечных элементов...............................226
8.2. Формулировка метода конечных элементов............................229
8.3. Моделирование конечных элементов..................................240
8.4. Автоматическое построение сетки...................................244
8.4.1. Соединение узлов.............................................244
8.4.2. Топологическое разбиение.....................................248
8.4.3. Геометрическое разбиение.....................................250
8.4.4. Решеточные методы............................................251
8.4.5. Отображаемые элементы........................................254
8.4.6. Повышение качества сетки.....................................257
8.5. Пример анализа по методу конечных интервалов......................258
Вопросы и задачи.......................................................264
Глава 9. Оптимизация...................................................268
9.1. Постановка задачи.................................................268
9.2. Ограничения.......................................................270
9.2.1. Внешние штрафные функции...................................... 271
9.2.2. Внутренние штрафные функции...................................272
9.3. Методы поиска.....................................................274
9.4. Метод модельной закалки...........................................277
9.4.1. Комбинаторная оптимизация....................................277
9.4.2. Алгоритм.....................................................278
9.4.3. Применения алгоритма модельной закалки........................281
9.5. Генетические алгоритмы............................................284
9.5.1. Основные принципы ............................................285
9.5.2. Реализация...................................................289
9.6. Структурная оптимизация...........................................291
9.6.1. Оптимизация размеров.........................................292
9 6.2. Оптимизация формы.........................................293
9.6.3. Оптимизация топологии........................................294
Вопросы и задачи......................................................298
Глава 10. Интеграция CAD и САМ........................................300
10.1. Производственный цикл детали....................................300
10.2. Технологическая подготовка производства..........................301
10.2.1. Неавтоматизированный подход ................................304
10.2.2. Модифицированный подход.....................................308
10.2.3. Генеративный подход..........................................309
10.3. Автоматизированные системы технологической подготовки производства . . 310
10.3.1. САМ-1 САРР ..................................................310
10.3.2. MIPLAN и MultiCAPP...........................................313
10.3.3. MetCAPP......................................................313
10
Содержание
10.3.4. ICEM-PART....................................................313
10.4. Групповая технология..............................................314
10.4.1. Классификация и кодирование..................................315
10.4.2. Существующие системы кодирования ............................316
Глава 11. Числовое программное управление...............................329
11.1. Введение..........................................................329
11.2. Аппаратная конфигурация станка с ЧПУ..............................330
11.3. Типы систем ЧПУ...................................................332
11.4. Системы NC, CNC, DNC..............................................332
11.5. Основы составления программ обработки деталей.....................335
11.5.1. Системы координат............................................335
11.5.2. Синтаксис программы обработки................................337
11.6. Составление программ вручную......................................342
11.7. Автоматизированное составление программ...........................346
11.7.1. Язык APT ....................................................347
11.7.2. Прочие языки программирования................................360
11.8. Программирование обработки по базе CAD............................361
11.8.1. Построение траекторий........................................364
11.8.2. Моделирование и проверка траекторий .........................369
Вопросы и задачи........................................................375
Глава 12. Быстрое прототипирование и изготовление.......................378
12.1. Обзор.............................................................378
12.2. Процессы быстрого прототипирования и изготовления ................379
12.2.1. Стереолитография.............................................382
12.2.2. Отверждение на твердом основании.............................384
12.2.3. Избирательное лазерное спекание .............................385
12.2.4. Трехмерная печать............................................386
12.2.5. Ламинирование................................................387
12.2.6. Моделирование методом наплавления............................390
12.2.7. Недорогие станки для быстрого прототипирования и изготовления . . . 390
12.3. Применение быстрого прототипирования и изготовления...............393
12.3.1. Прототипы для оценки проекта .........'......................393
12.3.2. Прототипы для функциональной оценки..........................393
12.3.3. Процессы быстрой инструментовки .............................395
12.3.4. Примеры специального применения быстрого прототипирования .... 409
12.4. Процесс стереолитографии..........................................412
12.4.1. Входные геометрические данные................................413
12.4.2. Ориентация детали ...........................................417
12.4.3. Поддерживающая структура.....................................418
12.4-4. Расщепление и объединение....................................419
12.4.5. Подготовка ..................................................423
12.4.6. Изготовление детали .........................................424
12.4.7. Завершение детали и слив излишков полимера ..................427
12.4.8. Последующая обработка........................................427
Содержание
11
12.5. Программные технологии для быстрого прототипирования.............429
12.5.1. Задачи программ подготовки детали...........................430
Вопросы и задачи.......................................................435
Глава 13. Виртуальная инженерия .......................................436
13.1. Определение виртуальной инженерии................................437
13.2. Компоненты виртуальной инженерии.................................437
13.2.1. Виртуальное проектирование..................................438
13.2.2. Цифровая имитация...........................................439
13.2.3. Виртуальное прототипирование................................440
13.2.4. Виртуальный завод ..........................................441
13.3. Применение виртуальной инженерии.................................442
13.3.1. Средство проектирования.....................................443
13.3.2. Оценка возможности производства.............................443
13.3.3. Оценка и контроль качества..................................444
13.3.4. Оценка и оптимизация производственного процесса.............444
13.3.5. Планирование производства и продуктов ......................444
13.3.6. Интерфейс для заказчика.....................................445
13.3.7. База знаний.................................................445
13.3.8. Коллективная разработка.....................................445
13.4. Родственные технологии...........................................446
13.4.1. Интеграция CAD и компьютерного моделирования................446
13.4.2. Управление степенью детализации и избирательная визуализация . . . 446
13.5. Примеры промышленного применения виртуальной инженерии...........448
13.6. Программные продукты.............................................450
13.7. Аппаратура.......................................................455
13.8. Исследовательские проблемы и препятствия виртуальной инженерии .... 459
Вопросы и задачи.......................................................460
Глава 14. Стандарты обмена данными между системами ....................462
14.1. Методы обмена данными технических требований.....................462
14.2. Формат IGES......................................................464
14.3. Формат DXF.......................................................469
14.4. Формат STEP......................................................469
Вопросы и задачи.......................................................473
Приложение А. Реализация структуры данных полуребер....................474
Приложение Б. Реализация структуры данных крыльевых ребер..............476
Приложение В. Операторы Эйлера.........................................478
Приложение Г. Пошаговый алгоритм реализации булевской операции.........492
Приложение Д. Структура данных и топологические операторы для
немногообразных систем моделирования..................................499
12
Содержание
Приложение Е. Алгоритм де Кастильо..................................508
Приложение Ж. Вычисление В-сплайновой кривой по методу Кокса—де Бура . . 511
Приложение 3. Объединение В-сплайнов................................516
Приложение И. Доказательство формулы дифференцирования В-сплайна . . . 519
Приложение К. Подход Пенга к вычислению пересечения NURBS-поверхностей . 522
Приложение Л. Формулировка системных уравнений конечноэлементного
анализа на базе основного дифференциального уравнения . . . 526
Приложение М. Сравнение CAD-сисгем на платформе Windows.............531
Литература..........................................................541
Алфавитный указатель................................................551
Моей семье и моим студентам.
Без вашей помощи эта книга никогда не была бы закончена
Предисловие
Поразительный рост вычислительной мощности компьютеров и широкое рас-
пространение программного обеспечения проектирования и производства при-
вели к тому, что инженеры могут использовать системы автоматизированного
проектирования (САПР) для решения повседневных задач, а не только для под-
готовки наглядных иллюстраций. Международная конкуренция, увеличение
числа опытных специалистов и повышенные требования к качеству заставляют
владельцев предприятий автоматизировать проектирование и производство. Как
следствие этого, преподаватели высшей школы чувствуют потребность изменить
программу своих курсов, относящихся к проектированию, чтобы научить сту-
дентов пользоваться САПР и дать им представления об основных принципах,
лежащих в основе этих систем.
Цель этой книги — изложить эти принципы, описать концепции систем, не вда-
ваясь в конкретные детали, связанные с работой в конкретных пакетах. Некото-
рым может показаться, что достаточно научить студентов пользоваться сущест-
вующими системами, или даже одной системой, наиболее популярной, потому
что студент с инженерной специальностью станет пользователем, а не разработ-
чиком САПР. Дело, однако, в том, что для эффективной работы с существую-
щим программным обеспечением и создания макросов и программ, автоматизи-
рующих процесс проектирования, пользователь должен иметь представление не
только о среде, в которой он работает, но и о принципах, лежащих в ее основе.
Фундаментальное знание помогает студенту быстро изучить любую конкретную
систему с конкретной средой и использовать ее максимально эффективно. Более
того, руководства пользователя, поставляемые с САПР, обычно уделяют основ-
ное внимание пользовательскому интерфейсу и синтаксису; предполагается, что
пользователь имеет определенную теоретическую подготовку. Без этой подго-
товки читатель встретит серьезные затруднения с терминологией системной до-
кументации, а еще большие сложности у него вызовет анализ сообщений об
ошибках.
Эта книга написана главным образом о САПР, используемых в конструирова-
нии механических систем. Сведения о компьютерной графике могут, однако,
оказаться полезными и тем, кто работает с ней в других областях инженерной
деятельности. Книга предназначена для студентов старших курсов и аспирантов.
Для работы с ней достаточно знать основы программирования, математического
анализа, матричной и векторной алгебры; никаких знаний о собственно САПР
у читателя не предполагается. Количество математических терминов и доказа-
14
Предисловие
тельств было сведено к минимуму. Соответствующие разделы излагаются на
уровне интуитивного восприятия Благодаря этому выбор определенных глав
книги (см. ниже) позволяет использовать ее в качестве основы для чтения лек-
ций студентам младших курсов, а также в качестве справочника по САПР.
Подготавливая эту книгу, я поставил перед собой цель объяснить фундамен-
тальные концепции, иллюстрируя их адекватным количеством чертежей и при-
меров, не вдаваясь, однако, в избыточные подробности. Мне попадались учебни-
ки, авторы которых не справлялись с изложением основных идей, пытаясь
объяснить слишком много частных моментов. Повышенная детализация делает
книгу столь толстой, что студенты просто боятся ее открывать. В тех местах, где
нужны были подробности, я всегда указывал ссылки на справочную литературу.
Я старался рекомендовать только такие работы, которые имели непосредствен-
ное отношение к обсуждаемым вопросам, и это позволило мне свести количество
ссылок к минимуму. Некоторые учебники рекомендуют столько дополнитель-
ной литературы, что студенты просто теряются в ней.
Глава 1 рассказывает о роли САПР в жизненном цикле продукта. Здесь дается
определение САПР и приводятся примеры, иллюстрирующие использование
САПР в проектировании и производстве. Эти примеры показывают, каким обра-
зом принципы, излагающиеся во всех последующих главах, применяются в рабо-
те над новыми проектами. Глава 2 рассматривает аппаратные и программные
компоненты, из которых состоят современные САПР. Преподавателю рекомен-
дуется обновлять соответствующий раздел своего курса по мере выхода новых
программ и нового оборудования.
Глава 3 вводит понятия, относящиеся к графическому программированию с ис-
пользованием графической библиотеки, не замыкаясь на какой-либо одной из
них. Однако примеры в этой главе написаны для библиотеки OpenGL, которая
постепенно становится стандартом де факте для персональных компьютеров и
рабочих станций. Это глава послужит хорошим введением в тему для любого чи-
тателя, интересующегося компьютерной графикой. Глава 4 дает обзор основных
функций, предоставляемых пользователю большинством систем автоматизиро-
ванной разработки чертежей. Как и предыдущая, эта глава рассматривает кон-
цепции и функции, имеющиеся во всех широко распространенных системах ав-
томатизированной разработки чертежей. В примерах используются команды
AutoCAD, потому что на настоящий момент эта система наиболее популярна.
Опыт взаимодействия с конкретной системой студенты должны получать во
время лабораторных работ.
Глава 5 описывает основы систем геометрического моделирования. В ней рас-
сказывается о системах немногообразного моделирования — развивающейся вет-
ви геометрического моделирования. Отдельные темы, слишком сложные для
студентов, но имеющие ценность для профессионалов, вынесены в приложения.
Те, кому системы геометрического моделирования нужны только для работы,
могут спокойно пропустить их. Главы 6 и 7 посвящены представлению кривых и
поверхностей и работе с ними. Это математические основы систем геометриче-
ского моделирования и автоматизированной разработки чертежей. Я постарался
свести количество типов кривых и поверхностей к минимуму, которого было бы
достаточно для большинства приложений Чтобы студенты не потерялись в
Предисловие
15
большом объеме материала, я вынес сложные математические доказательства
в приложения. Объяснение давалось на интуитивном уровне, приемлемом для
инженеров, не являющихся профессионалами-математиками.
В главе 8 рассматриваются системы САЕ, объясняется процесс анализа методом
конечных элементов и описывается подготовка информации, необходимой для
этого анализа, на основании геометрических моделей!, созданных в CAD. Здесь
дается обзор подходов к автоматическому построению сеток конечных элемен-
тов. В главе 9 описываются методы оптимизации. Подробно рассказывается о
развивающихся методах, таких как метод модельной закалки и генетические ал-
горитмы. Примером интеграции анализа методом конечных элементов и опти-
мизации является структурная оптимизация — относительно новая концепция
в проектировании. Метод структурной оптимизации может применяться к ис-
ходному концептуальному проекту для проверки его соответствия требованиям.
В главе 10 речь идет о различных методах технологической подготовки произ-
водства и о программах, позволяющих интегрировать CAD и САМ. Здесь же
вводится концепция групповой технологии, которая заключается в кодировании
деталей. Без групповой технологии не может быть автоматизированной подго-
товки производства. В главе 11 рассказывается о том, каким образом осуществ-
ляется программирование станков с ЧПУ после построения чертежа детали с по-
мощью CAD и задания параметров технологического процесса ее изготовления.
В главе 12 рассматривается еще один аспект САМ — развивающаяся технология,
носящая название быстрого прототипирования. В отличие от станков с ЧПУ,
она позволяет строить деталь непосредственно по модели, созданной в CAD, без
сложного планирования производства. Эта технология первой позволила полно-
стью интегрировать CAD и САМ. Глава 13 посвящена еще одной развивающейся
технологии — виртуальному проектированию, объединяющему в процессе разра-
ботки продукта системы геометрического моделирования, САЕ и САМ.
В главе 14 дается обзор стандартных форматов файлов, позволяющих обмени-
ваться информацией между различными системами. Эти стандарты незаменимы
для интеграции САПР.
В конце каждой главы приводятся задачи, назначение которых — проверить ка-
чество усвоения материала студентами. Некоторые задачи требуют от студентов
использования собственных систем. В этом случае помимо книги им придется
пользоваться также документацией — руководствами пользователя.
Как уже отмечалось, книга может использоваться в качестве основы для чтения
лекций студентам младших курсов. Приложения можно полностью исключить,
потому что они важны для разработчиков систем, а не для пользователей. Вме-
сто них я бы порекомендовал расширить разделы, посвященные применению
САПР в целом: построение объемных тел, их чертежей, оценка результатов про-
ектирования методом конечноэлементного анализа и изготовление прототипов
на фрезеровальном станке с ЧПУ пли других устройствах быстрого прототипи-
рования, таких как устройства стереолитографии. Если книгу планируется ис-
пользовать в качестве основы для курса геометрического моделирования, гла-
вы 1, 2, 4 и 14 можно дать в качестве дополнительной литературы, а основное
внимание уделить приложениям.
Глава 1
Введение в САПР
1.1. Обзор
Современные предприятия не смогут выжить во всемирной конкуренции, если
не будут выпускать новые продукты лучшего качества (quality, Q), более низкой
стоимости (cost, С) и за меньшее время (delivery, D). Поэтому они стремятся ис-
пользовать огромные возможности памяти компьютеров, их высокое быстродей-
ствие и возможности удобного графического интерфейса для того, чтобы авто-
матизировать и связать друг с другом задачи проектирования и производства,
которые раньше были весьма утомительными и совершенно не связанными друг
с другом. Таким образом сокращается время и стоимость разработки и выпуска
продукта. Для этой цели используются технологии автоматизированного проек-
тирования (computer-aided design — CAD), автоматизированного производства
(computer-aided manufacturing — САМ) и автоматизированной разработки или
конструирования (computer-aided engineering — САЕ). Чтобы понять значе-
ние систем CAD/CAM/CAE1, мы должны изучить различные задачи и опера-
ции, которые приходится решать и выполнять в процессе разработки и произ-
водства продукта. Все эти задачи, взятые вместе, называются жизненным циклом
продукта (product cycle). Пример жизненного цикла продукта, описанного Зей-
дом [166], с незначительными усовершенствованиями приведен на рис. 1.1.
Прямоугольники, нарисованные сплошными линиями, представляют два глав-
ных процесса, составляющих жизненный цикл продукта: процесс разработки и
процесс производства. Процесс разработки начинается с запросов потребителей,
которые обслуживаются отделом маркетинга, и заканчивается полным описани-
ем продукта, обычно выполняемым в форме рисунка. Процесс производства на-
чинается с технических требований и заканчивается поставкой готовых изделий.
Операции, относящиеся к процессу разработки, можно разделить на аналити-
ческие и синтетические. Как следует из рис. 1.1, первичные операции разработ-
ки, такие как определение необходимости разработки, формулирование техниче-
ских требований, анализ осуществимости и сбор важной информации, а также
концептуализация разработки, относятся к подпроцессу синтеза. Результатом
подпроцесса синтеза является концептуальный проект предполагаемого продук-
та в форме эскиза или топологического чертежа, отражающего связи различных
компонентов продукта. В этой части цикла делаются основные финансовые вло-
жения, необходимые для реализации идеи продукта, а также определяется его
1 По-русски все эти системы вместе называются системами автоматизированного проекти-
рования — САПР. — Примеч. перев.
18
Глава 1. Введение в САПР
функциональность. Большая часть информации, порождаемой и обрабатывае-
мой в рамках подпроцесса синтеза, является качественной, а следовательно, не-
удобной для компьютерной обработки.
Рис. 1.1. Жизненный цикл продукта
Готовый концептуальный проект анализируется и оптимизируется — это уже
подпроцесс анализа. Прежде всего вырабатывается аналитическая модель, по-
скольку анализируется именно модель, а не сам проект. Несмотря на быстрый
рост количества и качества компьютеров, используемых в конструировании, в
обозримом будущем отказаться от использования абстракции аналитической
модели мы не сможем. Аналитическая модель получается, если из проекта уда-
лить маловажные детали, редуцировать размерности и учесть имеющуюся сим-
метрию. Редукция размерностей, например, подразумевает замену тонкого листа
из какого-либо материала на эквивалентную плоскость с атрибутом толщины
или длинного и тонкого участка на линию с определенными параметрами, харак-
теризующими поперечное сечение. Симметричность геометрии тела и нагрузки,
приложенной к нему, позволяет рассматривать в модели лишь часть этого тела.
Вообще говоря, вам уже приходилось заниматься подобным абстрагированием
при анализе структур в курсе основ механики. Вспомните, что вы всегда начина-
ли анализ с построения упрощенного эскиза структуры. Типичные примеры ана-
лиза: анализ напряжений, позволяющий проверить прочность конструкции, кон-
троль столкновений, позволяющий обнаружить возможность столкновений
1.1. Обзор
19
движущихся частей, составляющих механизм, а также кинематический анализ,
показывающий, что проектируемое устройство будет совершать ожидаемые дви-
жения. Качество результатов, которые могут быть получены в результате ана-
лиза, непосредственно связано с качеством выбранной аналитической модели,
которым оно ограничивается.
После завершения проектирования и выбора оптимальных параметров начина-
ется этап оценки проекта. Для этой цели могут изготавливаться прототипы.
В конструировании прототипов все большую популярность приобретает новая
технология, названная быстрым прототипированием (rapidprototyping). Эта тех-
нология позволяет конструировать прототип снизу вверх, то есть непосредствен-
но из проекта, поскольку фактически требует только лишь данных о поперечном
сечении конструкции. Если оценка проекта на основании прототипа показывает,
что проект не удовлетворяет требованиям, описанный выше процесс разработки
повторяется снова.
Если же результат оценки проекта оказывается удовлетворительным, начинает-
ся подготовка проектной документации. К ней относятся чертежи, отчеты и спи-
ски материалов. Чертежи обычно копируются, а копни передаются на производ-
ство.
Как видно по рис. 1.1, процесс производства начинается с планирования, которое
выполняется на основании полученных на этапе проектирования чертежей, а за-
капчивается готовым продуктом. Технологическая подготовка производства —
это операция, устанавливающая список технологических процессов по изготов-
лению продукта и задающая их параметры. Одновременно выбирается обору-
дование, на котором будут производиться технологические операции, такие как
получение детали нужной формы из заготовки. В результате подготовки произ-
водства составляются план выпуска, списки материалов и программы для обору-
дования. На этом же этапе обрабатываются прочие специфические требования,
в частности рассматриваются конструкции зажимов и креплений. Подготовка
занимает в процессе производства примерно такое же место, как подпроцесс син-
теза в процессе проектирования, требуя значительного человеческого опыта и
принятия качественных решений. Такая характеристика подразумевает слож-
ность компьютеризации данного этапа. После завершения технологической под-
готовки начинается выпуск готового продукта и его проверка на соответствие
требованиям. Детали, успешно проходящие контроль качества, собираются вме-
сте, проходят тестирование функциональности, упаковываются, маркируются
и отгружаются заказчикам.
Выше мы описали типичный жизненный цикл продукта. Посмотрим теперь, ка-
ким образом на этапах этого цикла могут быть применены технологии CAD,
САМ и САЕ. Как уже говорилось, компьютеры не могут широко использоваться
в подпроцессе синтеза, поскольку они не обладают способностью хорошо обра-
батывать качественную информацию. Однако даже на этом этапе разработчик
может, например, при помощи коммерческих баз данных успешно собирать важ-
ную для анализа осуществимости информацию, а также пользоваться данными
из каталогов.
Непросто представить себе использование компьютера и в процессе концептуа-
лизации проекта, потому что компьютер пока еще не стал мощным средством
20
Глава 1. Введение в САПР
для интеллектуального творчества. На этом этапе компьютер может сделать свой
вклад, обеспечивая эффективность создания различных концептуальных проек-
тов. Полезными могут оказаться средства параметрического и геометрического
моделирования, а также макропрограммы в системах автоматизированной раз-
работки чертежей (computer-aided drafting). Все это типичные примеры систем
CAD. Система геометрического моделирования (geometric modeling system) — это
трехмерный эквивалент системы автоматизированной разработки чертежей, то
есть программный пакет, работающий с трехмерными, а не с плоскими объекта-
ми. О разработке чертежей речь пойдет в главе 4, а о геометрическом моделиро-
вании — в главе 5.
В аналитической фазе проектирования ценность компьютеров проявляется по-
настоящему. Программных пакетов для анализа напряжений, контроля столк-
новений и кинематического анализа существует столько, что приводить какие-
либо названия смысла не имеет. Эти программные пакеты относятся к средствам
автоматизированного конструирования (САЕ). Главная проблема, связанная с
их использованием, заключается в необходимости формирования аналитической
модели. Проблемы не существовало бы вовсе, если бы аналитическая модель
автоматически выводилась из концептуального проекта. Однако, как уже отме-
чалось, аналитическая модель не идентична концептуальному проекту — она вы-
водится из него путем исключения несущественных деталей и редукции размер-
ностей. Необходимый уровень абстракции зависит от типа анализа и желаемой
точности решения. Следовательно, автоматизировать процесс абстрагирова-
ния достаточно сложно, поэтому аналитическую модель часто создают отдельно.
Обычно абстрактная модель проекта создается в системе разработки рабочих
чертежей или в системе геометрического моделирования, а иногда с помощью
встроенных средств аналитического пакета. Аналитические пакеты обычно тре-
буют, чтобы исследуемая структура была представлена в виде объединения свя-
занных сеток, разделяющих объект на отдельные участки, удобные для ком-
пьютерной обработки. Если аналитический пакет может генерировать сетку
автоматически, человеку остается задать только границы абстрактного объекта.
В противном случае сетка также создается пользователем либо в интерактивном
режиме, либо автоматически, но в другой программе. Процесс создания сетки
называется моделированием методом конечных элементов (finite-element modeling).
Моделирование этим методом включает в себя также задание граничных усло-
вий и внешних нагрузок.
Подпроцесс анализа может выполняться в цикле оптимизации проекта по ка-
ким-либо параметрам. Разработано множество алгоритмов поиска оптимальных
решений, а на их основе построены коммерчески доступные программы. Проце-
дура оптимизации может считаться компонентом системы автоматизированного
проектирования, но более естественно рассматривать эту процедуру отдельно.
Фаза оценки проекта также выигрывает от использования компьютера. Если для
оценки проекта нужен прототип, мы можем быстро сконструировать его по за-
данному проекту при помощи программных пакетов, генерирующих код для ма-
шины быстрого прототипирования. Такие пакеты считаются программами для
автоматизированной подготовки производства (САМ). Разумеется, форма про-
тотипа должна быть определена заранее в наборе входных данных. Данные, оп-
1.1. Обзор
21
ределяющие форму, получаются в результате геометрического моделирования.
Обзор существующих технологий быстрого прототипирования дан в главе 12.
Быстрое прототипирование — удобный способ конструирования прототипа, од-
нако еще удобнее пользоваться виртуальным прототипом, который часто назы-
вается «цифровой копией» (digital mock-up) и позволяет получить столь же по-
лезные сведения.
Когда аналитические средства для работы с цифровыми копиями станут доста-
точно мощными, чтобы давать столь же точные результаты, что и эквивалент-
ные эксперименты на реальных прототипах, цифровые копии начнут вытеснение
обычных прототипов. Эта тенденция будет усиливаться по мере совершенство-
вания технологий виртуальной реальности1, позволяющих нам ощущать цифро-
вую копию так же, как реальный прототип. Построение цифровой копии назы-
вается виртуальным прототипированием. Виртуальный прототип может быть
создан и в специализированной программе геометрического моделирования.
Виртуальное прототипирование подробно рассматривается в главе 13.
Последняя фаза процесса разработки — подготовка проектной документации. На
этом этапе чрезвычайно полезным оказывается использование систем подготов-
ки рабочих чертежей. Способность подобных систем работать с файлами позво-
ляет систематизировать хранение и обеспечить удобство поиска документов.
Компьютерные технологии используются и на стадии производства. Процесс про-
изводства включает в себя планирование выпуска, проектирование и приобрете-
ние новых инструментов, заказ материалов, программирование машин с ЧПУ,
контроль качества и упаковку. Компьютерные системы, используемые в этих
операциях, могут быть классифицированы как системы автоматизированного
производства. Например, программа автоматизированной технологической под-
готовки (computer-aided process planning — САРР) используется на этапе подго-
товки производства и относится к системам автоматизированного производства
(САМ). Как отмечалось выше, подготовка производства с трудом поддается авто-
матизации, поэтому полностью автоматических систем технологической подго-
товки в настоящий момент не существует. Однако существует множество хороших
программных пакетов, генерирующих код для станков с числовым программным
управлением. Станки этого класса позволяют получить деталь нужной формы
по данным, хранящимся в компьютере. Они аналогичны машинам для быстрого
прототипирования. Программирование станков с ЧПУ рассматривается в главе 11.
К системам автоматизированного производства относят также программные па-
кеты, управляющие движением роботов при сборке компонентов и перемещении
их между операциями, а также пакеты, позволяющие программировать коорди-
натно-измерительную машину (coordinate measuring machine — СММ), исполь-
зуемую для проверки продукта.
Итак, вы получили представление о том, каким образом компьютерные техноло-
гии используются в операциях, составляющих жизненный цикл продукта, и ка-
кие задачи решаются при помощи систем автоматизированного проектирования.
Технологии CAD, САМ и САЕ будут определены в следующем разделе.
1 Виртуальная реальность — это технология создания изображений, выглядящих как на-
стоящие объекты. Эта технология позволяет оператору ощущать цифровые объекты и
манипулировать ими так же, как настоящими.
22
Глава 1. Введение в САПР
1.2. Определение CAD, САМ и САЕ
Согласно предыдущему разделу, автоматизированное проектирование (compu-
ter-aided design — CAD) представляет собой технологию, состоящую в исполь-
зовании компьютерных систем для облегчения создания, изменения, анализа
и оптимизации проектов [59]. Таким образом, любая программа, работающая с
компьютерной графикой, так же как и любое приложение, используемое в инже-
нерных расчетах, относится к системам автоматизированного проектирования.
Другими словами, множество средств CAD простирается от геометрических про-
грамм для работы с формами до специализированных приложений для анализа
и оптимизации [166]. Между этими крайностями умещаются программы для
анализа допусков, расчета масс-инерционных свойств, моделирования методом
конечных элементов и визуализации результатов анализа. Самая основная
функция CAD — определение геометрии конструкции (детали механизма, архи-
тектурные элементы, электронные схемы, планы зданий и т. п.), поскольку гео-
метрия определяет все последующие этапы жизненного цикла продукта. Для этой
цели обычно используются системы разработки рабочих чертежей и геометриче-
ского моделирования. Вот почему эти системы обычно и считаются системами
автоматизированного проектирования. Более того, геометрия, определенная в
этих системах, может использоваться в качестве основы для дальнейших опера-
ций в системах САЕ и САМ. Это одно из наиболее значительных преимуществ
CAD, позволяющее экономить время и сокращать количество ошибок, связан-
ных с необходимостью определять геометрию конструкции с нуля каждый раз,
когда она требуется в расчетах. Можно, следовательно, утверждать, что системы
автоматизированной разработки рабочих чертежей и системы геометрического
моделирования являются наиболее важными компонентами автоматизированно-
го проектирования.
Автоматизированное производство (computer-aided manufacturing — САМ) — это
технология, состоящая в использовании компьютерных систем для планиро-
вания, управления и контроля операций производства через прямой или кос-
венный интерфейс с производственными ресурсами предприятия. Одним из
наиболее зрелых подходов к автоматизации производства является числовое
программное управление (ЧПУ, numerical control — NC). ЧПУ заключается в
использовании запрограммированных команд для управления станком, который
может шлифовать, резать, фрезеровать, штамповать, изгибать и иными способа-
ми превращать заготовки в готовые детали. В наше время компьютеры способны
генерировать большие программы для станков с ЧПУ на основании геометри-
ческих параметров изделий из базы данных CAD и дополнительных сведений,
предоставляемых оператором. Исследования в этой области концентрируются
на сокращении необходимости вмешательства оператора.
Еще одна важная функция систем автоматизированного производства — програм-
мирование роботов, которые могут работать на гибких автоматизированных уча-
стках, выбирая и устанавливая инструменты и обрабатываемые детали на стан-
ках с ЧПУ. Роботы могут также выполнять свои собственные задачи, например
заниматься сваркой, сборкой и переносом оборудования и деталей по цеху.
Планирование процессов также постепенно автоматизируется. План процессов
может определять последовательность операций по изготовлению устройства от
1.2. Определение CAD, САМ и САЕ
23
начала и до конца на всем необходимом оборудовании. Хотя полностью автома-
тизированное планирование процессов, как уже отмечалось, практически невоз-
можно, план обработки конкретной детали вполне может быть сформирован
автоматически, если уже имеются планы обработки аналогичных деталей. Для
этого была разработана технология группировки, позволяющая объединять схо-
жие детали в семейства. Детали считаются подобными, если они имеют общие
производственные особенности (гнезда, пазы, фаски, отверстия и т. д.). Для ав-
томатического обнаружения схожести деталей необходимо, чтобы база данных
CAD содержала сведения о таких особенностях. Эта задача осуществляется при
помощи объектно-ориентированного моделирования или распознавания элемен-
тов (глава 5). Технология группировки описывается в главе 10.
Вдобавок, компьютер может использоваться для того, чтобы выявлять необхо-
димость заказа исходных материалов и покупных деталей, а также определять их
количество исходя из графика производства. Называется такая деятельность
планированием технических требований к материалу (material requirements plan-
ning — MRP). Компьютер может также использоваться для контроля состояния
станков в цехе и отправки им соответствующих заданий.
Автоматизированное конструирование (computer-aided engineering — САЕ) — это
технология, состоящая в использовании компьютерных систем для анализа гео-
метрии CAD, моделирования и изучения поведения продукта для усовершенст-
вования и оптимизации его конструкции. Средства САЕ могут осуществлять
множество различных вариантов анализа. Программы для кинематических рас-
четов, например, способны определять траектории движения и скорости звеньев
в механизмах. Программы динамического анализа с большими смещениями мо-
гут использоваться для определения нагрузок и смещений в сложных составных
устройствах типа автомобилей. Программы верификации и анализа логики и
синхронизации имитируют работу сложных электронных цепей.
По всей видимости, из всех методов компьютерного анализа наиболее широко
в конструировании используется метод конечных элементов (finite-element me-
thod — FEM). С его помощью рассчитываются напряжения, деформации, тепло-
обмен, распределение магнитного поля, потоки жидкостей и другие задачи с не-
прерывными средами, решать которые каким-либо иным методом оказывается
просто непрактично. В методе конечных элементов аналитическая модель струк-
туры представляет собой соединение элементов, благодаря чему она разбивается
на отдельные части, которые уже могут обрабатываться компьютером.
Как отмечалось ранее, для использования метода конечных элементов нужна
абстрактная модель подходящего уровня, а не сама конструкция. Абстрактная
модель отличается от конструкции тем, что она формируется путем исключения
несущественных деталей и редуцирования размерностей. Например, трехмер-
ный объект небольшой толщины может быть представлен в виде двумерной обо-
лочки [2]. Модель создается либо в интерактивном режиме, либо автоматически.
Готовая абстрактная модель разбивается на конечные элементы, образующие
аналитическую модель. Программные средства, позволяющие конструировать
абстрактную модель и разбивать ее на конечные элементы, называются препро-
цессорами (preprocessors). Проанализировав каждый элемент, компьютер соби-
рает результаты воедино и представляет их в визуальном формате. Например,
24
Глава 1. Введение в САПР
области с высоким напряжением могут быть выделены красным цветом. Про-
граммные средства, обеспечивающие визуализацию, называются постпроцессо-
рами (postprocessors). О методе конечных элементов речь пойдет в главе 8.
Существует множество программных средств для оптимизации конструкций.
Хотя средства оптимизации могут быть отнесены к классу САЕ, обычно их рас-
сматривают отдельно. Ведутся исследования возможности автоматического оп-
ределения формы конструкции путем объединения оптимизации и анализа [18].
В этих подходах исходная форма конструкции предполагается простой, как,
например, у прямоугольного двумерного объекта, состоящего из небольших эле-
ментов различной плотности. Затем выполняется процедура оптимизации,
позволяющая определить конкретные значения плотности, позволяющие до-
стичь определенной цели с учетом ограничений на напряжения. Целью часто
является минимизация веса. После определения оптимальных значений плот-
ности рассчитывается оптимальная форма объекта. Она получается отбрасы-
ванием элементов с низкими значениями плотности. Введение в оптимизацию
дается в главе 9.
Замечательное достоинство методов анализа и оптимизации конструкций за-
ключается в том, что они позволяют конструктору увидеть поведение конечного
продукта и выявить возможные ошибки до создания и тестирования реальных
прототипов, избежав определенных затрат. Поскольку стоимость конструирова-
ния на последних стадиях разработки и производства продукта экспоненциально
возрастает, ранняя оптимизация и усовершенствование (возможные только бла-
годаря аналитическим средствам САЕ) окупаются значительным снижением
сроков и стоимости разработки.
Таким образом, технологии CAD, САМ и САЕ заключаются в автоматизации
и повышении эффективности конкретных стадий жизненного цикла продукта.
Развиваясь независимо, эти системы еще не до конца реализовали потенциал ин-
теграции проектирования и производства. Для решения этой проблемы была
предложена новая технология, получившая название компьютеризованного ин-
тегрированного производства (computer-integrated manufacturing — С1М). CIM
пытается соединить «островки автоматизации» вместе и превратить их в беспе-
ребойно и эффективно работающую систему. CIM подразумевает использование
компьютерной базы данных для более эффективного управления всем предпри-
ятием, в частности бухгалтерией, планированием, доставкой и другими задачами,
а не только проектированием и производством, которые охватывались система-
ми CAD, САМ и САЕ. CIM часто называют философией бизнеса, а не компью-
терной системой. В этом учебнике технологии CIM рассматриваться не будут.
1.3. Сценарий интеграции проектирования
и производства посредством общей базы данных
Приведенный ниже сценарий демонстрирует использование систем CAD/CAM/
САЕ в рамках всего жизненного цикла продукта для достижения упоминав-
шихся целей: повышения качества (Q), снижения стоимости (С) и ускорения от-
грузки (D). Этот сценарий может показаться несколько упрощенным на фоне
современных передовых компьютерных технологий, однако он иллюстрирует на-
1.3. Сценарий интеграции проектирования и производства посредством общей базы данных 25
правление развития техники. Рассмотрим фазы разработки и производства шка-
фа для аудиосистемы (рис. 1.2). Жизненный цикл этого продукта будет похожим
на жизненный цикл механической системы или здания, а значит, наш сценарий
будет применим и к таким продуктам.
Рис. 1.2. Шкаф для аудиосистемы
Предположим, что в технических требованиях для разработчика указано, что шкаф
должен иметь четыре полки: одну для проигрывателя компакт-дисков, одну для
проигрывателя аудиокассет, одну для радиоприемника и одну для хранения ком-
пакт-дисков. Вероятно, разработчик сделает множество набросков конструкции,
прежде чем придет к варианту, изображенному на рис. 1.2. На данном этапе он
может пользоваться автоматизированной системой разработки рабочих чертежей
(если задача решается в двух измерениях) или системой геометрического моде-
лирования (в случае трех измерений). Концептуальный проект может быть от-
правлен в отдел маркетинга по электронной почте для получения отзыва. Взаи-
модействие разработчика с отделом маркетинга может происходить и в реальном
времени через объединенные в сеть компьютеры. При наличии подходящего
оборудования подобное взаимодействие может быть удобным и продуктивным.
Информация о готовом концептуальном проекте сохраняется в базе данных.
Туда попадают сведения о конфигурации мебели (в нашем случае — вертикаль-
ное хранение компонентов аудиосистемы друг над другом), количестве полок,
распределении полок по компонентам и тому подобные данные. Другими слова-
ми, все особенности проекта, которые можно увидеть, взглянув на рис. 1.2, упо-
рядочиваются и помещаются в базу данных с возможностью считывания и изме-
нения в любой последующий момент.
Следующий шаг — определение размеров шкафа. Его габариты должны быть вы-
браны таким образом, чтобы на каждую полку можно было поставить одну из
множества имеющихся на рынке моделей аудиотехники соответствующего клас-
са. Значит, нужно получить сведения об их размерах. Эти сведения можно взять
в каталоге или в базе данных производителей или поставщиков. Доступ к базе
26
Глава 1. Введение в САПР
данных осуществляется аналогично доступу к книгам и их содержимому при
подключении к электронной библиотеке. Разработчик может даже скопировать
сведения в свою собственную базу данных, если он планирует часто пользовать-
ся ими. Накопление сведений о проекте подобно накоплению форм и файлов
при работе с текстовыми процессорами. Форма конструкции, изображенной на
рис. 1.2, должна изменяться в соответствии с полученными сведениями.
Затем разработчик должен выбрать материал для шкафа. Он может взять нату-
ральный дуб, сосну, ДСП, сталь илу что-нибудь еще. В нашем случае выбор
осуществляется интуитивно или исходя из имеющегося у разработчика опыта.
Однако в случае продуктов, рассчитанных на работу в жестких условиях, в част-
ности механических устройств, разработчик обязательно учитывает свойства ма-
териалов. На этом этапе также полезна база данных, потому что в ней могут быть
сохранены свойства множества материалов. Можно воспользоваться даже экс-
пертной системой, которая выберет материал по свойствам, хранящимся в базе
данных. Информация о выбранном материале также помещается в базу.
Следующий шаг — определение толшины полок, дверец и боковых стенок. В про-
стейшем случае, который мы рассматриваем, толщина может определяться глав-
ным образом эстетическими соображениями. Однако она должна быть по крайней
мере достаточной для того, чтобы избежать прогиба под воздействием установ-
ленной в шкаф техники. В механических устройствах высокой точности и струк-
турах, рассчитанных на большие нагрузки, такие параметры, как толщина, долж-
ны определяться точным расчетом, чтобы избежать деформации. Для расчета
деформации структур широко используется метод конечных элементов. Как уже
было объяснено, метод конечных элементов применяется к аналитической моде-
ли конструкции. В нашем случае аналитическая модель состоит из каркасных
сеток, на которые разбивается шкаф, рассматриваемый в приближении лис-
тов. Переход к приближению листов может быть выполнен автоматически при
помощи алгоритма преобразования к средним осям (medial axis transformation —
MAT) [146]. Элементы оболочки приближения листов также могут генерировать-
ся автоматически1. Параметры нагрузки, которые в нашем случае есть просто
веса соответствующих устройств, считываются из базы данных точно так же, как
и сведения о размерах. Определяя зависимость прогиба полок от их толщины,
разработчик может выбрать подходящее значение этого параметра и сохранить
его в базе данных. Этот процесс может быть автоматизирован путем интеграции
метода конечных элементов с процедурой оптимизации. Аналогичным образом
можно определить толщину боковых стенок и дверец, однако сделать это можно
и просто из эстетических соображений.
Затем разработчик выбирает метод сборки полок и боковых стенок. В идеале ме-
тод также может быть определен из расчета прочности структуры в целом или
при помощи экспертной системы, имеющей сведения о методах сборки.
После завершения этапов концептуализации проекта, его анализа и оптимизации
разработчик переходит к работе над проектной документацией, описывающей
шкаф с точностью до мельчайших подробностей. Чертежи отдельных деталей (по-
лок, дверец и боковых стенок) изготавливаются в системе разработки рабочих
1 Полностью автоматическое преобразование к средним осям и построение сеток для про-
извольного трехмерного объекта пока еще невыполнимы.
1.3. Сценарий интеграции проектирования и производства посредством общей базы данных 27
чертежей. На этом этапе разработчик может добавить некоторые эстетические де-
тали, например декоративные элементы на дверцах и боковых стенках. Детальные
чертежи помещаются в базу данных для использования в процессе производства.
Изготовление шкафа осуществляется в следующем порядке. Форма каждой де-
тали наносится на необработанный материал (в нашем случае дерево) и выреза-
ется пилой. Количество отходов можно снизить, располагая детали на кусках де-
рева оптимально. Разработчик может испытывать разные варианты размещения
на экране компьютера до тех пор, пока не будет найдена конфигурация с мини-
мальным количеством отходов. Компьютерная программа может помочь в этой
работе, рассчитывая количество отходов для каждой конфигурации. Программа
более высокого уровня может самостоятельно определить наиболее экономич-
ное размещение деталей на заготовке. В любом случае конечная конфигурация
сохраняется в компьютере и используется для расчета траектории движения пилы
станка с числовым программным управлением. Более того, программные средст-
ва позволяют разработать зажимы и крепления для процедуры выпиливания,
а также запрограммировать системы передачи материала. Эти системы могут
быть как простыми конвейерами, так и сложными роботами, передающими необ-
работанный материал на распилку и .забирающими готовые детали.
Подготовленные детали должны быть собраны вместе. Процесс сборки также
может выполняться роботами, которые программируются автоматически на ос-
новании описания конечного продукта и его деталей, хранящегося в базе дан-
ных. Одновременно проектируются зажимы и крепления для автоматизирован-
ной сборки. Наконец, робот может быть запрограммирован на покраску шкафа
после сборки. В настоящее время зажимы и крепления для сборки проектиру-
ются или выбираются планировщиком процессов, а программирование роботов
осуществляется в интерактивном режиме путем перемещения рабочего органа
робота вручную.
Общий вид получившегося сценария показан на рис. 1.3, из которого видно, ка-
ким образом база данных позволяет интегрировать системы CAD, САЕ и САМ,
что и является конечной целью CIM.
Рис. 1.3. Интеграция CAD, САГ' и САЕ. через базу данных
28
Глава 1. Введение в САПР
1.4. Реальный пример использования САПР
в разработке продукта
В предыдущем разделе мы представили идеальный сценарий, в котором все опе-
рации проектирования и производства были интегрированы посредством общей
базы данных. В этом разделе мы рассмотрим реальный пример, в котором разра-
ботка продукта будет производиться с помощью современных САПР. В данном
случае мы будем применять системы CAD, САМ и САЕ к общей геометрической
модели детали.
Предположим, что перед нами поставлена задача спроектировать и изготовить
переднюю панель сотового телефона (рис. 1.4). Чтобы упростить эту задачу, пред-
положим, что мы уже выполнили концептуальное проектирование в системе CAD,
результат которого и представлен на упомянутом рисунке.
Рис. 1.4. Твердотельная модель детали
Согласно предшествующим утверждениям, следующим этапом жизненного цикла
продукта должен быть анализ проекта, для которого препроцессор САЕ генери-
рует аналитическую модель (рис. 1 5). В примере был использован коммерче-
ский препроцессор Pro/Mesh1. На рис. 1.5 (а) показана автоматически построен-
ная сетка конечных элементов — тетраэдров, а на рис. 1.5 (б, е) — два различных
случая приложения внешней нагрузки в области нижнего крепления.
Анализ конечноэлементной модели методом конечных элементов позволяет
проверить соответствие разработанной крышки установленным требованиям.
Результат расчета показан на рис. 1 6, где изображено распределение напряже-
ний в детали под воздействием внешней нагрузки. Обратите внимание, что в
области приложения нагрузки напряжение выше, что кажется вполне естест-
венным.
1 Pro/Mesh — зарегистрированная торговая марка корпорации Parametric Technology Cor-
poration.
М
уб
мс
пр
де
1.4. Реальный пример использования САПР в разработке продукта
29
Рис. 1.5. Аналитическая модель детали для метода конечных элементов: а — сетки
конечных элементов; б — условия нагрузки, случай 1; в — условия нагрузки, случай 2
б
Рис. 1.6. Распределение напряжении в детали: а — результат для случая 1;
б — результат для случая 2
Мы можем также провести моделирование процесса литья под давлением, чтобы
убедиться, что расплавленный пластик заполнит углубления формы. Если бы
моделирование показало, что натекание пластика сталкивается с какими-либо
проблемами, нам пришлось бы увеличить толщину соответствующих участков
детали. Результаты моделирования иллюстрирует рис. 1.7.
30
Глава 1. Введение в САПР
Рис. 1.7. Распределение времени заливки формы для детали
На этом этапе мы можем изготовить физический прототип для оценки проекта
при помощи системы быстрого прототипирования. Физический прототип часто
используется для эстетической и функциональной оценки результатов проектиро-
вания. Прототип детали, изготовленный системой быстрого прототипирования,
изображен на рис. 1.8. После подтверждения проекта при необходимости может
быть изготовлен чертеж детали (рис. 1.9). Обратите внимание, что па чертеже
показаны только самые важные размеры во избежание излишнего усложнения.
Рис. 1.8. Физический прототип детали
Теперь перейдем к процессу производства — разработке формы для литья под
давлением, изготовлению формы и литью деталей. Полость и стенки проектиру-
ются по параметрам детали, предоставляемым системой CAD, в интерактивном
режиме при помощи системы геометрического моделирования общего назначе-
ния или автоматически при помощи специализированной системы разработки
форм для литья под давлением (рис. 1.10).
1.4. Реальный пример использования САПР в разработке продукта
31
Рис. 1.9. Чертеж детали
Рис. 1.10. Пресс-форма для литья детали
32
Глава 1. Введение в САПР
Получив параметры полости и стенок, можно выбрать подходящее основание
формы из базы данных со стандартными основаниями. После этого проектирует-
ся литниковая система, каналы для охлаждающей жидкости и другие компонен-
ты пресс-формы, которые встраиваются в основание (рис. 1.11). На этом этапе
можно еще раз запустить программу моделирования, чтобы рассчитать поведе-
ние формы более точно. Можно выполнить и расчет теплопередачи, чтобы про-
верить конструкцию системы охлаждения.
Рис. 1.11. Полностью спроектированное основание формы
Рис. 1.12. Траектория движения инструмента с ЧПУ
Вопросы и задачи
33
Когда проект пресс-формы готов, производится расчет траектории движения ин-
струмента с ЧПУ для изготовления верхней и нижней пластин формы (рис. 1.12).
После изготовления формы на станке с ЧПУ производится ее сборка и собствен-
но литье. На этом этапе также можно использовать моделирование для опреде-
ления правильных значений параметров процесса, таких как температура фор-
мы, температура пластика и давление впрыскивания.
Вопросы и задачи
1. Опишите различие между проектной и аналитической моделями.
2. Почему аналитическая модель отличается от проектной?
3. Какие аналитические операции выполняются в рамках процесса разработки?
4. Как используются средства CAD в процессе разработки?
5. Какой вариант использования средств CAD в процессе разработки считается
наиболее важным?
6. Перечислите наиболее важные типы средств CAD в соответствии с вашим от-
ветом на вопрос 5.
7. Как используются средства САМ в процессе производства?
8. Какой вариант использования средств САМ считается наиболее зрелым?
Объясните, почему.
9. Каких преимуществ следует ожидать от технологии группировки в результа-
те объединения родственных деталей в семейство?
10. Каково главное преимущество использования средств САЕ в процессе разра-
ботки?
Глава 2
Компоненты САПР
Для реализации компьютерно-ориентированного подхода к проектированию и
производству, описанному в главе 1, нужно специальное аппаратное и программ-
ное обеспечение. Ключевым аспектом является интерактивное управление фор-
мой, поэтому неудивительно, что аппаратное и программное обеспечение для
интерактивного манипулирования формами относится к числу основных ком-
понентов, составляющих системы CAD/CAM/CAE. Графические устройства и
периферийные устройства ввода-вывода вместе с обычным вычислительным
модулем составляют аппаратное обеспечение систем CAD/CAM/CAE (рис. 2.1).
Ключевыми программными компонентами являются пакеты, манипулирующие
формами или анализирующие их под управлением пользователя в двух или в
трех измерениях, одновременно обновляя базу данных. В последующих разделах
эти аппаратные и программные компоненты рассматриваются подробно.
Рис. 2.1. Компоненты систем CAD/CAM/CAE
2.1. Аппаратное обеспечение
Графическое устройство состоит из дисплейного процессора, устройства отобра-
жения, или дисплейного устройства (называемого монитором), и одного или
нескольких устройств ввода. Дисплей (монитор) представляет собой экран, на
который выводится графическое изображение, однако вывод конкретного изо-
2.1. Аппаратное обеспечение
35
бражения на экран выполняется дисплейным процессором. Другими словами,
дисплейный процессор получает сигналы, которыми кодируются графические
команды, генерирует электронные пучки и направляет их в нужное место мони-
тора, порождая желаемое изображение.
В состав графического устройства обычно входит одно или несколько устройств
ввода. Помимо клавиатуры к ним относятся мышь, спейсбол1 и цифровой план-
шет с перОм и роликом (рис. 2.2). Эти устройства ввода призваны способ-
ствовать интерактивному манипулированию формами, давая пользователю воз-
можность вводить графические данные в компьютер непосредственно. Каждое
графическое устройство обычно подключается к устройствам вывода, например
к плоттеру или цветному лазерному принтеру (рис. 2.3). Эти устройства могут
использоваться несколькими графическими устройствами совместно. Устройст-
ва вывода позволяют вывести любое изображение на бумагу.
Рис. 2.2. Примеры устройств ввода: а — мышь; б — цифровой планшет с пером и роликом;
в — спейсбол
1 Спейсбол отличается от трекбола количеством степеней свободы У трекбола их всего
две, а у спейсбола — шесть. — Примеч. перев.
36
Глава 2. Компоненты САПР
б
Рис. 2.3. Примеры устройств вывода: а — плоттер; б — цветной лазерный принтер
В последующих разделах мы рассмотрим различные графические устройства
и принципы их функционирования.
2.1.1. Векторные графические устройства
Векторные графические устройства, появившиеся в середине 60-х гг. XX в., со-
стоят из дисплейного процессора, дисплейного буфера памяти и электронно-лу-
чевой трубки (рис. 2.4). Основные принципы их функционирования вкратце
можно описать следующим образом.
Компьютер
Дисплейный
буфер
MOVE
10
15
LINE
100
25
CHAR
LU
CY
LINE
Дисплейный
процессор
ЭЛТ
Цифровой планшет
Рис. 2.4. Компоненты векторного графического устройства
2.1. Аппаратное обеспечение
37
Дисплейный процессор считывает дисплейный файл (display list), который пред-
ставляет собой последовательность передаваемых приложением кодов, соответ-
ствующих графическим командам. Дисплейный файл хранится в разделе памяти,
который называется дисплейным буфером (display buffer). Дисплейный процес-
сор осуществляет также загрузку дисплейного файла в дисплейный буфер. По-
сле этого дисплейный процессор формирует необходимые напряжения на вер-
тикальных и горизонтальных парах отклоняющих пластин таким образом, что
электрон, вылетающий с катода, попадает в нужное место внутренней поверх-
ности передней стенки электронно-лучевой трубки (рис. 2.5). Это место соответ-
ствует одной точке создаваемого изображения. Внутренняя поверхность трубки
покрыта люминофором, поэтому в той точке, куда попал электрон, возникает ко-
роткая вспышка света. Электронный пучок движется по экрану и формирует
изображение в соответствии с командами дисплейного файла.
Внутреннее металлическое
покрытие под высоким
Рис. 2.5. Поперечный разрез электронно-лучевой трубки
Однако люминофор излучает свет очень недолго, а затем гаснет. Поэтому изо-
бражение требует постоянного перерисовывания с очень высокой скоростью,
чтобы пользователю не досаждало мерцание. Изображение сохраняется в мозге
около 1/30 с, поэтому пользователь не будет замечать исчезновения изображе-
ния, если его перерисовывать с периодом менее 1/30 с. Процесс перерисовки на-
зывается обновлением (refresh), которое обеспечивается повторяющимся считы-
ванием дисплейного буфера сверху вниз и направлением электронного пучка в
соответствии с командами из буфера. Дисплейный буфер используется исклю-
чительно для реализации обновления. В зависимости от сложности изображения
перерисовка может занимать и более 1/30 с. Тогда часть изображения, построен-
ная в начале цикла обновления, успеет исчезнуть, в то время как другая часть
изображения еще будет прорисовываться. Возникнет эффект мерцания картин-
ки в целом. Мерцание изображения и высокая стоимость — основные недостатки
устройств векторной графики.
Есть у них и преимущества. Напряжения, подаваемые на вертикальные и гори-
зонтальные отклоняющие пластины, можно контролировать с любой заданной
точностью, что обеспечивает любое желаемое разрешение. Поэтому дисплейное
устройство может иметь высокое разрешение (например, 4096x4096), а прямые
линии получаются действительно прямыми, а не ступенчатыми. К тому же век-
торные устройства позволяют отображать динамическую анимацию. Динамика
обеспечивается благодаря изменению содержимого дисплейного буфера по мере
того, как дисплейный процессор занимается обновлением. Содержимое буфера
изменяется графическими командами, передаваемыми управляющим приложе-
нием, в данном случае — программой анимации.
2.1.2. Растровые графические устройства
Растровые графические устройства появились в середине 70-х гг. XX в. в резуль-
тате широкого распространения телевизионных технологий. С тех пор они стали
основным видом графических устройств благодаря высокому соотношению «ка-
чество — цена». Основные принципы их функционирования коротко можно
описать следующим образом.
Дисплейный процессор принимает графические команды от приложения, преоб-
разует их в точечное изображение, или растр, после чего сохраняет растр в разделе
памяти, который называется буфером кадра (frame buffer) (рис. 2.6). Получить
наглядное представление о растровом изображении можно, если пододвинуться
к телевизору вплотную. Размеры точек определяются установленным разреше-
нием. Растровые графические устройства должны хранить в своей памяти изо-
бражение в виде растра, в отличие от векторных, хранящих лишь дисплейные
файлы. Поэтому требования к памяти у этих двух видов устройств отличаются,
как и методы обновления изображения на экране.
Буфер кадра
ЭЛТ
Рис. 2.6. Компоненты растрового графического устройства
Когда дисплейный процессор генерирует растровое изображение и сохраняет его
в буфере кадра, он параллельно считывает содержимое этого буфера и направля-
ет электронные пучки на дисплей, воспроизводя на нем картинку, хранящуюся
в буфере. На внутренней поверхности электронно-лучевой трубки может быть
столько точек люминофора, сколько точек описывается буфером кадра. Электрон-
ный пучок направляется на точки, соответствующие точкам растрового изобра-
жения. Время свечения люминофора в растровых устройствах так же коротко,
как и в векторных, поэтому необходимо регулярное обновление изображения.
Единственное отличие — порядок движения электронного пучка при обновле-
нии. Пучок пробегает по экрану слева направо, переходя со строки на строку в
направлении сверху вниз (рис. 2.7). Когда электронный пучок направляется на
точку люминофора, соответствующую точке изображения, он включается, возбу-
ждая свечение люминофора. Время обновления остается постоянным независи-
мо от сложности воспроизводимого изображения. Время обновления определя-
ется, таким образом, временем сканирования всех строк развертки от верхней до
нижней, и, как правило, составляет 1/30 с для обычных телевизоров или 1/60 с
для качественных растровых графических устройств. Однако буфер кадра в рас-
тровых устройствах требует гораздо больше памяти, чем дисплейный буфер
в векторных графических устройствах.
Рис. 2.7. Развертка растрового изображения
Растровое изображение в буфере кадра может содержать сведения о цвете, если
каждой точке (пикселу) будет соответствовать не один бит, а несколько. Рас-
смотрим пример с тремя битами на каждый пиксел. Буфер кадра может быть
представлен тремя плоскостями (рис 2.8), каждая из которых содержит по одно-
му биту для каждого пиксела. Говорят, что в таком случае буфер кадра содержит
3-битовые плоскости. В случае трехбптового представления цвета первый разряд
может использоваться для включения или выключения красного, второй — зеле-
ного, а третий — синего цвета. Так получается восемь цветов (табл. 2.1), которые
могут быть одновременно выведены на экран графического устройства. ЦАПы,
показанные на рис. 2.8, — это цифроаналоговые преобразователи, выдающие ана-
логовый сигнал, управляющий электронной пушкой определенного цвета на ос-
новании значений битов соответствующей плоскости. Цена на микросхемы па-
мяти падает, поэтому на рынке в настоящее время доминируют графические
устройства с 24-битовыми плоскостями (по восемь битов на каждый из основ-
ных цветов). В таких устройствах каждый цвет может иметь 256 градаций (28),
а всего возможно одновременно отобразить 16 777 216 (224) цветов. Хранение
конкретного цвета в буфере кадра иллюстрирует рис. 2.9. ЦАПы на рис. 2.9 ре-
шают ту же задачу, что и на рис. 2.8, но работают с 8 разрядами вместо одного.
чи
Глава 2. Компоненты САПР
Растр ЭЛТ
Рис. 2.8. Пример 3-битовых плоскостей
Таблица 2.1. Набор цветов для 3-битовых плоскостей
Красный Зеленый Синий
Черный 0 0 0
Красный 1 0 0
Зеленый 0 1 0
Синий 0 0 1
Желтый 1 1 0
Голубой 0 1 1
Малиновый 1 0 1
Белый 1 1 1
Рис. 2.9. Задание цвета 24-битовыми плоскостями
2.1. Аппаратное обеспечение
Точка монитора, соответствующая точке буфера кадра, будет светиться опреде-
ленным цветом, как в обычном цветном телевизоре. Формирование цвета проис-
ходит следующим образом. Внутренняя поверхность трубки монитора покрыта
люминофором трех разных типов. Люминофор первого типа светится красным,
второго — синим, а третьего — зеленым. Точки люминофора расположены в вер-
шинах равносторонних треугольников (рис. 2.10). Каждый треугольник соответ-
ствует одной точке в буфере кадров. Энергия электронного пучка, падающего на
люминофор из пушки соответствующего цвета, пропорциональна аналоговому
сигналу от ЦАП (см. рис. 2.8 и 2.9). Следовательно, интенсивность излучения
определенного цвета также пропорциональна сигналу от ЦАП. Точки разных
цветов расположены в вершинах треугольника, но для человека они сливаются
воедино и образуют цвет, задаваемый значением, хранящимся в буфере кадра.
Электронный пучок может попадать и на люминофор другого цвета. Например,
пушка, предназначенная для красного люминофора, может попасть пучком на
зеленый люминофор. Для предотвращения этого эффекта перед слоем люмино-
фора помещается теневая маска (shadow mask) (рис. 2.11). Теневая маска гаран-
тирует, что электронные пучки попадают только на люминофор соответствую-
щего цвета.
Рис. 2.11. Теневая маска
Глава 2. Компоненты САПР
2.2. Конфигурация аппаратных средств
Графические устройства, описанные в предыдущем разделе, редко используются
поодиночке. Чаще всего они объединяются в кластер того или иного рода, рас-
считанный на обслуживание множества пользователей. Существует три основ-
ных варианта конфигурации такого кластера.
Первая конфигурация состоит из мейнфрейма (mainframe) и множества гра-
фических устройств (рис. 2.12). Графические устройства подключаются к мейн-
фрейму точно так же, как алфавитно-цифровые терминалы в обычных вычис-
лительных центрах. К нему же подключаются и устройства вывода, такие как
принтеры и плоттеры. Поскольку такая конфигурация может рассматриваться
как естественное расширение существующей вычислительной среды, она с го-
товностью принималась большинством крупных компаний, у которых уже были
мейнфреймы. Этот подход до сих пор используется производителями автомо-
билей и кораблей, у которых имеются огромные базы данных, обрабатываемые
централизованно. Однако он обладает некоторыми недостатками. Он требует
больших начальных вложений в аппаратное и программное обеспечение, да и
обслуживание эксплуатируемой системы тоже стоит недешево. Обслуживание
мейнфрейма всегда включает в себя расширение системной памяти и жесткого
диска, что для мейнфрейма обходится гораздо дороже, чем для небольших ком-
пьютеров. Более того, обновление операционной системы тоже оказывается не-
простой задачей. Программы CAD/CAM/CAE требуют довольно частой замены
в связи с выходом новых, гораздо более мощных версий и альтернатив, а также
из-за ошибок при первичном выборе программного обеспечения. Программы
CAD/CAM/CAE для мейнфреймов стоят намного дороже, чем аналогичные
программы для меньших компьютеров. Еще одним серьезным недостатком цен-
трализованных вычислений является нестабильность времени отклика системы.
В конфигурации с мейнфреймом приложения пользователей, относящиеся к
разным графическим устройствам, конкурируют друг с другом за вычислитель-
ные ресурсы мейнфрейма. Поэтому время отклика для любого конкретного гра-
фического устройства зависит от того, какие задачи были запущены с другого
устройства. Иногда время отклика может быть слишком большим для интерак-
тивной работы с графикой, особенно когда другие пользователи решают слож-
ные вычислительные задачи, например проводят анализ методом конечных эле-
ментов.
Рис. 2.12. Мейнфрейм с графическими устройствами
Вторая конфигурация состоит из автоматизированных рабочих мест проекти-
ровщика (рабочих станций — workstations), объединенных в сеть (рис. 2.13).
К той же сети подключаются устройства вывода — плоттеры и принтеры. Рабо-
чая станция — это графическое устройство с собственными вычислительными
ресурсами. Такой подход в настоящее время используется очень широко, потому
что в области технологий изготовления рабочих станций прогресс идет огромны-
ми темпами, да и вообще имеется тенденция к распределению вычислений. Про-
изводительность рабочих станций удваивается каждый год при сохранении их
цены. Данный подход обладает и другими преимуществами. Пользователь мо-
жет работать с любой станцией сети, выбирая ее в соответствии со своей задачей,
причем системные ресурсы не будут зависеть от задач других пользователей. Еще
одно преимущество — отсутствие необходимости в крупных первичных вложе-
ниях. Количество рабочих станций и программных пакетов может увеличивать-
ся постепенно, по мере роста потребности в ресурсах CAD/CAM/CAE. Это
очень выгодно, потому что стоимость оборудования постоянно падает.
Инженерная
рабочая станция
| — Плоттер
Интерактивные
устройства ввода
Рис. 2.13. Рабочие станции, объединенные в сеть
Третья конфигурация аналогична второй за тем исключением, что вместо рабо-
чих станций используются персональные компьютеры с операционными систе-
мами Windows 95 и NT. Конфигурации на базе персональных компьютеров по-
пулярны в небольших компаниях, особенно если выпускаемые продукты состоят
из небольшого количества деталей ограниченной сложности, а также в компани-
ях, использующих системы CAD/CAM/CAE главным образом для построения
чертежей. По мере того как различие между персональными компьютерами и ра-
бочими станциями сглаживается, стирается и различие между вторым и третьим
типами конфигурации.
2.3. Программные компоненты
Согласно определению, данному в главе 1, любая программа, используемая в
жизненном цикле продукта для сокращения времени и стоимости разработки
продукта, а также для повышения его качества, может быть отнесена к классу
CAD/CAM/CAE. В основе лежат программы CAD, позволяющие конструктору
создавать формы и манипулировать ими на мониторе в интерактивном режиме,
сохраняя результаты в базе данных. Однако в принципе любая программа, об-
легчающая процесс разработки, может быть названа программой CAD. Напри-
мер, специализированное приложение, предназначенное для автоматизации про-
ектирования конкретной детали или механизма, также считается приложением
CAD. В качестве примера приведем пример чертежа механизма (рис. 2.14, а),
Глава 2. Компоненты САПР
а
о о о
в
Рис. 2.14. Пример использования системы автоматизированной разработки чертежей
(благодаря любезности Autodesk; чертежи построены в системе AutoCAD Release 13)
2.3. Программные компоненты
архитектурного чертежа (рис. 2.14, 6) и электрической схемы (рис. 2.14, в), кото-
рые были построены в одной и той же программе автоматизированной разра-
ботки чертежей — типичного средства CAD. Твердотельная модель, созданная
в системе геометрического моделирования, которая также является типичным
представителем программ CAD, приведена на рис. 2.15.
Рис. 2.15. Результат работы системы твердотельного моделирования
Любая программа, используемая в процессе производства продукта, считается
средством САМ. Таким образом, к САМ относятся программы для планирова-
ния, управления и контроля производственных операций через прямой или кос-
венный компьютерный интерфейс с производственными ресурсами завода. Это
может быть программа, формирующая план процесса производства детали, или
программа, которая пишет программу для ЧПУ, моделирует движение резца и
контролирует работу станка в процессе обработки внешних поверхностей дета-
ли. Пример моделирования движения фрезы станка с ЧПУ по траектории, вы-
численной программой САМ после создания чертежа детали в программе CAD,
приведен на рис. 2.16.
Рис. 2.16. Моделирование траектории движения фрезы станка с ЧПУ (благодаря
любезности корпорации Gibbs and Associates, программа Virtual Gibbs)
Глава 2. Компоненты САПР
Программы САЕ используются для анализа геометрии конструкции и позво-
ляют разработчику моделировать и изучать поведение продукта для улучшения
и оптимизации проекта. Типичным примером является программа для расчета
напряжений, деформации или теплопередачи в детали методом конечных эле-
ментов. Контурный график напряжений в детали, находящейся под нагрузкой,
показан на рис. 2.17. Другие разновидности систем САЕ и их функции были
перечислены в главе 1.
Рис. 2.17. Пример расчетов в системе САЕ (благодаря любезности Unigraphics Solutions, Inc.,
программа Unigraphics/FEA)
Форма, созданная в системе CAD, может использоваться для приложений, рас-
считывающих траекторию движения фрезы или выполняющих трехмерный ана-
лиз напряжений, только в том случае, если она строилась как трехмерная. По
Ьтой причине конструкторы часто начинают работать сразу с трехмерной моде-
лью детали в системах геометрического моделирования.
Широко известные коммерческие программы CAD/CAM/CAE перечислены в
Габл. 2.2. Основанием для включения в эту таблицу тех или иных пакетов послу-
жил опыт автора по работе с ними, поэтому некоторые очень мощные коммерче-
ские программы могли быть пропущены. Интегрированные системы в крайнем
правом столбце таблицы предоставляют функциональность CAD, САМ и САЕ
посредством подключаемых модулей. В главе 5 вы узнаете, что новые системы
лля персональных компьютеров продолжают появляться. Краткое введение в
системы CAD для ПК будет дано в разделе 2.4.
Помимо систем, перечисленных в табл. 2.2, существуют программные продук-
гы — наборы для моделирования, которые стремительно набирают популярность
благодаря своей гибкости, дающей возможность настройки под любую задачу.
При помощи средств из таких наборов может быть создано любое приложение
для создания и манипулирования трехмерными формами. В результате получит-
2.3. Программные компоненты
ся компактное приложение, ориентированное точно на решаемую задачу. На
данный момент можно перечислить следующие типичные наборы для моделиро-
вания: ACIS, SHAPES, Parasolid, CAS.CADE и DESIGNBASE.
Таблица 2-2. Типичные системы CAD/CAM/CAE
Область применения Программы I Интегрированные системы
CAD: двумерные чертежи CADAM, AutoCAD, MicroCADAM, VersaCAD Pro/ENGINEER Unigraphics CATIA I-DEAS I/EMS EUCLID-IS
CAD: твердотельное моделирование Solid Edge, SolidWorks, SolidDesigner, Mechanical Desktop
САМ BravoNCG, VERICUT, DUCT, Camand, Mastercam, PowerMILL
САЕ MSC/NASTRAN, ANSYS, PATRAN, DADS, ADAMS, C-MOLD, MOLDFLOW, DesignWorks %
ANSYS — зарегистрированная торговая марка Swanson Analysis Systems, Inc.
AutoCAD — зарегистрированная торговая марка AutoDesk, Inc.
BravoNCG — зарегистрированная торговая марка Applicon, Inc.
CADAM — зарегистрированная торговая марка CADAM, Inc.
CATIA — зарегистрированная торговая марка DASSAULT SYSTEMS.
C-MOLD — зарегистрированная торговая марка Advanced САЕ Technology.
Camand — зарегистрированная торговая марка Structural Dynamics Research Corporation (SDRC).
DADS — зарегистрированная торговая марка CADS, Inc.
DesignWorks — зарегистрированная торговая марка Computer Aided Design Software, Inc.
DUCT — зарегистрированная торговая марка Delcam International Inc.
EUCLID-IS — зарегистрированная торговая марка Matra Datavision.
I/EMS — зарегистрированная торговая марка Intergraph, Inc.
I-DEAS — зарегистрированная торговая марка Structural Dynamics Research Corporation (SDRC).
Mastercam — зарегистрированная торговая марка CNC Software Inc.
Mechanical Desktop — зарегистрированная торговая марка Autodesk, Inc.
MicroCADAM — зарегистрированная торговая марка CADAM, Inc.
MOLDFLOW — зарегистрированная торговая марка Moldflow Pty Ltd.
MSC/NASTRAN — зарегистрированная торговая марка MacNeal-Schwendler Corporation.
PATRAN — зарегистрированная торговая марка MacNeal-Schwendler Corporation.
Глава 2. Компоненты САПР
PowerMILL — зарегистрированная торговая марка Delcam International Inc.
Pro/ENGINEER — зарегистрированная торговая марка Parametric Technology Corp.
SolidDesigner — зарегистрированная торговая марка Hewlett-Packard Company.
Solid Edge — зарегистрированная торговая марка Intergraph Corporation.
SolidWorks — зарегистрированная торговая марка SolidWorks Corporation.
VERICUT — зарегистрированная торговая марка CGTech.
VersaCAD — зарегистрированная торговая марка T&W Systems, Inc.
Unigraphics — зарегистрированная торговая марка Unigraphics Solutions, Inc.
2.4. САПР на базе Windows
Когда рынок программного обеспечения CAD/CAM/CAE достиг зрелости, си-
туация на нем радикально изменилась. Инженеры и производители свыклись с
тем, что им нужно нечто большее, нежели просто средства построения двумер-
ных чертежей. Они давно ждали появления гибких систем построения трехмер-
ных чертежей, которые могли бы использоваться на всех этапах, от проектирования
до производства. До недавних пор промышленные приложения доминировали на
рынке традиционных средств CAD высшего класса. К счастью, персональные ком-
пьютеры со временем стали невероятно быстрыми и мощными, а многие разра-
ботчики программного обеспечения начали выпускать хорошие программные про-
дукты, использующие преимущества превосходной графической среды Microsoft
Windows 95 и NT. Первые программные продукты этой категории были выпуще-
ны в 1995 г., а первые версии большинства продуктов датированы 1996 г.
Все новые продукты обладали следующими общими особенностями. Во-первых,
они разрабатывались с максимальным использованием функций Windows 95
и Windows NT, и потому их интерфейсы получались схожими с интерфейсами
других программ Microsoft. Фактически эти программы были похожи на другие
продукты Microsoft для автоматизации конторского труда, поэтому пользовате-
ли чувствовали себя комфортно в знакомой среде и быстро осваивали их. Кроме
того, новые программы поддерживали функции внедрения и связывания объектов
(Object Linking and Embedding — OLE), характерные для офисных пакетов Micro-
soft. Таким образом, любое изображение трехмерной детали или устройства, соз-
данное в пакете геометрического моделирования, может использоваться другими
программами Microsoft. Представьте, насколько удобна эта возможность при
подготовке пользовательской документации. Вы просто копируете трехмерное
представление деталей из системы CAD и вставляете его в нужное место тексто-
вого файла, созданного и редактируемого в текстовом процессоре. В настоящее
время эта функция OLE расширяется с целью включения поддержки трехмер-
ных данных1, что значительно облегчит передачу данных между разными систе-
мами CAD.
Во-вторых, в новых системах использовался компонентный подход, согласно ко-
торому важнейшие компоненты программного обеспечения выбираются из до-
1 Новая возможность называется OLE for Design & Manufacturing — OLE для проекти-
рования и производства.
2.4. САПР на базе Windows
ступных программ, после чего разработчик системы просто объединяет пр<
верейные технологии, сосредоточивая свое внимание на деталях, относящихс
непосредственно к проектированию. Например, разработчик системы может и<
пользовать ACIS от Spatial Technology, Parasolids от Unigraphics Solutions ил
Designbase от Ricoh в качестве моделирующего ядра (ключевого компонент
обеспечивающего работу с пространственными объектами в трех измерения?
и Constraint Solver от D-cubed для параметрического проектирования. Такой по;
ход позволяет сократить время на разработку, причем пользователю будут пр<
доставлены именно те возможности, которые понадобятся ему в процессе npoei
тирования конкретного продукта.
В-третьих, новые системы основаны на объектно-ориентированной технологи
три аспекта которой нам придется рассмотреть особо. С точки зрения программ!
рования объектно-ориентированная технология означает написание модульнь
программ таким образом, чтобы обеспечить независимое повторное использов.
ние модулей. Типичным объектно-ориентированным языком программирована
является C++. Каждая функция может быть написана на этом языке таким обр;
зом, что она будет действовать как независимое целое. Объектно-ориентирова]
ная технология определяет также интерфейс между системой и пользователе!
Объектная ориентированность пользовательского интерфейса означает, что ка>
дый элемент интерфейса самостоятельно реагирует на изменения в ситуаци
и на действия пользователя. Это значительно облегчает работу пользователя
системой. Объектно-ориентированная технология используется и для эффекти:
ного хранения данных. В обычных системах CAD данные о детали обычно хр
нятся в нескольких файлах: один файл используется для геометрической форм!
другой — для сетки конечных элементов, третий — для траектории движенг
фрезы станка с ЧПУ, и т. д. В объектно-ориентированных системах все данны
относящиеся к одной детали, хранятся в одном файле. При сохранении одинак
вых данных в разных файлах происходит избыточное дублирование, а в объек
но-ориентированных системах этого удается избежать, что приводит к знач!
тельной экономии памяти.
В-четвертых, системы поддерживают либо параметрическое1, либо вариационн,
моделирование. Оба подхода позволяют пользователю определять форму, зад
вая ограничения, а не характеристики отдельных элементов этой формы. Еди1
ственное различие в том, что в одном случае ограничения учитываются одновр
менно, а в другом — последовательно. Примером непосредственной работы
элементами формы является определение прямоугольника как двух набор<
параллельных отрезков, находящихся на конкретном расстоянии друг от друг
Однако тот же прямоугольник может быть определен при помощи ограничени
например заданием условия перпендикулярности смежных отрезков и рассто
ния между параллельными отрезками. Многие системы, поддерживающие во
можность параметрического или вариационного моделирования, воспринимав
очевидные ограничения, такие как перпендикулярность и параллельность, неп
средственно из начального эскиза пользователя, позволяя уменьшить объем вв
димых данных. В этом случае от пользователя требуется только ввести размер
1 Пример приводится в разделе 5.3.1.
Глава 2. Компоненты САПР
после чего он сможет изменять форму, варьируя эти размеры. Такая функция
системы называется моделированием по размерам {dimension-driven modeling).
Это означает, что геометрия определяется размерами детали и может быть легко
изменена переопределением этих размеров. В таких системах пользователь мо-
жет также указывать отношения между размерами, которые будут сохраняться
при изменении самих размеров. Это один из механизмов, позволяющих сохра-
нить идеи разработчика в конечном продукте. Однако задать все ограничения,
определяющие геометрию, может быть достаточно затруднительно, особенно для
сложной детали. В таких ситуациях системам, поддерживающим параметриче-
ское и вариационное моделирование, требуются дополнительные сведения для
проектирования.
Наконец, в системы встраивается поддержка совместного проектирования через
Интернет. Эта поддержка позволяет удаленным пользователям работать над
одной и той же деталью, имея перед глазами ее модель на своих экранах. Разра-
ботчики могут также проверять проект в целом, сравнивая свои детали с деталя-
ми других разработчиков. Для того чтобы воспользоваться этой возможностью,
нужно как минимум описать деталь в формате VRML. В приложении М сравни-
ваются возможности систем CAD для Windows.
Вопросы и задачи
1. Перечислите компоненты графического устройства и объясните назначение
каждого из них.
2. Объясните, почему необходимо обновление экрана векторного или растрово-
го графического устройства.
3. Объясните, каким образом в векторных устройствах реализуется анимация.
4. Объясните, почему независимо от сложности растрового изображения оно не
мерцает на растровом устройстве.
5. Сколько цветов можно одновременно отобразить на растровом графическом
устройстве с 12-разрядными плоскостями (4-разрядные плоскости для крас-
ного, 4-разрядные для зеленого и 4-разрядные для синего)?
6. Перечислите преимущества аппаратной конфигурации, состоящей из объеди-
ненных в сеть рабочих станций.
7. Перечислите доступные вам программы для построения двумерных чертежей.
8. Перечислите доступные вам системы геометрического моделирования.
9. Перечислите доступные вам системы САМ. Коротко опишите функции каж-
дого программного продукта.
10. Перечислите доступные вам программы САЕ. Коротко опишите функции ка-
ждого программного продукта.
Глава 3
Основные концепции графического
программирования
Интерактивное манипулирование формами составляет значительную часть ра-
боты с системами CAD/CAM/CAE. Следовательно, важнейшей составляющей
таких систем является программное обеспечение, создающее графическое изо-
бражение на экране монитора. Поэтому нам придется изучить терминологию
и основные понятия графического программирования.
3.1. Графические библиотеки
Термин программирование на компьютере {computer programming) раньше озна-
чал написание «сочинения» на языке компьютерных команд в соответствии с
предопределенными правилами грамматики. В ответ на вводимые числа выпол-
няемое «сочинение» порождало ожидаемые числа и символы на терминале или
в файле данных. В наши дни на входе и выходе «сочинений» все чаще находит-
ся графическая информация. Такое программирование называется графическим
{graphics programming), а область его применения — компьютерной графикой
{computer graphics).
Помимо основного программного обеспечения, необходимого для обычного про-
граммирования (операционная система, редактор и компилятор), графическое
программирование требует наличия специальных графических программ. Гра-
фические программы делятся на два класса: драйверы устройств и графические
библиотеки.
Драйвер устройства может рассматриваться как набор аппаратно-зависимых ко-
дов, непосредственно управляющих процессором графического устройства та-
ким образом, что электронный пучок оказывается направленным в нужное место
(см. главу 2). Драйверы обязательно являются аппаратно-зависимыми, то есть
жестко привязанными к конкретным графическим процессорам. Примерно то
же самое можно сказать об ассемблере, конкретный вид которого может выпол-
няться только на процессорах одной и той же модели. То же происходит, если
графическая программа использует драйвер устройства непосредственно
(рис. 3.1). Такую графическую программу при переходе на другое графическое
устройство придется переписывать с использованием новых команд драйвера.
Более того, команды драйвера устройства весьма примитивны, поэтому такая
программа была бы очень длинной, если бы она должна была решать какую-либо
сложную задачу. К тому же программа эта получилась бы плохо читаемой.
Программисты предпочитают писать программы на языках высокого уровня.
Графическое программирование не могло стать исключением, особенно если
52
Глава 3. Основные концепции графического программирования
представить все неудобства, связанные с использованием команд драйвера низ-
кого уровня. Поэтому с графическими устройствами стали поставляться библио-
теки, получившие название графических {graphics libraries). Графическая библио-
тека, как, например, и математическая, представляет собой набор подпрограмм,
предназначенных для решения определенных задач. Конкретная подпрограмма
может изображать на экране прямую, круг или иной объект. Графическая биб-
лиотека основывается на командах драйвера устройства (рис. 3.2). Каждая под-
программа создается с использованием поддерживаемого набора команд драй-
вера. Например, подпрограмма, изображающая круг, может быть составлена из
отдельных команд драйвера, рисующих на экране точки или короткие отрезки.
Приложение
Устройства ввода-вывода
Рис. 3.1. Непосредственное использование драйвера устройства
Драйвер
..hja,..,..,.....
Рис. 3.2. Использование графической библиотеки
Подпрограммы графической библиотеки могут использоваться точно так же, как
подпрограммы математической. Нужная подпрограмма вызывается из основной
программы аналогично тому, как вызываются функции синуса и косинуса, когда
программисту требуется вычислить их значения. Одна из проблем использова-
ния подпрограмм графической библиотеки связана с тем, что их названия и спо-
собы вызова (входные и выходные аргументы) у каждой библиотеки свои. Это
не создавало бы трудностей, если бы одна графическая библиотека могла рабо-
тать со всеми существующими устройствами, что теоретически было бы возмож-
ным, если бы все существующие драйверы устройств поддерживали ее. Однако
по некоторым причинам производители программного обеспечения не хотят или
не могут создать графическую библиотеку, которая могла бы работать со всеми
драйверами, а потому у каждой библиотеки имеется свой круг поддерживаемых
драйверов. Следовательно, такая библиотека может работать лишь с ограничен-
ным набором графических устройств, а графические программы, рассчитанные
на работу со множеством устройств, приходится переписывать с использованием
нескольких библиотек.
Чтобы обойти эту проблему, разработчики графических библиотек могли бы
использовать одинаковые наборы подпрограмм с одинаковыми названиями,
аргументами и возможностями. (На практике каждая подпрограмма реализует-
ся разработчиками по-разному.) Тогда графические программы не требовали бы
изменения на уровне исходного кода даже при изменении графических уст-
ройств. Одним из примеров такого подхода является графическая система CORE,
предложенная в 1977 г. группой SIGGRAPH (Special Interest Group on Compu-
ter Graphics) Ассоциации вычислительной техники (Association for Computing
Machinery — ACM). Однако графическая система CORE не предоставляет дос-
таточного набора команд для использования всех возможностей растровых уст-
ройств, потому что эти устройства не были широко распространены во времена
3.2. Системы координат
разработки системы. Примерно в то же время Международная организация по
стандартизации (International Standards Organization — ISO) разработала систе-
му графического ядра (Graphics Kernel System — GKS). GKS считается стандар-
том в двухмерной графике, а позже эта система была расширена до GKS-3D
с поддержкой трехмерной графики.
И у CORE, и у GKS есть определенные недостатки в отношении динамическо-
го отображения и гибкого взаимодействия с пользователем. Поэтому организа-
ция ISO предложила еще один стандарт, получивший название Иерархическая
система программирования интерактивной графики (Programmer’s Hierarchical
Interactive Graphics System — PHIGS). Этот стандарт стал стандартом де факто
для большинства графических рабочих станций. Затем он был расширен и полу-
чил название «расширение PHIGS для X» (PHIGS extension to X — РЕХ), пото-
му что в него были включены функции работы с окнами системы X window. Гра-
фические программы, написанные на РЕХ, в сетевой среде могут использоваться
независимо от типа рабочей станции. Это достоинство было унаследовано от
системы X window, о которой будет коротко рассказано в конце главы. Коммер-
ческая графическая библиотека OpenGL развивалась независимо от организа-
ций по стандартизации, однако с течением времени она набирает все большую
популярность благодаря гибкости в управлении рабочими станциями и персо-
нальными компьютерами в сетевой среде. OpenGL — расширение графической
библиотеки GL (фирменной графической библиотеки для компьютеров Silicon
Graphics’). Благодаря популярности компьютеров Silicon Graphics в областях,
связанных с компьютерной графикой, библиотека OpenGL постепенно приобре-
тает статус графического стандарта де факто.
3.2. Системы координат
Для вывода изображения объекта на экран графического устройства необходимо
решить две основные задачи:
□ указать положение всех точек объекта в пространстве;
□ определить положение их образов на мониторе.
Для задания положения точек в пространстве и на мониторе используются сис-
темы координат. Важно понимать, как связаны между собой различные системы
координат. Особенно это важно для проектирования трехмерного объекта на
плоский экран. Проекция на экране строится по тем же законам, что и проекция
реального объекта на сетчатке человеческого глаза.
Первой среди систем координат мы рассмотрим систему координат устройства
(device coordinate system), которая определяет положение точки на экране. Эта
система состоит из горизонтальной оси и и вертикальной оси v (рис. 3.3). Обра-
тите внимание, что начало отсчета может выбираться произвольно. Осей и и v
достаточно для задания положения любой точки экрана, поэтому третья ось,
перпендикулярная первым двум, не определяется. Положение любой точки зада-
ется двумя целыми числами и и v, равными числу пикселов между началом ко-
1 Silicon Graphics — компания, производящая графические рабочие станции, такие как
Indigo и О2.
Глава 3. Основные концепции графического программирования
,рдинат и точкой по осям и и v. Однако одна и та же точка может задаваться раз-
ными парами и и v в зависимости от положения начала координат, направления
>сей и масштаба. Эти параметры для разных графических устройств устанавли-
йются достаточно произвольно (см. рис. 3.3). Поэтому аппаратные координаты
графической программе могут потребовать изменения при смене графического
стройства.
Рис. 3.3. Системы координат устройства
виртуальная система координат устройства (virtual device coordinate system)
юзволяет избежать описанной выше проблемы. Виртуальная система координат
'стройства фиксирует точку отсчета, направление и масштаб осей для всех рабо-
1их станций. Слово «виртуальный» означает что данная система отсчета суще-
твует только в воображении программиста. Обычно начало отсчета располага-
тся в левом нижнем углу экрана, ось и откладывается вправо, а ось v — вверх.
)бе координаты могут изменяться в диапазоне от нуля до единицы. Точка, поло-
кение которой задается в виртуальной системе координат, на любом экране
удет попадать в одно и то же место. Это дает программисту возможность едино-
образно определять формы, не заботясь о конкретных системах координат уст-
ойств. Графическая программа передает виртуальные координаты подпрограм-
ie драйвера устройства, которая преобразует их в координаты конкретного
'стройства
виртуальная и обычная системы координат устройства позволяют задавать по-
ожение точки на плоском экране. Займемся теперь системами координат для
аботы с трехмерным пространством. Основных трехмерных систем координат
сего три: внешняя система координат (world coordinate system), система коорди
ат модели (model coordinate system) и система координат наблюдателя (viewing
oordinate system).
внешняя, или мировая система координат (world coordinate system), — это опор-
ая система, используемая для описания интересующего нас мира Внешней она
вляется по отношению к объекгам этого мира. Например, такая система может
спользоваться для описания расположения и ориентации парт, стульев и доски,
ели интересующий нас мир представляет собой класс.
ледующим шагом является описание формы каждого объекта мира. Форма
оъекта определяется координатами всех или некоторых характеристических то-
ек объекта по отношению к системе координат, связанной с ним, — системой
3.2. Системы координат
координат модели {model coordinate system). Координаты точек объекта, опреде-
ленные таким образом, не изменяются даже тогда, когда объект перемешается
или вращается в пространстве. Они действительно зависят только от формы
объекта. Система координат модели перемещается вместе с тем объектом, к ко-
торому она привязана. Поэтому форма каждого объекта определяется в его соб-
ственной системе координат модели. Расположение и ориентация любого объек-
та задаются относительным положением и ориентацией модельной системы
координат данного объекта по отношению к внешней системе координат. Отно-
сительное расположение и ориентация систем координат определяются матри-
цей преобразования, о которой будет рассказано в разделе 3.7. Наличие внешней
системы координат и модельных систем для всех объектов полностью определя-
ет мир, то есть расположение и форму всех объектов данного мира. Другими сло-
вами, применение матриц преобразования позволяет получить координаты лю-
бой точки любого объекта во внешней системе.
Следующий шаг — проектирование трехмерных объектов или их точек на мо-
нитор подобно тому, как они проектируются на сетчатку человеческого глаза.
В компьютерной графике используется два вида проекций: перспективная и па-
раллельная (рис. 3.4).
Рис. 3.4. Два вида проекций: а — перспективная; б — параллельная
Оба вида требуют задания двух точек: точки зрения и точки наблюдения. Точка
зрения {viewpoint} — это глаз наблюдателя. Точка наблюдения {viewsite) — это точ-
ка объекта, определяющая направление «луча зрения». Вектор, проведенный от
точки зрения к цели, задает направление наблюдения.
В перспективной проекции {perspective projection) все точки рассматриваемого
объекта соединяются с центром проекции, который обычно лежит на линии,
соединяющей точку зрения и цель1. Точки пересечения этих линий с экраном
образуют проекцию. Экран располагается между точкой зрения и целью. В па-
раллельной проекции {parallel projection) линии от всех точек объекта проводятся
в направлении наблюдателя параллельно направлению наблюдения, а точки пе-
ресечения этих линий с экраном формируют проекцию. Экран, как и в перспек-
тивной проекции, располагается перпендикулярно направлению проектирова-
ния. Такая проекция называется ортогональной2.
1 В противном случае проекция называется косоугольной.
2 В косоугольной проекции ориентация экрана произвольна.
Точки проекции, получаемые любым из описанных методов, легко могут быть
рассчитаны, если координаты точек проецируемого объекта даны в системе ко-
ординат xvyvzv (рис. 3.4)1. Например, координаты точек параллельной проекции
объекта попросту равняются соответствующим координатам Х„ и Уг точек объек-
та. Система координат x,,yvzl: называется наблюдательской (viewing coordinate
system), поскольку она облегчает расчет проекции наблюдения. Наблюдатель-
ская система координат строится таким образом, чтобы обладать перечисленны-
ми ниже характеристиками. Начало этой системы координат располагается в
рассматриваемой точке, ось zt, направлена из начала координат в точку зрения,
а ось yv параллельна вертикальной оси экрана (см. рис. 3.4). Третья ось, х,„ опре-
деляется как векторное произведение первых двух. У большинства людей верти-
кальное направление в пространстве естественным образом ассоциируется с вер-
тикальным направлением на экране, поэтому ось yv считается проекцией
вертикального вектора из пространства на экран. В большинстве графических
библиотек пользователю приходится задавать вектор вертикали в пространстве
(up vector) в мировых координатах. Положение точки зрения и точки наблюде-
ния также задается в мировых координатах (рис. 3.5).
Рис. 3.5. Точка зрения и точка наблюдения
После определения наблюдательской системы координат и вычисления коор-
динат точек всех интересующих нас объектов остается только вычислить поло-
жение их проекций на экране. Мы уже знаем, что для параллельной проекции
это сделать очень легко. Поэтому мы займемся описанием процедуры вычис-
ления координат в перспективной проекции. Рассмотрим виды сверху и сбоку
(рис. 3.4, а, рис. 3.6). Интересующая нас точка на рисунке выделена, ее коорди-
наты мы обозначим как Х,„ Уг„ Z,,.
Начало координат наблюдательской системы координат может находиться в точке зре-
ния, а ось г,, при этом должна указывать на точку наблюдения. Оси х,, и yv определяются
так же, как обычно, в результате чего система становится левосторонней. Следствием
этого является то, что точки с большими значениями Z оказываются дальше от наблюда-
теля. По соглашению, принятому в этой книге, объекты с большими значениями Z рас-
положены ближе к наблюдателю.
Из подобия треугольников следует, что
(з-1)
Ys=T^Yv' (32)
В формулах (3.1) и (3.2) Xs и — расстояния до проекции выбранной точки.
Расстояния измеряются в горизонтальном и вертикальном направлениях от точ-
ки, где ось zv пересекается с экраном. Далее, L — расстояние между точкой на-
блюдения и центром проекции, а 5 - расстояние между центром проекции и эк-
раном. Формулы (3.1) и (3.2) показывают, что точка с большими значениями Zv
будет иметь большие значения Xs и У5, благодаря чему далекий отрезок кажется
меньше, чем близкий той же длины. Расстояния Xs и Ks преобразуются в вирту-
альные координаты устройства с учетом желаемого положения центра изобра-
жения и его размеров (на мониторе).
Взаимоотношения перечисленных выше систем координат иллюстрирует рис. 3.7.
Как уже говорилось, системы координат связаны друг с другом матрицами пре-
образования. Так, положение и ориентация каждой из модельных систем коор-
динат по отношению к мировой задаются соответствующими матрицами преоб-
разований. Наблюдательская система координат также может быть определена
относительно мировой при помощи матрицы преобразования, если задать поло-
жение точек зрения и наблюдения, а также вектор вертикали. Процедура расчета
точек проекции с использованием матриц преобразования выглядит следующим
образом. Сначала координаты проецируемой точки преобразуются из модель-
ных в мировые при помощи матрицы преобразования, определяющей переход от
модели, к которой относится точка, к мировой системе координат. Эта операция
58
Глава 3. Основные концепции графического программирования
(рис. 3.8) называется преобразованием модели {model transformation). Затем коор-
динаты этой точки преобразуются из мировой системы координат в наблюда-
тельскую. Эта операция (см. рис. 3.8) называется преобразованием наблюдения
{viewing transformation). Наконец, координаты в наблюдательской системе коор-
динат преобразуются в значения Xs и по формулам (3.1) и (3.2), а затем —
в виртуальные координаты устройства. Эта операция (рис. 3.8) называется пре-
образованием проекции {projection tranformation). Наконец, виртуальные коорди-
наты устройства преобразуются в обычные подпрограммой драйвера. Результат
показан на рис. 3.8.
Наблюдательская
Рис. 3.7. Соотношение систем координат
Рис. 3.8. Преобразования между системами координат
Все эти преобразования обычно выполняются внутри графической библиотеки,
а программисту приходится только указывать сведения, необходимые для прове-
дения преобразований. Например, трансляции и повороты объектов учитывают-
ся при преобразовании модели, положение точки зрения, точки наблюдения и
вектора вертикали — при преобразовании наблюдения, а тип проекции, располо-
жение центра проекции и экрана — при преобразовании проецирования. Однако
графические библиотеки примитивного уровня могут потребовать от програм-
миста самостоятельного написания кода для всех этих преобразований. Подроб-
нее мы расскажем об этом в разделе 3.7.
3.3. Окно и видовой экран
Термин окно {window) в сетевой компьютерной среде обозначает область экрана
монитора рабочей станции, посредством которого пользователь взаимодействует
с вычислительными ресурсами, подключенными к той же сети. В компьютерной
графике этот термин имеет иное значение. Окно — это область пространства,
проецируемая на монитор. Объекты, находящиеся вне окна, на мониторе не по-
являются. В этом смысле оно подобно окну дома, через которое человеку, сидя-
щему внутри дома, видна лишь часть внешнего мира. Вероятно, эта аналогия
была основанием для выбора соответствующего термина. Окно обычно опреде-
ляется как прямоугольник, лежащий на экране и заданный значениями X, и Уг
в системе координат просмотра (рис. 3.9 и рис. 3.10). Видимая облабть простран-
ства. называемая просматриваемым объемом {viewing volume), зависит от типа
проекции. Для параллельной проекции эта область имеет форму параллелепи-
педа. а для перспективной — форму пирамиды.
Просматриваемый объем при проектировании может давать довольно сложное
изображение, поскольку в него могут попадать ненужные объекты, расположен-
ные вблизи наблюдателя или вдали от него. Иногда бывает удобно ограничить
этот объем двумя плоскостями, из которых одна располагается ближе, а дру-
Глава 3. Основные концепции графического программирования
1я — дальше (рис. 3.11). Для параллельной проекции ближняя и дальняя пло-
кости определяются так же, как и для перспективной.
Рис. 3.10. Окно и просматриваемый объем для перспективной проекции
Рис. 3.11. Ближняя и дальняя плоскости
адовой экран (viewport) — это область экрана, где будет отображаться проеци-
уемое изображение (рис. 3.12). В эту область проецируется просматриваемый
бьем, определяемый «обычным» окном. Отображение состоит из трансляции и
асштабирования, учитывающих расстояние между центром видового экрана и
ентром монитора, а также разницу размеров окна и видового экрана. Другими
Ловами, значения Xs и Ys, полученные по формулам (3.1) и (3.2), должны быть
величены или уменьшены таким образом, чтобы центр окна попадал в центр
идового экрана, а не в центр монитора. Кроме того, они должны быть подверг-
уты масштабированию, чтобы четыре граничные точки окна стали четырьмя
эаничными точками видового экрана. Соотношение сторон у окна должно быть
аким же, как и у видового экрана, в противном случае изображение будет иска-
ено> и круг, например, превратится в эллипс.
Рис. 3.12. Видовые экраны
Ниже приведен пример кода, задающего окно и видовой экран с использованием
графической библиотеки OpenGL. В OpenGL окно просмотра также определяет-
ся как трехмерный объем. Однако результат получается таким, как если бы
третье измерение окна просмотра просто игнорировалось.
static GLint viewport[] = {0. 0. 400. 400}:
/* Видовой экран задается координатами окна1. Первый и второй аргументы
определяют положение левого нижнего угла окна просмотра, а третий
и четвертый - размер прямоугольника. */
static GLclamped depth_range[] = {0.0. 1.0}:
/* Первый и второй аргументы представляют собой поправки к минимальному
и максимальному значениям, которые могут храниться в буфере глубины. */
static GLdouble v1ew1ng_volume[] = {-100.0. 100.0. -100.0. 100.0. -10.0. 100.0}:
/* Горизонтальный и вертикальный размеры окна задаются в координатах
просмотра (аргументы 1-4). Пятый и шестой аргументы определяют
расстояние от экрана до ближней и дальней плоскостей соответственно. */
glOrtho(vlewing_volume[0], viewing_volume[l]. viewing_volume[2J. view1ng_volume[3],
v1ew1ng_volume[4]. viewing_volunie[5]):
/* Определяет тип проекции - параллельный - и создает матрицу
ортографического параллельного просматриваемого объема, после чего
умножает на него текущую матрицу. */
glV1ewport(v1ewport[0], v1ewport[l], viewport^]. viewport[3):
/* Определяет прямоугольник окна, открытого диспетчером, после чего
отображает в это окно готовое изобаржение. Если glViewport не
используется, окно просмотра по умолчанию считается совпадающим со всем
открытым окном. */
glDepthRange(depth_range[O],depth_range[l]):
/* Определяет кодирование z-координат при преобразовании просмотра.
Значения z-координаты масштабируются этой командой так. чтобы
они лежали в определенном диапазоне. */
3.4. Примитивы
Примитивы (primitives) — это элементы графики, которые могут отображаться
графической библиотекой. В каждой библиотеке набор примитивов свой, поэто-
му в данном разделе мы рассмотрим только наиболее общие примитивы, поддер-
живаемые большинством графических библиотек.
1 Это «окно» означает область монитора, через которую пользователь взаимодействует с
компьютером. Окно открывается и обрабатывается диспетчером операционной системы
(например, клиентом X window или Microsoft Windows).
। лава . основные концепции графического программирования
3.4.1. Отрезок
Для отображения отрезка прямой (линии — line) необходимо задание координат
двух его концов. В большинстве графических библиотек координаты концов мо-
гут задаваться в трехмерном пространстве; проецирование на плоскость экрана
осуществляется автоматически. Можно указывать атрибуты отрезка: тип, тол-
щину, цвет и другие. Типы отрезков, поддерживаемых большинством графиче-
ских библиотек, изображены на рис. 3.13. Для систем автоматизированной раз-
работки чертежей поддержка этих типов линий совершенно необходима,
поскольку они часто используются в машиностроительных и архитектурных
чертежах и электрических схемах.
Рис. 3.13. Различные виды отрезков
В библиотеках GKS, PHIGS и OpenGL одной из базовых функций является ло-
маная (polyline), представляющая собой набор соединенных друг с другом отрез-
ков. Координаты концов отрезков, составляющих ломаную, задаются в виде мат-
рицы. В случае ломаной, состоящей всего из одного отрезка, в матрицу помещаются
координаты двух его концов.
X, У, Z,’
[Р] = *2 Уг Z-2 .
Л К
Примеры использования функций построения ломаной из библиотек PHIGS
и OpenGL приведены ниже.
PHIGS
Pint num_of_points = 10;
/* Количество точек в ломаной. */
Ppoint3 point3[] = {
{0.0. 0.0, 0.0}.
{10.0. 20.0. 15.0}....
{1.0. 3.0. 6.5}};
/* Координаты концов отрезков ломаной */
Ppolу11ne3(num_of_poi nts. poi nt3):
/* Рисует заданную ломаную. */
OpenGL
GLdouble point[][3] = {
{0.0. 0.0. 0.0}.
{10.0. 20.0. 15.0}......
{1.0. 3.0. 6.5}};
I* Координаты концов отрезков ломаной. */
glBegln(GLLlNELOOP):
glVertex3dv(8point[0][0]):
glVe rtex3dv(&рот nt[1][0]);
glVertex3dv(&po1nt[9][0]):
glEndO:
/* Построение ломаной no заданным точкам (10 шт.) */
3.4.2. Многоугольник
Многоугольник — это то же самое, что и ломаная, за небольшим исключением:
первая и последняя строки матрицы вершин [Р] должны быть одинаковыми (со-
ответствующие им точки совпадают). Того же результата можно было бы дос-
тичь и с использованием функции построения ломаной, однако многоугольник,
построенный при помощи специальной функции, распознается системой как
объект, имеющий внутреннюю и внешнюю части. Внутренняя площадь много-
угольника может быть заполнена штриховкой различных видов (рис. 3.14).
Рис. 3.14. Примеры различных заливок
Атрибутами многоугольника могут быть цвет внутренней области (цвет запол-
нения), а также тип, ширина и цвет ломаной, ограничивающей эту область. Хотя
функция построения многоугольников может использоваться и для построения
кругов и прямоугольников, в большинстве графических библиотек существуют
специальные функции, требующие гораздо меньше входных параметров (напри-
мер, центр и радиус круга или два конца диагонали прямоугольника). Тем не ме-
нее внутри библиотек эти функции реализованы через функцию построения
многоугольников.
3.4.3. Маркер
Маркеры обычно используются для выделения точек на графиках. Маркеры,
доступные в большинстве графических библиотек, показаны на рис. 3.15.
Тип маркера указывается в качестве атрибута. Полимаркер, как и отрезок, явля-
ется стандартным объектом в GKS и PHIGS. OpenGL не поддерживает маркеры
явно, однако предоставляет механизм сохранения маркеров в растровых файлах
и выведения их на экран. Благодаря этому графическая программа, построенная
на OpenGL, гораздо лучше переносится на различные платформы. Приведенный
ниже образец кода демонстрирует выведение маркера * (звездочка) в PHIGS
и OpenGL.
Рис. 3.15. Примеры маркеров
PHIGS
pint num_of_point - 10:
/* Количество маркеров для отображения. */
РротпбЗ point3[] = {
{0.0. 0.0. 0.0}.
{10.0, 20.0. 15.0}.......
{1.0. 3.0. 6.5}}:
/* Координаты маркеров. */
pset_marker_type(PMK_STAR);
/* Тип маркера - звездочка. */
ppolymarker3(num_of_point. ротnt3):
/* Построение маркеров по имеющимся данным. */
OpenGL
GLubyte asterisk[13] = {0x00. 0x00. 0x30. 0x18. 0x0с. 0х0с. 0x0с. 0x0с, 0x0с. 0x0с.
0х0с. 0x18. 0x30}
/* Задание растрового изображения звездочки. Первой рисуется нижняя
строка, затем следующая и т. д. */
GLsizei width = 8:
/* Ширина растра в пикселах. */
GLsizei height = 13;
/* Высота растра в пикселах. */
GLfloat origin_x = 0.0. origin y = 0.0:
/* Задание начала отсчета системы координат растра. Положительные
значения смещают начало отсчета вверх и вправо, отрицательные - вниз
и влево. */
GLfloat incre_x = 10.0. incre_y = 0.0:
/* Поправки к положению растра после выведения. */
GLfloat white[3] = {1.0. 1.0. 1.0}:
/* Задание цвета маркера. */
GLfloat pos1tion[2] = {20.5, 20.5}:
/* Координаты маркеров. */
glPi xelStore!(GLJJNPACKALIGNMENT.1):
/* Установка режима хранения пикселов, влияющего
на работу glBitmap */
glColor3fv(white):
/* Установка белого цвета маркера. */
glRasterPos2fv(position):
/* Установка текущего положения растра. */
glBitrnap(width. height, origin x. origin_y. incre_x. incre_y. asterisk):
/* Выводит растровую картинку, заданную в последнем аргументе.
представляющем собой указатель на эту картинку. Положение и размер
растра указываются первыми четырьмя аргументами. */
3.4.4. Текст
Большинство графических библиотек поддерживают два вида текста: текст для
пояснений (экранный или двумерный текст) и трехмерный текст. Текст для по-
яснений всегда располагается в плоскости экрана, поэтому его форма не искажа-
1 Метод задания растровых изображений излагается в книге [121}.
ется вне зависимости от угла, на который он повернут. Трехмерный текст может
быть расположен на любой плоскости в трехмерном пространстве. Его положе-
ние и ориентация задаются в мировых координатах. Для текста любого вида не-
обходимо задание таких параметров, как шрифт, отношение высоты к ширине и
угол наклона букв, а также положение и направление строки текста. Текст может
быть представлен символами двух видов: аппаратными и программными. Про-
граммный шрифт строится соответствующими графическими программами, за-
ранее сохраняемыми в памяти компьютера. Построение его занимает больше
времени, чем построение символов аппаратного шрифта, но зато форма может
быть гораздо более замысловатой. Символы аппаратного шрифта состоят из от-
дельных отрезков, формирующих буквы.
Приведенный ниже листинг демонстрирует построение текстовой строки АВС
с помощью библиотек PHIGS и OpenGL. Символы необходимо сохранить в виде
растровых картинок, прежде чем их можно будет использовать в OpenGL, точно
так же, как и маркеры.
PHIGS
Pvector3 direction[2] = {
{0.0. 0.0. 0.0}.
{10 0 10 0 10 0}};
/* Направление строки текста задается двумя радиус-векторами. */
Ppoint3 position = {5.5. 5.0. 5.0};
/* Положение строки текста */
ptext3(&position.di recti on "ABC");
/* Построение строки текста с указанными параметрами. */
OpenGL
GLubyte а[13] = {0x00, 0x00. 0x3f. 0x60. Oxcf. Oxdb. 0xd3. Oxdd. 0xc3. 0x7e. 0x00.
0x00. 0x00}:
GLubyte b[13] = {0x00. 0x00. ОхсЗ. ОхсЗ, ОхсЗ. 0xc3. Oxff. ОхсЗ, ОхсЗ. 0xc3. 0x66.
0x3c. 0x18};
GLubyte c[13] = {0x00. 0x00. 0xf3. 0xc7. ОхсЗ. ОхсЗ. 0xc7. Oxfe. 0xc7. ОхсЗ. ОхсЗ.
0xc7. Oxfe};
/* Растровые символы А. В и С. Растр задается снизу вверх
построчно. *7
GLsizei width = 8;
/* Ширина растра в пикселах. */
GLsizei height = 13;
/* Высота растра в пикселах. *7
GLfloat origin_x = 0.0. origin_y=0.0;
7* Задание начала отсчета системы координат растра.
Положительные значения смещают начало отсчета вверх и вправо.
отрицательные - вниз и влево */
GLfloat incre_x = 10.0. incre_y = 0.0;
/* Поправки к положению растра после выведения. */
GLfloat white[3] - {1.0. 1.0. 1.0}:
7* Задание цвета текста */
GLfloat position[2] = {20.5. 20.5};
/* Координаты символов. */
glPixelStore!(GL_UNPACK_ALIGNMENT.1);
7* Установка режима хранения пикселов, влияющего
на работу glBitmap. *7
glColor3fv(white);
7* Установка белого цвета символов. */
glRasterPos2fv(position):
7* Установка текущего положения растра. */
Глава 3. Основные концепции графичесхо
риг
glBitmap(width. height. origin_x. origin_y incre_x. incre_y. asterisk);
/* Выводит растровую картинку, заданную в последнем аргументе,
представляющем собой указатель на эту картинку. Положение и размер
растра указываются первыми четырьмя аргументами. */
3.5. Ввод графики
Как уже отмечалось, графической программе может требоваться поддержка ввода
графических элементов, таких как точки, отрезки и многоугольники, а не только
чисел и текстовых строк. Например, если пользователь хочет вычислить пло-
щадь многоугольника на экране или увеличить его размеры, он должен сначала
указать интересующий его многоугольник среди прочих объектов, видимых на
экране. Для ввода графики используется два вида физических устройств: лока-
тор (устройство ввода координат) и кнопка. Локатор (locator) передает графиче-
ской программе информацию о своем положении, то есть о положении курсора.
Кнопка (button) сообщает о действиях пользователя (включении и выключении)
в месте текущего положения курсора. В наши дни наиболее популярным устрой-
ством графического ввода является мышь, которая выполняет обе функции. Ша-
рик в нижней части корпуса мыши позволяет вводить координаты, а кнопки на-
верху корпуса передают программе действия пользователя.
Устройство графического ввода может работать в трех режимах: опрос, запрос
и выбор. В режиме опроса (sampling) осуществляется постоянное считывание со-
стояния устройства ввода, прежде всего положения локатора. Например, если вы
свободно рисуете на экране, перемещая мышь, она работает в режиме опроса.
Перемещение мыши приводит к непрерывному перемещению курсора по экрану.
В режиме запроса (requesting) положение локатора считывается только при от-
правке запроса, которая обычно производится при нажатии на кнопку мыши. Что-
бы прояснить различие между режимами опроса и запроса, рассмотрим процесс
построения многоугольника путем графического задания координат его вершин
при помощи мыши. В этом случае мы перемещаем мышь до тех пор, пока курсор
не окажется в нужном месте, после чего нажимаем кнопку. Курсор перемещается
по экрану согласно движениям мыши, которая находится при этом в режиме оп-
роса. Координаты вершин передаются графической программе в режиме запроса.
У этих режимов есть общее свойство: графической программе передаются коор-
динаты мыши или курсора. В режиме выбора (picking) устройство графического
ввода идентифицирует элемент экрана, на который указывает курсор в момент
нажатия кнопки. Графические элементы можно идентифицировать по именам,
присвоенным им программистом во время составления программы. Режим вы-
бора очень удобен при редактировании чертежа, уже имеющегося на экране (на-
пример, для удаления многоугольников или изменения координат их вершин).
3.6. Дисплейный файл
Дисплейный файл (display list) — это группа команд графической библиотеки, со-
храненная для последующего выполнения. Большинство команд графических
библиотек могут либо помещаться в дисплейный файл, либо выполняться не-
медленно. Дисплейный файл обеспечивает удобство и эффективность упорядо-
чения и обработки команд библиотеки. Рассмотрим, например, перемещение
изображения дома по экрану. Предположим, что рисунок состоит из нескольких
сотен отрезков. Если бы эти отрезки существовали по отдельности, нам при-
шлось бы написать команду перемещения несколько сотен раз — для каждого из
них. Однако если команды построения отрезков, образующих рисунок, объеди-
нены в дисплейный файл, команду перемещения достаточно написать только
один раз. Чтобы поместить графические элементы в дисплейный файл, нужно
открыть этот файл перед первой командой, которая должна в него попасть, и за-
крыть его после последней команды (см. пример ниже).
OpenGL
gl NewLI St (AREA FILL. GLCCjMPILEANDEXECUTE);
/* Открытие дисплейного файла с именем AREA FILL. */
glBegin(GL_POLYGON);
glVertex2fv(pointl);
glVertex2fv(point2):
glEndO;
/* Определение многоугольника. */
glEndListO:
/* Закрытие дисплейного файла. */
Дисплейный файл OpenGL ориентирован на оптимизацию производительности,
в частности, при работе по сети, но не за счет производительности на отдельном
компьютере. Оптимизация обеспечивается благодаря тому, что дисплейный
файл хранится в виде списка команд, а не в виде динамической базы данных.
Другими словами, созданный дисплейный файл изменить уже нельзя. Если бы
его можно было изменять, производительность упала бы из-за накладных расхо-
дов на поиск внутри списка и управление памятью. Изменение отдельных частей
дисплейного файла потребовало бы перераспределения памяти, что могло бы
привести к ее фрагментации. Дисплейные файлы, как правило, работают так же
быстро, как и обычные последовательности команд, не объединенные в группы.
В случае OpenGL дисплейные файлы могут значительно повысить производи-
тельность, в особенности при передаче подпрограмм OpenGL по сети, поскольку
файлы эти хранятся на сервере, благодаря чему сокращается сетевой трафик.
К созданному дисплейному файлу могут быть применены следующие операции:
□ множественное выполнение (multiple execution) — один и тот же файл можно
выполнять много раз;
□ иерархическое выполнение (hierarchical execution) — иерархическим называ-
ется дисплейный файл (родительский), вызывающий другие дисплейные
файлы (дочерние). Иерархические дисплейные файлы удобны для объектов,
состоящих из отдельных компонентов, особенно если некоторые компоненты
входят в объект в нескольких экземплярах;
□ удаление (deletion) — дисплейный файл может быть удален.
3.7. Матрица преобразования
Как говорилось в разделе 3.2, проецирование точек на объект в трехмерном про-
странстве требует преобразования координат из одной системы в другую. Снача-
ла нужно перевести координаты точек объекта из модельной системы в миро-
UO
Глава 3. Основные концепции графического программирования
вую. Текущее положение объекта обычно задается через повороты и смещения
относительно исходного положения, в котором модельная система координат
совпадала с мировой. Следовательно, мировые координаты точек объекта можно
получить трансляцией и поворотом соответствующих точек из их исходного по-
ложения, в котором их модельные координаты совпадали с мировыми. Большин-
ство графических библиотек выполняют эти преобразования самостоятельно,
а программисту остается задать только смещение и поворот для интересующего
его объекта. Однако проектировщику все равно нужно знать законы преобразо-
ваний, чтобы рисовать объекты в нужных местах без проб и ошибок, в особенно-
сти если эти объекты перемещаются достаточно сложным образом. В этом разде-
ле мы рассмотрим матрицы преобразования, действующие на точки объекта при
его перемещении и повороте.
Получив мировые координаты всех точек объекта в его текущем положении, мы
должны вычислить координаты этих точек в наблюдательской системе. Перевод
координат из одной системы в другую называется отображением (mapping).
Отображение между мировой и наблюдательской системами координат обычно
также осуществляется графической библиотекой самостоятельно, по заданным
программистом координатам точки зрения, точки наблюдения и направлению
вектора вертикали (в мировых координатах). Матрица преобразования для опе-
рации отображения рассматривается в разделе 3.7.3.
3.7.1. Трансляция
При трансляции объекта на величины а, b и с в направлениях х, у и z соответст-
венно по отношению в начальному положению, в котором модельная система ко-
ординат совпадала с мировой (рис. 3.16), мировые координаты точек объекта
в новом положении (Хи„ Ук, Z„,) вычисляются следующим образом:
= Хт + а;
Y„=Ym+b-, (3.3)
=^га +с.
В этой формуле числа Хт, Ym, Zm являются также модельными координатами
точки.
Формула (3.2) может быть записана в матричной форме1:
Trans(a, b, с)
Координаты могут быть также представлены в виде строки. Тогда матрица преобразова-
ния записывается после вектора координат. В этом случае матрица преобразования пред-
ставляет собой транспонированную матрицу из формулы (3.4). В формуле (3.4) мы
следуем соглашениям о записи OpenGL.
3.7. Матрица преобразования
69
Рис. 3.16. Трансляция объекта
Легко убедиться, что формулы (3.4) и (3.3) эквивалентны друг другу: для этого
достаточно записать (3.4) в развернутом виде. Операцию сложения в (3.3) удалось
записать через умножение в (3.4) благодаря использованию однородных координат,
в которых трехмерный вектор записывается через четыре скаляра вместо трех1.
Матрица, которую мы получили, называется матрицей однородного преобразова-
ния {homogeneous transformation matrix). В данном случае преобразование являет-
ся трансляцией. Если бы преобразование (в частности, трансляцию) нужно было
применить к точке в двумерном пространстве, однородная матрица преобразова-
ния редуцировалась бы до матрицы размерностью 3x3 удалением третьей строки
и третьего столбца из матрицы размерностью 4x4. Новая матрица действовала
бы на вектор координат размерностью 3x1, полученный из вектора 4x1 удалени-
ем z-координаты.
3.7.2. Вращение
Пусть объект поворачивается на угол 0 вокруг оси х мировой системы координат
вместе со своей модельной системой, которая, как и в предыдущем случае, изна-
чально совпадает с мировой (рис. 3.17). Мировые координаты точки объекта в
новом положении {Хт У„„ Z„) могут быть получены из исходных мировых коор-
динат этой точки {Хт, Ym, Zm), совпадающих с ее текущими координатами в мо-
дельной системе.
Соотношение между {Хи., У„„ Z„) и (Хт, Ym, Zm) становится очевидным после про-
ецирования рис. 3.17 на плоскость уг. Результат проецирования показан на
рис. 3.18.
1 Любой вектор (х, у, z)T трехмерного пространства может быть записан в соответствую-
щих однородных координатах в виде (xw, yw, zw, w)r, где верхний индекс Т обозначает
операцию транспонирования. Поскольку значение w может быть произвольным, для ка-
ждого вектора существует множество вариантов записи в однородных координатах.
В формуле (3.4) используется значение w = 1.
70
Глава 3. Основные концепции графического программирования
Рис. 3.17. Вращение вокруг оси х
Из рис. 3.18 можно легко получить следующие равенства:
=хт;
У„. = / cos(0 + а) =
= /(cos 0cos а -sinOsina) =
= /cos a cos 6-/sin a sin 0 =
= У„, cos0 -Zm sin0;
Zw = I sin(0 + a) =
= /(sin0cos a + cos 0sina) =
= /cosasin0 + /sinacosO =
= У„, sin0 + Z„, cos0.
(3.5)
(3.6)
(3-7)
3.7. Матрица преобразования
71
Равенства (3.5), (3.6) и (3.7) могут быть записаны в матричной форме:
(3-8)
Матрица в правой части формулы (3.8) — это однородная матрица преобразова-
ния вращения вокруг оси х, которая кратко обозначается Rot(x,W). Подобно мат-
рице трансляции, для двумерного объекта однородная матрица вращения реду-
цируется до размера 3x3.
Однородные матрицы вращения вокруг осей у и z получаются аналогичным об-
разом и записываются так:
cos0 0 sinG O'
0 1 0 0 ; (3.9)
Rot(y, 6) = -sinG 0 cos G 0
0 0 0 1
COS0 -sinG 0 o'
Rot(z, 0) = sin0 cos G 0 0 (3.10)
0 0 1 0
0 0 0 1
Мы получили матрицы преобразования, описывающие поворот вокруг мировых
осей координат. Можно показать, что поворот вокруг любой произвольной оси
раскладывается на повороты вокруг осей х, у и г. Таким образом, матрица преоб-
разования для произвольной оси получается перемножением матриц (3.8)-(3.10).
Как уже отмечалось, матрицы преобразования, описываемые в этом разделе,
обычно вычисляются соответствующими подпрограммами графических библио-
тек. Приведенный ниже код иллюстрирует использование подпрограмм PHIGS
и OpenGL.
PHIGS
ptranslate3(Pvector* offsets. Pint* error_ind. PmatrlxS results):
/* offsets: вектор трансляции
error_ind код ошибки
results: вычисленная матрица преобразования1 */
protate_x(Pfloat angle. Pint* error ind. PmatrlxS results)
protate_y(Pfloat angle. Pint* error_ind. PmatrlxS results):
protate_z(Pfloat angle. Pint* errorjnd. PmatrlxS results):
/* angle: угол поворота
error_ind код ошибки
results: вычисленная матрица преобразования */
OpenGL
glTranslatedCGLdouble offset_x. GLdouble offset_y. GLdouble offsets):
/* Умножает текущую матрицу на матрицу трансляции объекта со
смещениями offset_x. offset_y и offset_z по соответствующим осям */
1 В PHIGS матрица преобразования ставится после вектора-строки.
72
Глава 3. Основные концепции графического программирования
glRotated(GLdouble angle. GLdouble х. Gldouble у. GLdouble z):
/* Умножает текущую матрицу на матрицу поворота объекта на угол
angle против часовой стрелки вокруг луча, проведенного из начала
координат в точку (х. у. z). */
Рассмотрим несколько примеров, поясняющих применение матриц преобразо-
ваний.
Пример 3.1
Объект в трехмерном пространстве транслируется на 5 единиц в направлении у
мировой системы координат, после чего поворачивается на 90° вокруг оси х той
же системы координат. Если координаты точки объекта в модельной системе
имеют значения (0, 0, 1), какими будут мировые координаты этой точки после
трансляции и вращения?
Решение
Координаты (X'W,Y'W,Z'W)после преобразования трансляции могут быть вычисле-
ны следующим образом:
[х; Y'w z;£,]T = 7raw,s(0,5,0)[0 0 11]т=[051 1]т.
После этого применяется преобразование вращения:
[X„ Y„, Zw 1]т = Rot(x, 90° )[0 5 1 1]т.
Следовательно, координаты точки после преобразований будут иметь значения
(0, -1, 5). Обратите внимание, что предыдущие выражения можно объединить:
[Х„ У„, Za 1]т = .Ro/(%, 90° )7гаил(0,5,0)[0 0 1 1]т.
Последнее выражение значительно более удобно, особенно при вычислении ко-
ординат множества точек. В последнем случае матрицы трансляции и вращения
перемножаются заранее и дают эквивалентную матрицу преобразования, которая
действует на все интересующие нас точки. Процесс вычисления эквивалентной
матрицы преобразования путем перемножения отдельных матриц преобразова-
ния в соответствующей последовательности называется конкатенацией (conca-
tenation). Возможность выполнения конкатенации — одно из преимуществ ис-
пользования однородной системы координат, в которой трансляция записывается
через матричное умножение, а не через сложение.
Пример 3.2
Объект в пространстве поворачивается на 90° вокруг оси, параллельной оси х
мировой системы координат и проходящей через точку с мировыми координа-
5./. матрица преоиразования
тами (О, 3, 2). Если точка объекта имеет модельные координаты (0, 0, 1), какими
будут мировые координаты той же точки после поворота?
Решение
Мы изучили только повороты относительно осей, проходящих через начало ко-
ординат, поэтому нам придется сместить объект вместе с осью вращения. Ось
вращения должна проходить через начало координат, причем положение объекта
относительно этой оси должно сохраниться. Трансляция объекта вместе с осью на
вектор (0, -3, -2) даст нам совпадение оси вращения с осью х мировых коорди-
нат. Затем мы повернем объект вокруг оси х на 90°, после чего сместим его об-
ратно на вектор (0, 3, 2), чтобы вернуться к исходному положению.
Эти операции могут быть записаны следующим образом:
[Л\, Ya Z„, 1]т = Trans (0,3,2) Rot (г, 90°) Trans (0,-3,-2) [0 0 1 1]т.
Обратите внимание на последовательность матриц в этой формуле. Результат
легко проверить, применяя преобразования одно за другим, как в примере 3.1.
Раскрывая выражение, получим:
'1 0 0 0' 1 0 0 O' 1 0 0 0' O'
0 1 0 3 0 cos 90° -sin 90° 0 0 1 0 -3 0
[Х„ У z„, 11т = =
L W If' W J 0 0 1 2 0 sin 90° cos 90" 0 0 0 1 -2 1
0 0 0 1 0 0 0 1 0 0 0 1 1
= [0 4 -1 1]т.
Результат соответствует приведенной выше иллюстрации.
3.7.3. Отображение
Отображение (mapping) состоит в вычислении координат точки в некоторой систе-
ме координат по известным координатам той же точки в другой системе координат.
Рассмотрим две системы координат (рис. 3.19). Предположим, что координаты
(Х2,Y2,Z2)точки Р в системе координат х2у2г2 должны быть вычислены по коор-
динатам (Xt,Yt,Zl )той же точки в системеx^Zj. Далее, предположим, что вы-
числение производится применением матрицы преобразования Т12 к известным
координатам:
[Х2 y2 Z2 IV^IX, У, Zt 1]т.
(3.11)
। лава j. цснинны о qei |ции графического программирования
Рис. 3.19. Отображение из одной системы координат в другую
Записав матрицу 1\_2 в явном виде, мы
получим из формулы (3.11) следующее
выражение:
(3.12)
Чтобы найти неизвестные в уравнении (3.12), подставим в него конкретные зна-
чения Х1 = О, = 0 и Z, = 0, в результате чего получим:
= Px’Y2 =Ру’?2 =Рг- (313)
Можно сказать, что рх, ру и pz определяют координаты начала отсчета системы
ххУ12{ в системе координат х2у222.
Теперь подставим в уравнение (3.12) значения Xt = 1, Yt = 0, Zt - 0 и получим:
Х2=пх +px,Y2=ny+py,Z2 =пг+рг. (3.14)
Вычитая формулы (3.13) из (3.14), можно заключить, что пх, пу и п2 — компонен-
ты т2, у2 и z2 единичного вектора, направленного вдоль оси xt системы коорди-
нат Следовательно, коэффициенты пх, пу и nz легко вычислить с учетом
взаимной ориентации систем координат.
Аналогичным образом, о„ оу и ог представляют собой компоненты х2, у2 и z2 еди-
ничного вектора оси уь а компоненты ах, aynaz— вектора оси zb
Следующий пример демонстрирует предлагаемую теорию в действии.
Пример 3.3
По заданному положению точки зрения (-10, 0, 1), точки наблюдения (0, 0, 1)
и вектора вертикали (0, 0, 1) строится наблюдательская система координат
(см. представленный ниже рисунок). Обратите внимание, что все координаты
и компоненты векторов даны в мировой системе координат. Зная относительное
положение системы координат просмотра и мировой системы координат, рас-
считать:
□ матрицу преобразования Га._г;
□ координаты точки с мировыми координатами (5, 0, 1) в наблюдательской сис-
теме координат.
Решение
Первые три числа первого столбца Т№_,, (то есть пх, пу и пг) равны (0 0 -1), посколь-
ку они представляют собой компоненты х,„ у„ и zv оси xv, Аналогично, од, оу и ог, ко-
торые представляют собой компоненты х,„ у,, и z„ оси у„, равны (-10 0), а ап ау и аг
равны (0 1 0). р„ ру и рг — это координаты л„ у„ и начала координат системы
xwya.zu., поэтому они равны 0. -1 и 0 соответственно. В итоге получаем матрицу Т^,.
’0 -1 О О'
т 0 0 1-1
" -1 о о о
0 0 0 1
Координаты точки (5, 0, 1) в наблюдательской системе мы получим, применив
к этому вектору координат только что вычисленную матрицу отображения Tw_v.
’0 -1 0 О' 5 ’0 '
0 0 1 -1 0 0
—
z„ -1 0 0 0 1 -5
1 L0 0 0 1 1 1
Итак, координаты точки (5, 0, 1) в наблюдательской системе имеют значения (0,
0, -5), о чем можно догадаться, посмотрев на приведенный рисунок.
Пример 3.4
Точки зрения и наблюдения имеют координаты (5, 5, 5) и (0, 0, 0) соответствен-
но, а вектор вертикали выбирается равным (0, 0. 1). Проекция изометрическая.
Необходимо вычислить матрицу преобразования отображения T№_v и наблюда-
тельские координаты точки с мировыми координатами (0, 0, 5).
2.W
। лаво u. чл-riUHHbie тчинценцИ графЙЧ KOI U программирования
Решение
Наблюдательская система координат может быть изображена так, как показано
на рисунке выше. Заштрихованный треугольник на этом рисунке параллелен
плоскости экрана. В этой плоскости лежат оси х„ и ylt.
Чтобы вычислить элементы Tw_v, нам нужно получить компоненты xv, yt, и z„ осей
хв, уи. и zv Для этого обозначим единичные векторы осей xt„ у, и zv буквами iv jv и kv
соответственно. Единичные векторы осей х„„ у„, и z„ будут называться просто i, j и к.
Единичный вектор kv направлен из точки наблюдения в точку зрения, поэтому
. _ 1 . 1 . 1 ,
v V31+V3J+V3
Как отмечалось в разделе 3.2, единичный вектор jv должен быть коллинеарен
проекции вектора вертикали на экран. Другими словами, его направление будет
совпадать с направлением вектора, полученного вычитанием из вектора вертика-
ли составляющей, перпендикулярной экрану. Обозначив вектор вертикали ир,
запишем выражение для jv.
Up -(Up kv)k
1 . 1 . 2 ,
— I—;= J+-^k.
/6 V6 V6
|up-(Up kv)kv|
1. 1. 2.
— 1 — — J4- — к
3 3 3
1. 1 . 2,
— 1— I + — к
3 3 3
Последний единичный вектор iv вычисляется через векторное произведение:
. . . 1.1.
v =JvXkv =Z^1 + ^J-
Теперь вычислим пх — компоненту х„ оси х№ — как произведение:
. . 1
llv~-V2’
Аналогичным образом, компонента пч равна
. . 1
а компонента n2 равна
i k
1
"7з’
Таким же путем получим второй и третий столбцы матрицы Т№_„. Компоненты
Рх< Ру и р2 можно не вычислять, потому что в этом примере начала координат на-
блюдательской и мировой систем совпадают. Следовательно, матрица преобра-
зования выглядит так:
T„
1
V2
1
л/б
1
/3
О
1
V2
1
V6
1
7з
о
2
Ve
1
7з
о
0
0
0
0
1
3.7. Матрица преобразования
Координаты точки (0, 0, 5) в наблюдательской системе имеют значение
[Х„ у„ z„ 1]т = т^, [О о 5 1]т
5-Уб 5-Уб
3 3
Экранные координаты точки в изометрической проекции получаются из наблю-
дательских координат непосредственно;
(о
3
Изометрическая проекция относится к параллельным, поэтому все точки на
оси zw проецируются на ось у экранных координат. Фактически задание вектора
вертикали, равного (0, 0, 1), означает, что после проецирования ось г„ представ-
ляется на экране в виде вертикальной прямой.
3.7.4. Другие матрицы преобразования
Помимо матриц преобразования, рассмотренных в предыдущих разделах, часто
используются матрицы масштабирования и зеркального отображения.
Для масштабирования объекта с коэффициентом sx по оси х, sy по оси у, sz по оси
г применяется следующая матрица преобразования;
~х' X 0 0 0' х
Y' 0 s„ 0 0 Y
— У (3.15)
Z' 0 0 0 Z
_ 1 Lo 0 0 1 1
Для двумерных объектов матрица масштабирования редуцируется до разме-
ра 3x3, как это было с матрицами трансляции и поворота. Эффекта масштабиро-
вания можно достичь, изменив размеры видового экрана или окна, не меняя зна-
чений координат.
Матрица преобразования (3.15) используется при масштабировании объекта от-
носительно начала координат. Часто бывает необходимо масштабировать объект
относительно одной из его точек Р с координатами (Хр, Yp, Zp). В этом случае
сначала к точке Р применяется преобразование трансляции Trans(-Xp, - Yp, -Zp),
которое перемещает эту точку в начало координат, затем применяется матрица
масштабирования из (3.15), после чего объект возвращается в исходное положе-
ние действием Trans(Xp, Yp, Zp).
Отражение относительно зеркальной плоскости ху может быть достигнуто при
помощи приведенной ниже матрицы преобразования. Преобразование заключа-
ется в изменении знака координаты г.
X'' 1 0 0 0‘ X'
Y' 0 1 0 0 Y
Z' 0 0 -1 0 Z
1 0 0 0 1 1
(3.16)
Матрицы преобразования для других отражений (относительно плоскостей xz
и yz) выводятся аналогичным образом.
Глава 3. Основные концепции графического программирования
3.8. Удаление невидимых линий и поверхностей
Проекция на экран станет более наглядной, если будет содержать только ви-
димые линии и поверхности. Удаление невидимых линий {hidden-line removal)
заключается в блокировании отображения отрезков, скрытых от наблюдателя,
а удаление невидимых поверхностей {hidden-surface removal) есть то же самое по
отношению к поверхностям. Удаление невидимых линий иллюстрируют рис. 3.20
и рис. 3.21. Очевидно, что эта процедура значительно облегчает восприятие объ-
екта.
Рис. 3.20. Изображение до удаления невидимых линий
Рис. 3.21. Изображение после удаления невидимых линий
Опубликовано множество программных алгоритмов удаления невидимых линий
и поверхностей. Их авторы пытаются повысить вычислительную эффективность
и расширить диапазон объектов для применения своих алгоритмов. Однако луч-
ше всего удаление реализуется посредством графического устройства, которое
называется z-буфером1, поэтому в настоящее время исследования на эту тему
практически не ведутся. В настоящем разделе мы рассмотрим несколько типич-
ных алгоритмов удаления скрытых линий и поверхностей программным путем,
а также изучим метод использования для той же цели z-буфера.
Z-буфером называется область памяти, аналогичная буферу кадра в том смысле, что
в ней хранятся данные обо всех пикселах. Однако в г-буфере хранятся не цвета пикселов,
а z-координаты объектов, к проекциям которых эти пикселы относятся. Координата г из-
меряется в наблюдательской системе и потому является мерой расстояния от наблюдате-
ля до объекта.
3.8.1. Алгоритм удаления невидимых граней
Алгоритм удаления невидимых граней (back-face removal algorithm') основан на том,
что грань объекта может быть видимой только в том случае, если вектор внеш-
ней нормали к этой грани направлен в сторону наблюдателя. В противном слу-
чае грань будет невидима. Например, верхняя грань бруска, изображенного на
рис. 3.22, считается видимой, если вектор внешней нормали N имеет положи-
тельную составляющую в направлении вектора М, проведенного из точки на гра-
ни к наблюдателю. Математически это записывается так:
□ если М • N > 0, поверхность видима;
□ если М N = 0, поверхность проецируется в отрезок;
□ если М • N < 0, поверхность невидима.
Рис. 3.22. Векторы, определяющие видимость грани
Этот алгоритм легко применить к объекту, ограниченному плоскими поверхно-
стями, поскольку вектор нормали N постоянен в пределах поверхности. Однако
к вогнутому’ объекту алгоритм неприменим, поскольку грань, направленная
к наблюдателю, может быть закрыта другой гранью того же объекта (рис. 3.23).
Та же проблема возникает в случае нескольких выпуклых объектов, которые мо-
гут закрывать грани друг друга. Следовательно, алгоритм удаления невидимых
граней применим только к одному выпуклому объекту. Более того, алгоритм не-
применим к объектам, для которых вектор внешней нормали определяется неод-
нозначно1 2 (см., например, рис. 3.24).
Если поверхности объекта не являются плоскими, значение N будет меняться в
пределах одной грани в зависимости от выбранной точки. Одновременно может
меняться и знак произведения М • N. Это означает, что у одной и той же грани
будут как видимые, так и невидимые участки. Поэтому грань должна быть разде-
лена на две части вдоль кривой, на которой выполняется равенство М • N = 0.
Эта кривая называется силуэтной линией (silhouette line). После разделения гра-
ни вдоль силуэтной линии знак М • N будет постоянным на каждой из частей
грани. Процедура может показаться легкой, но рассчитать силуэтную линию
очень сложно, а из-за этого теряется главное преимущество алгоритма удаления
невидимых граней — простота реализации.
1 Объект называется вогнутым, если по крайней мере две его грани смыкаются под внут-
ренним углом, большим 180°. Если все грани смыкаются с внутренними углами, меньши-
ми 180°, объект называется выпуклым.
2 Такой объект вообще представляет собой достаточно сложную проблему, о чем будет
рассказано в главе 5.
80
Глава 3. Основные концепции графического программирования
Рис. 3.23. Пример вогнутого объекта
После того как все грани классифицируются как видимые или невидимые, на эк-
ран выводятся ребра видимых граней, в результате чего получается рисунок без
невидимых линий. Если же нужно получить рисунок без невидимых поверхно-
стей, видимые поверхности заливаются выбранными цветами.
Рис. 3.24. Объект с неоднозначно определенным вектором внешней нормали
3.8.2. Алгоритм художника
Основной принцип алгоритма сортировки по глубине, или алгоритма художника
{depth-sorting, painter’s algorithm), можно представить следующим образом. По-
верхности объектов сортируются по удаленности от наблюдателя и заполняются
соответствующими цветами, начиная с самой дальней. В результате закрашива-
ния поверхностей в данной последовательности дальние поверхности автома-
тически скрываются ближними, если они проецируются в одну и ту же область
экрана. Таким образом, алгоритм художника работает как алгоритм удаления не-
видимых поверхностей.
Расстояние от поверхности до наблюдателя определяется z-координатами точек
на этой поверхности в наблюдательской системе координат. Точка с большей ко-
ординатой Z,, считается находящейся ближе к наблюдателю1. Здесь и далее z-ko-
ордината в наблюдательской системе координат будет обозначаться Zv. Значит,
остается только сравнить координаты Z,. всех поверхностей и отобразить их, на-
чиная с поверхности с наименьшим значением Zv.
1 В OpenGL точки с большими Z„ находятся дальше от наблюдателя, поскольку эта биб-
лиотека основана на левосторонней наблюдательской системе координат.
3.8. Удаление невидимых линии и поверхностей
о
Легко сравнивать координаты Z,, поверхностей, если максимальное значение Z,.
одной из них меньше минимального значения Z,, другой. Однако в большинстве
случаев диапазон значений Zt, точек одной поверхности перекрывается с диапа-
зоном Z„ другой поверхности. Неоднозначности можно избежать, разбивая все
поверхности на отдельные части до тех пор, пока диапазоны Z,, не перестанут пе-
рекрываться. Есть и другой, более простой в реализации способ решения про-
блемы. Все поверхности преобразуются в наборы небольших треугольников
таким образом, чтобы диапазоны Z„ разных треугольников не перекрывались
друг с другом, после чего треугольники окрашиваются в соответствующие цвета
в нужной последовательности. Чем меньше размер треугольников, тем меньше
шансов, что их диапазоны Z„ перекроются. Такое приближение поверхности объ-
екта называется триангуляцией {triangulation) или фасетированием.
3.8.3. Алгоритм удаления невидимых линий
Алгоритм сортировки по глубине используется для удаления невидимых по-
верхностей. Алгоритм невидимых граней позволяет построить рисунок со скры-
тыми линиями, но имеет множество ограничений в общем случае. При примене-
нии алгоритма невидимых граней к множеству объектов удалено будет лишь
около 50% невидимых линий. Нам нужен алгоритм, который удалял бы все не-
видимые линии независимо от количества объектов, их выпуклости и наличия
криволинейных поверхностей.
Один из таких алгоритмов действует следующим образом. Для каждого ребра1
каждого объекта производится проверка, не закрыто ли оно гранями2 каких-либо
объектов. Закрытые части ребер последовательно исключаются до тех пор, пока
не останется непроверенных поверхностей. Оставшиеся части всех ребер выво-
дятся на экран.
Реализация алгоритма включает несколько этапов.
1. Поверхности, направленные к наблюдателю, выделяются из всех остальных
в отдельную группу при помощи алгоритма невидимых граней. Выделенные
поверхности сохраняются в массив FACE-TABLE. Грани, направленные от
наблюдателя, учитывать не требуется, поскольку они сами по себе скрыты,
а потому не скрывают ребра других граней. Для каждой грани сохраняется
максимальное и минимальное значение Zt. Криволинейные поверхности раз-
деляются по силуэтным линиям (как в алгоритме невидимых граней), а види-
мые части этих поверхностей также сохраняются в массиве FACE-TABLE
вместе с плоскими гранями.
2. Ребра граней из массива FACE-TABLE выделяются из всех прочих ребер
и собираются в отдельный список. Ребра других граней, не входящих в FACE-
TABLE, можно не рассматривать, поскольку они невидимы. Затем для каждо-
го ребра из списка производится проверка, не закрывается ли это ребро гра-
нью из FACE-TABLE.
1 Ребром объекта называется кривая пересечения соседних поверхностей, ограничиваю-
щих внутренний объем объекта.
2 Гранями называются поверхности, ограничивающие объем объекта. Площадь любой гра-
ни конечна, потому что все грани ограничиваются ребрами.
3. Скрытие ребра гранью можно обнаружить, сравнивая диапазоны значений Z,,
ребра и грани. Возможны три случая (рис. 3.25). В случае рис. 3.25, а все зна-
чения Zv ребра меньше минимального значения Z„ грани, то есть грань на-
ходится перед ребром. В случае рис. 3.25, б значения Z, ребра больше макси-
мального значения Z,, грани, то есть грань находится за ребром. В случае
рис. 3.25, в диапазоны значений Z,, грани и ребра перекрываются, то есть часть
ребра находится за гранью, а другая часть — перед ней. Если ребро находится
перед проверяемой гранью, из массива FACE-TABLE выбирается следующая
грань и ребро сравнивается уже с ней. Если ребро оказывается за гранью, или
проходит ее насквозь, приходится выполнять дополнительное действие.
4. Ребро и грань проецируются на экран, после чего производится проверка пе-
рекрытия проекций. Если перекрытия нет, из этого следует, что ребро не за-
крывает проверяемую грань. Из массива FACE-TABLE выбирается следую-
щая грань и проверяется согласно пункту 3. Если проекции перекрываются,
ребро делится на две части в той точке, где она проходит сквозь проверяемую
грань (рис. 3.26). Закрытая часть ребра отбрасывается, а видимые части до-
бавляются в список. Затем пункт 3 повторяется для новых элементов списка.
Исходное ребро из списка удаляется.
5. Ребра, прошедшие проверку со всеми гранями из FACE-TABLE, считаются
видимыми и выводятся на экран.
Рис. 3.25. Три возможных положения грани и ребра
3.8.4. Метод z-буфера
Метод z-буфера основан на том же принципе, что и алгоритм сортировки по глу-
бине: на любом участке экрана оказывается проекция элемента, расположенного
ближе всех прочих к наблюдателю. Здесь под элементами понимаются точки,
кривые или поверхности. Данный метод требует использования области памяти,
называемрй z-буфером. В этом буфере для каждого пиксела хранится значение
координаты Zt, того элемента, проекция которого изображается данным пиксе-
лом. Как уже говорилось, значение Zv (то есть координата z в наблюдательской
системе) есть мера удаленности объекта от наблюдателя. Объем z-буфера опре-
3.8. Удаление невидимых линий и поверхностей
83
деляется количеством пикселов, для каждого из которых требуется сохранить
вещественное число.
Грани, векторы нормали которых направлены от наблюдателя, невидимы для
него, поэтому на экран проецируются только те грани, векторы нормали которых
направлены к наблюдателю. Однако в отличие от метода сортировки по глубине,
в данном случае порядок проецирования значения не имеет. Причина станет
очевидной, как только вы прочитаете приведенное ниже описание алгоритма.
Сначала проецируется произвольно выбранная поверхность, и в ячейки памяти
z-буфера, соответствующие пикселам проекции поверхности, записываются зна-
чения координат Z(, точек поверхности, являющихся прообразами данных пиксе-
лов. Пикселы окрашиваются в цвет первой поверхности. Затем проецируется
следующая поверхность, и все неокрашенные пикселы, относящиеся к ее проек-
ции, окрашиваются в цвет второй поверхности. Если пикселы уже были окраше-
ны, соответствующие им значения Z, сравниваются со значениями Z,, точек теку-
щей поверхности. Если сохраненное значение Zv какого-то пиксела оказывается
больше текущего (то есть точка на предыдущей поверхности ближе к наблюдате-
лю, чем точка на текущей поверхности), цвет пиксела не меняется. В противном
случае пиксел окрашивается в цвет текущей поверхности. Изначально z-буфер
инициализируется координатами Z„, соответствующими дальней плоскости
(см. рис. 3.11), поэтому пикселы проекции первой поверхности автоматически
окрашиваются в ее цвет. Повторяя эту процедуру для всех имеющихся плоско-
стей, мы окрасим все пикселы экрана в цвета ближайших поверхностей (рис. 3.27).
Пиксел имеет тот же цвет,
что и ближайшая поверхность
Рис. 3.27. Основы метода z-буфера
Как следует из предшествующего описания, метод z-буфера предназначен глав-
ным образом для удаления скрытых поверхностей, как и метод сортировки по
глубине. Однако метод z-буфера с небольшими изменениями позволяет реали-
зовать и построение рисунков со скрытыми линиями. Сначала все поверхности
проецируются на экран, причем пикселы окрашиваются в цвет фона (на экране
ничего не появляется). При этом z-буфер заполняется правильными значениями
Zv. Затем на экран проецируются ребра поверхностей. При этом значения Z„ ре-
бер сравниваются со значениями Zt, ближайших к наблюдателю поверхностей,
уже найденными на предыдущем этапе. Окрашиваются только те пикселы, для
которых новые значения Zr больше исходных. Таким образом, участки ребер,
84
Глава 3. Основные концепции графического программирования
скрытые поверхностями, на экране не появляются. Эта процедура дает правиль-
ный рисунок без скрытых линий, но некоторые граничные линии могут оказаться
слишком тонкими, потому что некоторые пикселы этих линий будут относиться
к поверхностям, ограниченным соответствующими ребрами. Эту проблему легко
решить, пододвинув весь объект поближе в момент проецирования ребер.
3.9. Визуализация
Изображения без невидимых линий и поверхностей в большинстве случаев пе-
редают форму объекта достаточно хорошо. Однако для некоторых приложений
желательно иметь возможность строить более реалистичные изображения. Осо-
бенно важную роль реалистичность играет в «виртуальной реальности» — отно-
сительно новой технологии, позволяющей имитировать на компьютере реальные
ситуации. Например, вы можете занести в компьютер сведения о внутреннем и
внешнем виде проектируемого здания, а затем пройтись по нему и вокруг него,
чтобы прочувствовать, как оно будет выглядеть на самом деле. Это средство мо-
жет оказаться очень полезным для принятия решения о вложении денег в по-
стройку здания.
Для имитации реальной сцены нужно воспроизвести эффекты, создаваемые све-
том, падающим на поверхности объектов. Этот процесс называется визуализаци-
ей или тонированием (rendering). Вообще говоря, все, что мы видим, — это отра-
жение света от поверхностей, а по этому отраженному свету мы определяем
форму, текстуру и цвет объекта. В усовершенствованных графических библиоте-
ках обычно имеются некоторые средства визуализации. Для их применения дос-
таточно задать фасетированную модель объекта, условия освещенности и свой-
ства поверхностей (например, блестящие или тусклые). Однако для правильного
использования технологий визуализации необходимо иметь представление об их
основах. Даже задать правильные значения параметров функций визуализации
без достаточно хорошего знания техники визуализации непросто. Поэтому в на-
стоящем разделе мы коротко опишем две основные технологии визуализации:
затушевывание (shading) и трассировка лучей (ray tracing). Подробное описание
технологий визуализации можно найти в большинстве книг по компьютерной
графике.
3.9.1. Затушевывание
Процедура затушевывания аналогична удалению невидимых поверхностей с той
разницей, что пикселы одной поверхности окрашиваются разными цветами в со-
ответствии с цветом и интенсивностью отраженного света в точке, проектируе-
мой Ru = KdIu на этот пиксел. Таким образом, основной задачей становится рас-
чет цвета и интенсивности света, отраженного от какой-либо точки объекта.
Начнем с расчета интенсивности.
Поверхность объекта может быть освещена светом, исходящим непосредственно
от источников, то есть прямым светом (direct illumination), а также светом, отра-
женным от других поверхностей, дающим окружающее освещение (ambient illumi-
nation). Свет, отраженный данной точкой объекта, получается сложением отра-
женных лучей двух типов (рис. 3.28).
Источник света
Прямой свет
Окружающее
/освещение
Отраженный свет
Рис, 3.28. Прямое и окружающее освещение
Отраженный от множества поверхностей сцены свет может считаться приходя-
щим с бесчисленного множества направлений, поэтому отражение окружающего
освещения считается равномерно распределенным во всех направлениях. Поэто-
му интенсивность отражения Ra записывается по формуле:
(3.17)
Здесь 1а — интенсивность окружающего освещения, a Kd — коэффициент отраже-
ния поверхности. У белых поверхностей коэффициент отражения близок к еди-
нице, а у черных — к нулю. Наблюдатель будет воспринимать одну и ту же ин-
тенсивность отраженного окружающего освещения вне зависимости от своего
положения, поскольку это освещение образуется благодаря отражению от всех
поверхностей и распределяется равномерно по всем направлениям.
Для описания прямого освещения достаточно рассмотреть лишь точечные ис-
точники света, поскольку линейные и поверхностные источники могут быть рас-
смотрены как совокупность точечных. Отражение света от точечного источника
рассматривается как комбинация двух видов отражения диффузного и зеркаль-
ного.
Диффузное отражение {diffuse reflection) состоит в том, что поверхность погло-
щает свет, а затем переизлучает его равномерно во всех направлениях (рис. 3.29).
Интенсивность диффузного отражения (как и отражения окружающего освеще-
ния) не зависит от положения наблюдателя. Особенности структуры поверхности,
такие как текстура и цвет, становятся видимыми именно благодаря диффузному
отражению. Для грубых поверхностей отражение является преимущественно
диффузным, а не зеркальным.
Зеркальное отражение {specular reflection) — это прямое отражение света поверх-
ностью. Данный тип отражения характерен для блестящих поверхностей, таких
как зеркала. Блестящие поверхности отражают почти весь падающий свет и по-
I jicJtsd j. оспивпыс кия и графического прогpa и мирона имя
тому обладают повышенной яркостью (рис. 3.30). Интенсивность зеркального
отражения воспринимается по-разному в зависимости от положения наблюдате-
ля относительно сцены.
Рис. 3.30. Зеркальное отражение
Рис. 3.29. Диффузное отражение
Опишем процедуру расчета интенсивностей диффузного и зеркального отраже-
ния. Когда мы сделаем это, интенсивность отражения света от точечного источ-
ника можно будет приближенно описать как сумму отражений указанных двух
типов. Интенсивность диффузного отражения прямо пропорциональна косину-
су угла падения. Углом падения в данной точке называется угол между вектором
нормали к поверхности и вектором, направленным из точки к источнику света
(рис. 3.31).
Вектор нормали
Рис. 3.31. Определение угла падения
Это соотношение называется законом косинусов Ламберта. Его легко проверить,
представив падающий пучок в виде конечного числа параллельных линий, нахо-
дящихся на одинаковом расстоянии друг от друга (рис. 3.32). Обратите внима-
ние, что количество лучей, падающих на поверхность, уменьшается с ее наклоном.
Отсюда следует, что интенсивность отраженного света с наклоном поверхности
также будет падать.
Рис. 3.32. Иллюстрация к закону Ламберта
»»»
Математически закон косинусов Ламберта может быть выражен так. Интенсив-
ность падающего света в интересующей нас точке 1р считается обратно пропор-
циональной квадрату расстояния до источника света Db поэтому для источника
интенсивностью Ер она запишется так:
Е„
1„ = (3.18)
Обычно предполагается, что все источники света установлены достаточно дале-
ко от поверхностей, так что D/ может считаться одинаковым для всех точек. То-
гда закон Ламберта запишется независимо от Df.
Rrl = ^£„(N-L). (3.19)
Здесь Rd — интенсивность диффузного отражения, Kd — коэффициент отраже-
ния (см. формулу (3.17)), N — единичный вектор нормали к поверхности в инте-
ресующей нас точке, L — единичный вектор, направленный от точки к источни-
ку света, a N • L — косинус угла падения. Вектор L постоянен для всех точек,
поскольку источник считается расположенным достаточно далеко.
Используя формулу (3.19), можно столкнуться со следующей проблемой: две
параллельные плоскости, частично перекрывающиеся на экране, будут казаться
наблюдателю неразличимыми. Лучше, если бы плоскость, расположенная бли-
же, казалась более яркой, то есть имела большее значение Rd. Такого эффекта
можно достичь, изменив формулу (3.19):
К,.Е„
Rd =-^-(N-L). (3.20)
D + Do
Здесь D — расстояние между интересующей нас точкой и точкой зрения наблю-
дателя, а постоянная Do позволяет избежать деления на нуль.
Теперь займемся расчетом интенсивности зеркального отражения. Было сделано
множество попыток точно промоделировать зеркальное отражение. Мы рассмот-
рим одну типичную модель, которая носит название модели Фонга {Phong model).
Большая часть отраженного света попадает в небольшой конический объем во-
круг оси, угол которой совпадает с углом падения, но находится по другую сто-
рону от нормали к поверхности (рис. 3.33). Эта ось на рисунке обозначена еди-
ничным вектором R. Интенсивность воспринимаемого наблюдателем света будет
спадать по мере удаления вектора зрения (единичный вектор V на рис. 3.33) от
вектора R Фонг предложил следующую формулу для описания этого эффекта:
R“ <3-21)
£) + Do
Здесь Ер, D и Do имеют тот же смысл, что и в формуле (3.20), a Ks — константа,
аналогичная Kd в той же формуле. Ks называется коэффициентом зеркального
отражения. Формулу (3.21) можно интерпретировать так: интенсивность света,
воспринимаемого наблюдателем, вектор зрения которого отклоняется от оси R
на угол ф, пропорциональна (cos <р)". Таким образом, интенсивность отражения
быстро спадает с удалением от угла отражения, если п много больше единицы,
то есть отраженный свет распространяется плотным пучком вдоль осп R. Поэто-
му у блестящих поверхностей, например металлических, значение п должно
быть большим. Например, для такой поверхности хорошо взять значение п
порядка 150. Тусклая поверхность, например бумага или ткань, характеризуется
значением п, близким к единице.
Рис. 3.33. Векторы, используемые в модели Фонга
Теперь мы можем получить интенсивность отражения в данной точке, сложив
выражения (3.17), (3.20) и (3.21):
Е
I=KdId + —^^(NM + K/VR)"]. (3.22)
£> + Г>0
Чтобы учесть цвет отраженного света, достаточно записать выражение (3.22) от-
дельно для каждого из основных цветов: красного, синего и зеленого. Таким об-
разом, интенсивность отраженного света раскладывается на интенсивность крас-
ного (/,), зеленого (7g) и синего (Д). Источники света также описываются в трех
цветах: 1ал Iaff 1иЬ для окружающего освещения и Ерп Е№, ЕрЬ для прямого освеще-
ния. Коэффициент отражения поверхности тоже записывается отдельно для ка-
ждого цвета: Kdn Kdg и Kdb. Например, поверхность красного цвета будет иметь
значение Kdr= 1, Kdj,= 0, Kdb = 0. Тогда выражение (3.22) можно разложить на три
равенства:
Е„г
1Г = KrlrI,ir +-^_[Kdr(N L) + KS(V R)"];
£> + D0
4 = К^1^ + _^[^(N.L) + Xj(V-R)'’]; (3.23)
£/+ l/0
E h
lb = KdbIab + [Kdb(N • L) + Ks ( V • R)n 1.
£7+ JJ0
Обратите внимание, что коэффициент зеркального отражения не раскладывает-
ся на отдельные цвета. Дело в том, что зеркальное отражение практически не
влияет на цвет. Интенсивности, определяемые уравнениями (3.23), используют-
ся для задания интенсивностей электронных пушек на цветных мониторах стан-
дарта RGB.
Мы выяснили, как рассчитывается цвет и интенсивность отраженного света для
одной точки объекта. Однако если нам нужно затушеванное изображение объек-
та, выражения (3.23) необходимо вычислить для всех точек объекта. Очевидно,
что эта задача требует огромных вычислительных затрат для своего решения.
Одним из способов сократить вычисления является представление поверхно-
стей в виде наборов треугольных граней. В этом случае вектор нормали для каж-
3.9. Визуализация
89
дой грани приходится вычислять только один раз. Кроме того, векторы L, R и V
в пределах каждой грани могут считаться постоянными, если предполагается,
что источники света и наблюдатель находятся далеко от объекта. Это предполо-
жение широко используется для упрощения вычислений. В итоге выраже-
ние (3.23) приходится вычислять только один раз для каждой грани. Упрощая
вычисления, мы, однако, теряем плавность перехода между соседними треуголь-
ными гранями.
Одним из решений этой проблемы является использование плавно меняющего-
ся вектора нормали в пределах каждой грани. По методу Фонга вектор единич-
ной нормали для грани вычисляется интерполяцией векторов нормали в верши-
нах этой грани. Вектор нормали в вершине вычисляется усреднением векторов
нормали плоских граней, которым эта вершина принадлежит. Другое решение —
вычислять интенсивность света для каждого пиксела путем интерполяции ин-
тенсивностей в вершинах грани. Это называется затушевыванием по методу
Гуро (Gouraud shading).
3.9.2. Трассировка лучей
Метод затушевывания, описанный в предыдущем разделе, может использовать-
ся в относительно простых условиях, когда один объект освещается далеко рас-
положенными точечными источниками света. Однако он неприменим в случае
множества объектов, особенно если некоторые из них прозрачны, а другие пре-
ломляют лучи. В сложных ситуациях используется метод трассировки лучей
(ray tracing).
Основная идея метода заключается в следующем. Источники света испускают
лучи во всех направлениях, и все эти лучи прослеживаются до тех пор, пока они
не попадают в одну из точек экрана. В процессе прослеживания вычисляется из-
менение интенсивности и направления луча при падении его на какой-либо объект.
Направление меняется по законам рассеяния, отражения и преломления. Каж-
дая точка экрана (пиксел) окрашивается в цвет, соответствующий интенсивно-
сти пучка света в момент его падения на экран. Поскольку для заполнения экра-
на таким путем пришлось бы проследить бесконечно много лучей, такой подход
на практике нереален. Нас интересуют цвета конечного числа пикселов экрана,
поэтому рассматривать бесконечное количество лучей не обязательно. Нужно
рассмотреть траектории конечного числа лучей в обратном направлении. Луч
проходит из центра проекции сквозь каждый пиксел и прослеживается в обрат-
ную сторону до тех пор, пока он не выйдет из просматриваемого объема, не упа-
дет на рассеивающую поверхность или не войдет в источник света (рис. 3.34).
Если луч достиг источника света, это означает, что между источником и экраном
отсутствуют непрозрачные препятствия, поэтому пиксел окрашивается в цвет
источника. Если луч выходит из просматриваемого объема, значит, никакие объ-
екты на данный пиксел не проецируются, и он должен быть окрашен в цвет фона.
Если же луч падает на рассеивающую поверхность, проследить его траекторию
дальше невозможно. В этом случае цвет пиксела окрашивается в цвет отражае-
мого данной поверхностью света. Следовательно, интенсивности света на рас-
сеивающих поверхностях должны быть вычислены заранее по методу затушевы-
вания, описанному в предыдущем разделе.
Глава 3. Основные концепции графического программирования
3.10. Графический интерфейс пользователя
Как отмечалось ранее, важной особенностью существующих программ CAD/
САМ/САЕ является взаимодействие с пользователем посредством графического
ввода и графического вывода. Другими словами, программное обеспечение долж-
но иметь возможность открывать окна (области взаимодействия) для отображе-
ния меню или значков, а также сопоставлять пунктам меню и значкам какие-либо
функции. Программное обеспечение, предоставляющее такие возможности, на-
зывается графическим интерфейсом пользователя (graphical user interface — GUP).
Программист может построить самодельный графический интерфейс на базе
конкретной графической библиотеки. Этот интерфейс будет обладать недостат-
ком, связанным с невозможностью перенести его на рабочие станции, не поддер-
живающие использованную графическую библиотеку. Поэтому интерфейс при-
дется переписывать заново для каждой новой графической рабочей станции.
Чтобы избежать этой проблемы, программисты строят графический интерфейс
на базе системы X window, которая в настоящее время поддерживается большин-
ством графических рабочих станций. (Системе X window посвящен следующий
раздел этой главы.) Два типичных интерфейса пользователя, основанных на
X window, называются Open Look и OSF/Motif. Open Look поддерживался кор-
порацией Sun Microsystems, а OSF/Motif — всеми прочими производителями,
включая IBM, Hewlett-Packard, DEC и Tektronix.
Программист, пишущий приложение с использованием Open Look или OSF/
Motif, может обращаться к функциям диспетчера окон для выполнения таких
операций, как открытие окон, построение меню и выполнение задач, вызы-
ваемых пунктами меню1. Графический экран диспетчера окон Motif показан на
рис. 3.35.
Open Look и Motif хороши для разработки приложений по той причине, что они
основаны на системе X window, достоинства которой будут рассмотрены в сле-
дующем разделе.
На персональных компьютерах, работающих под управлением Windows 98/NT, анало-
гичные возможности предоставляются набором базовых классов Microsoft (Microsoft
Foundation Classes — MFC).
3.11. Система X window
Оконное
меню
Строка
заголовка
Кнопка Свернуть
Изменение размеров окна
Рис. 3.35. Окно диспетчера Motif
3.11. Система X window
Разработка системы X window (или просто X) началась в 1983 г. в Массачу-
сетском Технологическом институте под кодовым названием «проект Афина».
Оконный интерфейс разрабатывался на основе операционной системы под на-
званием W, которая была создана в Стенфордском университете в начале 80-х.
В 1986 г. вышла первая коммерческая версия системы X window, которая назы-
валась ХЮ. Позднее было объявлено о выпуске X11R5.
Система X window позволяет приложению открывать и закрывать окна на рабо-
чих станциях, подключенных к сети. Операции ввода и вывода также могут осу-
ществляться на любой рабочей станции. Слово «окно» имеет в этом разделе не-
сколько иное значение, нежели в разделе 3.3. Здесь под окном понимается
отдельная область экрана рабочей станции, через которую пользователь взаимо-
действует с вычислительными ресурсами сети. Например, мы можем открыть
два окна на рабочей станции INDIGO2 (рис. 3.36) и использовать одно из этих
окон в качестве портов ввода и вывода для программы, выполняемой на компью-
тере SUN. Одновременно второе окно может использоваться для ввода и вывода
программы, выполняемой на самом 1NDIGO2.
Для выполнения задач такого рода система X window должна уметь принимать
запросы от клиентов, посылать запросы на другие рабочие станции и выполнять
графические операции ввода-вывода с окнами экрана. Окно может быть распо-
ложено на любом компьютере сети. На рабочей станции, где должно быть откры-
то окно, должен работать сервер X window, способный выполнять операции с
графикой. Запросы клиента пишутся с использованием специальных функций,
которые хранятся в библиотеке Xlib. Библиотека Xlib должна быть установлена
92
Глава 3. Основные концепции графического программирования
и на той рабочей станции, где выполняется приложение. Пересылка запроса по
сети осуществляется основным кодом системы X window. Вообще говоря, в сис-
тему входят все перечисленные компоненты, включая Х-сервер и Xlib.
Рис. 3.36. Использование X в сетевой среде
Итак, приложение для X window обладает следующими достоинствами. Во-пер-
вых, приложение, выполняемое на одной рабочей станции, может осуществлять
графический ввод-вывод через окно, открытое на другой рабочей станции. Во-
вторых, на одной рабочей станции может быть открыто множество окон, через
которые пользователь имеет возможность работать с вычислительными ресур-
сами разных машин. Наконец, приложение, написанное для системы X window,
не зависит от операционной системы и типа рабочей станции. Теми же достоин-
ствами обладает и графический интерфейс пользователя, который также может
считаться приложением. То же можно сказать и об интерфейсах Open Look
и Motif.
Вопросы и задачи
1. Какими недостатками обладают графические программы, написанные непо-
средственно с использованием команд драйвера устройства?
2. Объясните, почему графическая программа, основанная на какой-либо гра-
фической библиотеке, может выполняться лишь на ограниченном числе гра-
фических устройств.
3. Какова главная причина, по которой для задания положения на графическом
устройстве используется виртуальная, а не обычная система координат уст-
ройства?
4. Почему для задания формы объекта используется модельная система коорди-
нат этого объекта?
5. Объясните, каким образом задаются положение и ориентация каждого объек-
та сцены.
6- Кратко опишите процедуру преобразования координат точки объекта из мо-
дельной системы в экранную.
7- Объясните значение термина «окно» в компьютерной графике.
8. Объясните значение термина «окно просмотра».
9- Объясните различие между режимами выбора и опроса.
Вопросы и задачи
10. Какие операции могут выполняться с экранным файлом?
11. Точка зрения и точка наблюдения имеют мировые координаты (1, 1, 2) и
(0, 1, 2). Вектор вертикали имеет координаты (0, 0, 1).
1) Нарисуйте эскиз, показывающий взаимное расположение экрана, наблю-
дательской системы координат, точки зрения и точки наблюдения.
2) Напишите матрицу преобразования Тю_и осуществляющую перевод миро-
вых координат в наблюдательские. •
3) С помощью матрицы преобразования определите наблюдательские коор-
динаты точки с мировыми координатами (5, 1, 2).
12. Какие матрицы преобразования и в каком порядке должны быть применены
для поворота точки (2, 2) на плоскости ху на 30° против часовой стрелки от-
носительно точки (3, 4)? Вычислите координаты точки после поворота, при-
менив матрицы преобразования к точке (2, 2).
13. Взаимное положение систем координат показано на рисунке. Ответьте на
приведенные ниже вопросы.
1) Точка объекта имеет координаты (-3, 0, 3) в модельной системе. Коор-
динаты этой точки в мировой системе координат (X,£l, Yw, Zw) могут быть
получены по приведенной ниже формуле, если имеется матрица преобра-
зования Тт.
Вычислите матрицу преобразования Тт и определите мировые координа-
ты точки по приведенной формуле. В этой задаче модельная система коор-
динат совпадает с мировой, если мировая система координат транслирует-
ся на вектор (0. 2, -1).
2) Наблюдательская система координат на рисунке характеризуется коорди-
натами точки зрения (-10, 7, 2), точки наблюдения (-3, 7, 2) и вектора
вертикали (0, 0, 1), которые заданы в мировой системе координат. Вычис-
S4
Глава 3. Основные концепции графического программирования
лите матрицу преобразования Тр, переводяющую мировые координаты точки
(Х„„ У„, Za.) в наблюдательские (X,,, Yv, Z,)-
14.
15.
16.
17.
3) Вычислите наблюдательские координаты точки с модельными координа-
тами (-3, 0, 3), применив полученные ранее матрицы Т,п и Tv.
Вычислите матрицу преобразования Tw v, выполняющую переход от мировых
координат к наблюдательским при условии, что координаты точки зрения и
точки наблюдения равны (4, 5, 6) и (0, 0, 0) соответственно (в мировой систе-
ме). Ось z мировой системы координат совпадает с вектором вертикали.
Представьте треугольную грань выпуклого объекта, вершины которой имеют
координаты А(0, 0, 0), В(1, 1, 0) и С(0, 1, 2). Определите, видима ли эта грань
из точки зрения V(0, 1, 5), используя алгоритм удаления невидимых граней.
Предположите, что точка D(2, 2, 2) является одной из вершин данного объекта.
Точки А и В двумерного объекта перемещаются в точки С и D, что приводит
к преобразованию исходной формы. Перечислите все матрицы преобразова-
ния, которые должны быть применены ко всем точкам тела, в правильном по-
рядке. Координаты точек имеют следующие значения: А(2, 2), В(5, 5), С(5, 2),
D(7, 2 + 73).
Плоскость, перпендикулярная плоскости xz, расположена так, как показано
на приведенном ниже рисунке.
18.
Зеркальное отражение Р точки Р относительно этой плоскости может быть
вычислено по приведенной ниже формуле. Выразить Г через матрицы
элементарных преобразований, к которым относятся Trans(a,b,c), Rot(x,a),
Rot(z,y), а также матрицы отражения относительно плоскостей ху,
У г и xz.
[X* У Z* 1] = [X У Z 1].
Вопросы и задачи
19. Объясните отличия методов затушевывания Фонга и Гуро.
20 Используя любую доступную графическую библиотеку, напишите графиче-
скую программу, которая будет выполнять следующие действия.
1) Отобразите систему координат и куб в ее центре. Положение точек зрения
и наблюдения, направление вектора вертикали и размер куба задайте са-
мостоятельно.
2) Куб транслируется на +5 единиц в направлении у при нажатии левой
кнопки мыши и на +5 единиц в направлении z при нажатии правой кнопки
мыши. При нажатии средней кнопки куб возвращается в исходное поло-
жение (в центре системы координат).
21. Напишите двумерный графический редактор, работающий с приведенным ниже
всплывающим меню.
MAIN MENU
: -
Create > — -• Rectangle
Delete ►' i
Г' ' '
!-e Rectangle
Circle
AjU
22. Напишите графическую программу, которая будет рисовать траекторию точ-
ки D (средней точки шатуна ВС) при вращении кривошипно-шатунного ме-
ханизма под воздействием ведущего шатуна АВ (см. приведенный ниже
рисунок). По построенной траектории определите угол ведущего шатуна G,
при котором касательная к траектории становится горизонтальной.
Опишите преимущества, которые дает написание графического интерфейса при-
ложения в системе X window.
Глава 4
Системы автоматизированной
разработки чертежей
Как говорилось в предыдущих главах, система автоматизированной разработки
чертежей (computer-aided drafting system) — это программный продукт, позво-
ляющий разработчику в интерактивном режиме создавать и изменять машино-
строительные, архитектурные, инженерные чертежи, электрические схемы и чер-
тежи множества других разновидностей. Эта программа, кроме того, обновляет
базу данных, сохраняя готовые чертежи и их изменения. Таким образом, работа
с системой автоматизированной разработки чертежей аналогична использованию
текстового процессора. Единственное отличие в том, что на выходе пользователь
получает чертеж, а не текстовый документ. Как в текстовом процессоре можно
очень быстро подготовить новый документ на базе существующего, так и в сис-
теме автоматизированной разработки чертежей можно получить новый чертеж,
изменив имеющиеся. Преимущества текстового процессора или автоматизиро-
ванной системы разработки чертежей трудно оценить при подготовке абсолютно
нового документа или чертежа. Но при изменении существующих документов
и чертежей их преимущества становятся очевидными и неоценимыми.
В последующих разделах будут кратко рассмотрены наиболее типичные функ-
ции, имеющиеся в большинстве систем автоматизированной разработки черте-
жей. Конкретные команды вызова функции в каждой системе могут быть свои,
так что при необходимости вам следует обратиться к руководству пользователя
соответствующей системы.
4.1. Настройка параметров чертежа
Работу с системой автоматизированной разработки чертежей следует начинать
с установки параметров, таких как единицы измерения, размеры чертежа, пара-
метры сетки и слоев. Для быстрого и точного построения чертежей необходимо,
чтобы все эти параметры имели правильные значения. Чертеж можно построить
без сетки и без слоев, но на зто уйдет много времени, а изменить получившийся
чертеж будет очень сложно.
4.1.1, Единицы измерения
Пользователь должен выбрать формат и точность единиц измерения расстояний
и углов. Единицы измерения расстояний могут быть представлены в научном,
Десятичном, дробном, инженерном и архитектурном форматах. Единицы изме-
рения углов — это градусы, градусы/минуты/секунды, грады, радианы и гео-
дезические единицы. На рис. 4.1 показано диалоговое окно выбора единиц про-
граммы AutoCAD1 Releasel4 — одной из наиболее популярных систем автомати-
зированной разработки чертежей.
4.1.2. Размеры чертежа
Рисуя чертеж на бумаге, вы не можете выйти за границы листа. Точно так же
и при работе с графическим устройством чертеж должен иметь определенные
границы, поскольку этот чертеж когда-нибудь все равно будет напечатан на бума-
ге конечного размера. Значит, пользователь должен заранее установить размеры
чертежа. Выполняющая эту операцию последовательность команд для AutoCAD
приведена ниже.
Command: limits
Reset Model Space Limits
ON/OFF/<Lower left corner><0.00.0.00>:10.10
Upper right corner<12.00.9.00>:300.200
Рис. 4.1. Диалоговое окно установки единиц измерения в AutoCAD Release14
При выборе размеров чертежа обычно учитывают следующие факторы [151]:
□ фактический размер чертежа;
□ пространство для нанесения размеров, примечаний, списков материалов и
других необходимых данных;
□ расстояние между разными видами (чертеж не должен выглядеть загромож-
денным);
□ пространство для рамки и заголовка, если таковые предусмотрены.
Перед тем как задавать размеры чертежа, рекомендуется построить его эскиз,
чтобы грубо оценить необходимое пространство. Например, если размеры вида
спереди для какого-то объекта равны 6x5 единиц, размеры вида сбоку — 4x5 еди-
ниц и размеры вида сверху — 6x4 единиц, ограничения должны быть установле-
ны таким образом, чтобы вместить весь чертеж и все относящиеся к нему дан-
ные. Предположим, вы хотите, чтобы расстояние между видами спереди и сбоку
составляло 4 единицы, а расстояние между видами спереди и сверху — 3 едини-
1 AutoCAD — название системы автоматизированной разработки чертежей, созданной
корпорацией Autodesk.
цы. Расстояние до границ чертежа пусть составляет 4 единицы слева, 4 справа,
2 сверху и 2 снизу (рис. 4.2). Указанные значения выбираются таким образом,
чтобы готовый чертеж выглядел гармонично.
Установив для себя размеры видов и расстояния между ними, а также расстоя-
ния до границ чертежа и от границ до краев бумаги, вы можете вычислить разме-
ры чертежа следующим образом:
□ размер по горизонтали =1+4 + 6 + 4 + 4+ 4+1= 24;
□ размер по вертикали = 1 + 2 + 5 + 3 + 4 + 2+1 = 18.
Итак, размеры чертежа составляют 24x18 единиц. Обратите внимание, что мы
положили расстояние между границами чертежа и границами бумаги равным
одной единице.
левый угол
Рис. 4.2. Задание размеров чертежа
Чертеж на рис. 4.2 сделан в масштабе 1:1. Однако если вы хотите распечатать
чертеж, чтобы получить твердую копию, вам придется увеличить или уменьшить
его в зависимости от размеров листа. Вообще говоря, размер листа определяет
границы чертежа, размер шрифта, масштаб чертежа, масштаб толщины линии
и другие параметры чертежа. Стандартные размеры листов и соответствующие
границы чертежей разных масштабов (в дюймах и миллиметрах) приведены
в табл. 4.1 и табл. 4.2.
Таблица 4.1. Британская система единиц
Размер бумаги Размер листа Границы чертежа (М1:1) Границы чертежа (М1:4) Границы чертежа (М4:1)
А 12x9 12,9 48,36 3, 2,25
В 18x12 18, 12 72, 48 4,5,3
Размер бумаги Размер листа Границы чертежа (М1:1) Границы чертежа (М1:4) Границы чертежа (М4:1)
С 24x18 24, 18 96, 72 6,4,5
D 36x24 36, 24 144, 96 9,6
Е 48x36 48, 36 192, 144 12,9
Таблица 4.2. Метрическая система единиц
Размер бумаги Размер листа Границы чертежа (М1:1) Границы чертежа (М1:5) Границы чертежа (М5:1)
А4 210x297 210, 297 1050, 1485 42, 59,4
АЗ 297x420 297, 420 1485, 2100 59,4, 84
А2 420x594 420, 594 2100, 2970 84, 118,8
А1 594x841 594, 841 2970, 4205 118,8, 168,2
АО 841x1189 841, 1189 4205, 5945 168,2, 237,8
4.1.3. Слой
Разбивать чертеж на множество слоев очень удобно, особенно если чертеж дос-
таточно сложный. Распределив поэтажный план здания и схему трубопроводов
по отдельным слоям, вы значительно упростите себе задачу. Другими словами,
выполнять все операции с отдельным слоем значительно проще, чем с боль-
шим чертежом, содержащим все объекты. Однако вам нужно иметь возможность
переключаться между режимами просмотра, чтобы получить представление об
относительном расположении элементов из разных слоев (например, труб и стен
здания). Разделение на слои сохраняет возможность накладывать их друг на
друга, не усложняя при этом чертеж по крайней мере в том, что касается выпол-
няемых графических операций. Слой, с которым вы работаете в данный момент,
считается активным, тогда как все остальные слои считаются неактивными. Как
и любой другой фон, графические элементы неактивных слоев нечувствительны
к графическим операциям, таким как выбор или удаление. Поэтому сложность
чертежа остается той же самой, как если бы вы работали с одним-единственным
активным слоем.
Функция разделения на слои может эффективно использоваться при построе-
нии чертежей отдельных слоев многослойных печатных плат. В этом случае ка-
ждый слой может строиться независимо от остальных, однако остается возмож-
ность вывести на экран связанные каким-либо образом слои для получения
сведений об их относительном положении. Разделение на слои удобно и для по-
строения чертежей отдельных деталей конструкции. Если рисовать каждую де-
таль в отдельном слое сборочного чертежа, чертеж любой детали легко будет по-
лучить, сделав активным нужный слой. На рис. 4.3 показано диалоговое окно
управления слоями в AutoCAD Releasel4.
Рис. 4.3. Диалоговое окно управления слоями в AutoCAD Release 14
4.1.4. Сетка и привязка
В черчении на бумаге широко используются вспомогательные линии, которые
строятся заранее при помощи рейсшины. Они облегчают построение линий чер-
тежа и делают их более точными. Линии сетки в системах автоматизированной
разработки чертежей имеют то же назначение, что и линии построения в чер-
чении. Горизонтальные и вертикальные линии сетки рисуются на равных рас-
стояниях друг от друга в соответствии с заданным разрешением, а линии черте-
жа строятся поверх них. В некоторых системах автоматизированной разработки
чертежей строятся только точки на перекрестьях линий сетки.
Чтобы провести прямую линию поверх линии сетки, нужно задать положение
двух ее концов. Их координаты можно ввести с клавиатуры или указать мышью,
установив курсор в нужное положение и нажав кнопку. Вспомните (см. главу 3),
что курсор отслеживает движение мыши, когда она находится в режиме локато-
ра. Положение точки, указанное вторым методом, может быть не совсем точным
из-за дрожания человеческой руки или неточности механизма мыши. Чтобы
справиться с этой проблемой, можно включить привязку курсора к ближайшему
пересечению линий сетки. При нажатии кнопки мыши компьютер будет воспри-
нимать точные координаты этого пересечения. Точность задания координат бу-
дет определяться разрешением сетки, которое пользователь может настраивать
по своему желанию. Эта функция называется привязкой (snapping). Команда
включения сетки в программе AutoCAD выглядит следующим образом.
Command: grid
Grid spaclng(X) or ON/OFF/Snap/Aspect<0>:0.75 /* расстояние между линиями сетки
устанавливается равным 0.75 экранной единицы */
4.2. Базовые функции черчения
4.2.1. Прямая линия
В системах автоматизированной разработки чертежей существует множество
способов построения отрезков. Наиболее популярным из них является построе-
ние по двум конечным точкам. Положение точек может быть задано различными
способами. В предыдущем разделе мы предложили два метода: ввод координат
с клавиатуры и нажатие кнопки мыши в режиме локатора. Помимо этого вы мо-
жете указать конечную точку отрезка, выбрав одну из уже имеющихся на экране
точек.
Отрезок можно построить и без явного указания обоих концов. Один из спосо-
бов — попросить систему провести касательную линию к имеющейся кривой из
указанной точки. В этом случае явно указывается только одна точка, а вторую
точку система определяет самостоятельно. В качестве атрибутов линии могут
быть указаны ее тип и толщина. Типы линий, поддерживаемые большинством
систем автоматизированной разработки чертежей, показаны на рис. 4.4. Построе-
ние отрезка в AutoCAD Releasel4 осуществляется следующим образом:
Command: line
From point; 1. 1
To point: 5. 2
To point: return
Рис. 4.4. Различные типы линий
4.2.2. Окружность и дуга окружности
Простейший метод задания окружности — указание ее центра и длины радиуса.
Другой способ — задание трех точек на самой окружности. Большинство систем
автоматизированной разработки чертежей позволяют создавать окружности и
другими методами. Например, система может построить окружность, касатель-
ную к двум прямым или к другой окружности и прямой. В любом случае вам
нужно выбрать соответствующие объекты. Дуга окружности — это частный слу-
чай окружности, она определяется заданием точек начала и конца (помимо пара-
метров, задаваемых для обычной окружности). В AutoCAD Releasel4 окруж-
ность строится следующим образом:
Command: circle
3P/2P/TTR/<Center point>: 5. 5
Diameter/<Radius><current>: 3
Дуга окружности строится так, как показано ниже. В нашем примере дуга прохо-
дит через три заданные точки.
Command: arc
Center/<Start point>: 7. 4
Center/End/<Second point>: 6. 5
End point: 6. 3
4.2.3. Сплайн
Сплайны используются для построения произвольных кривых подобно тому, как в
черчении от руки это делается с помощью лекала. Пользователь указывает точки на
кривой, а система строит интерполяционную кривую, проходящую через эти точки.
Получившаяся кривая обычно представляется уравнением третьего порядка. Ино-
гда кривые могут строиться по задающим точкам, которые определяют кривую, но
не обязаны лежать на ней. О задающих точках будет рассказано в главе 6.
4.2.4. Удаление
Функция удаления действует как старательная резинка в черчении на бумаге.
Когда вы выбираете графические элементы, такие как точки, отрезки и кривые,
они исчезают с экрана. Режим выбора был описан нами в главе 3.
4.2.5. Скругление и снятие фасок
Скругление и закругление (filleting, rounding) состоят в построении дуги окружно-
сти между двумя пересекающимися отрезками (рис. 4.5, а) таким образом, что
построенная дуга оказывается касательной к обоим отрезкам (рис. 4.5, б). Скруг-
ление используется для вогнутых углов, а закругление — для выпуклых. Снятие
фасок (chamfering) — примерно то же, что и скругление, но вместо дуги строится
отрезок прямой (рис. 4.5, в). Скругление и снятие фасок осуществляются в сле-
дующем порядке.
1. Указывается радиус скругления или размер фаски.
2. Выбираются два пересекающихся отрезка. Скругление или фаска будут по-
строены около точки пересечения.
3. Ненужные части исходных отрезков удаляются после построения скругления
или фаски. В некоторых системах удаление производится автоматически, а в
других это приходится делать вручную.
Исходная форма После филетирования После снятия
(скругления) фасок
age
Рис. 4.5. Скругление и снятие фасок
В AutoCAD скругление можно выполнить следующим образом:
Command: fillet
(TRIM mode) Current fillet radius = 10.00
Polyl1ne/Rad1us/Trim/<Select first object>: r
Enter fillet radius<current>: 3
(TRIM mode) Current fillet radius • 3.00
Command: fillet
Polyline/Radius/Trim/<Select first object>: /* Выбирается первый отрезок. */
Select second line: /* Выбирается второй отрезок. */
4.2.6. Штриховка
Штриховкой называется заполнение замкнутого многоугольника каким-либо
шаблоном. Штриховка часто используется для обозначения сечений в машино-
строительных чертежах и выделения разных материалов в архитектурных черте-
жах. Некоторые наиболее типичные шаблоны, предоставляемые большинством
систем автоматизированной разработки чертежей, показаны на рис. 4.6.
Рис. 4.6. Образцы штриховки
Штриховка начинается с указания замкнутого многоугольника. Эта операция
может осуществляться по-разному. В некоторых системах вам придется указать
все отрезки, составляющие многоугольник. В других системах достаточно ука-
зать один из них, а все остальные система найдет автоматически. Если внутри
многоугольника имеются участки, которые штриховать нежелательно, их грани-
цы также должны быть указаны. Штриховка — одна из функций систем автома-
тизированной разработки чертежей, повышающих производительность чертеж-
ника. Чертеж с заштрихованными элементами сечений показан на рис. 4.7.
4.3. Функции аннотирования
4.3.1. Простановка размеров
Возможность простановки размеров считается одной из наиболее привлекатель-
ных особенностей систем автоматизированной разработки чертежей. Вручную
проставить размеры с той же быстротой просто невозможно. В системах автома-
тизированной разработки чертежей простановка размеров осуществляется сле-
дующим образом. Чтобы указать горизонтальный или вертикальный размер,
достаточно всего лишь выбрать два графических элемента (обычно точки) и же-
лаемое положение размерной линии. В этом случае расстояние между точками
автоматически определяется по чертежу. Стрелки, размерные линии, выносные
линии и значение размера наносятся системой самостоятельно. Система автома-
тически измеряет расстояние по вертикали, если графические элементы распо-
ложены на вертикальной линии, или расстояние по горизонтали, если они нахо-
дятся на горизонтальной линии. Если объекты расположены как-то иначе,
система просит уточнить, какой именно размер вы хотите проставить: верти-
кальный, горизонтальный или реальный.
Размеры радиусов и диаметров проставляются путем выбора окружности или
дуги и последующего указания положения размерной линии. Угловые размеры
гласа -п аъ гимси jpiputr rwio разраосггк чертеже-
проставляются аналогичным образом: нужно выбрать два отрезка и указать по-
ложение размерного текста. Какой именно угол будет измерен (внешний или
внутренний), зависит от порядка выбора отрезков. В каждой системе использу-
ется свое собственное соглашение о порядке выбора, поэтому вам будет лучше
обратиться к руководству пользователя. Чертеж с проставленными размерами
показан на рис. 4.7.
Рис. 4.7. Чертеж с размерами, штриховкой и примечанием
4.4. Вспомогательные функции
У вас может возникнуть вопрос: зачем проставлять размеры в интерактивном
режиме, если чертеж уже содержит все сведения о размерах и положении объ-
ектов? Теоретически можно было бы полностью автоматизировать простановку
размеров на чертежах, но на практике разработчики сталкиваются со следующи-
ми проблемами. Существует много способов проставить размеры на одном и том
же чертеже. Вообще говоря, проектировщик учитывает методы производства,
контроля и сборки детали, изображенной на чертеже, и на основании главным
образом своего опыта выбирает оптимальную схему образмеривания. Воспроиз-
вести опыт проектировщика на компьютере очень сложно. Более того, найти хотя
бы одну полную и безызбыточную схему расстановки размеров не так-то просто.
В настоящий момент ведутся исследования возможности решения этой задачи.
4.3.2. Примечания
Чтобы добавить к чертежу примечание, то есть текстовую строку, нужно задать
расположение и ориентацию этой строки, а также размер и шрифт символов. По-
следние три параметра обычно имеют некоторые значения по умолчанию, кото-
рые используются в том случае, если пользователь не указывает никаких кон-
кретных значений. Пример примечания приведен на рис. 4.7. Добавление приме-
чания в системе AutoCAD Release 14 осуществляется при помощи команды МТЕХТ.
Command: text
Justify/Sty1e/<start po1nt>: 2. 1
Height<0.20>: 0.25
Rotation angle<0>:
Text: MTEXT
4.4. Вспомогательные функции
4.4.1. Копирование
Функция копирования работает точно так же, как операции «Вырезать» и «Вста-
вить» в текстовом процессоре. Набор графических элементов может быть выде-
лен, сохранен в буфере и вставлен в любое место того же или любого другого
чертежа. Выбор графических элементов производится путем обведения их пря-
моугольником нужного размера. Прямоугольник рисуется на экране точно так
же, как и при задании окна просмотра. Графические элементы, пересекаемые
границами прямоугольника, могут по желанию пользователя быть включены в
копируемый набор или исключены из него. Курсор устанавливается в той точке,
куда должны быть вставлены выбранные объекты. Функция копирования удоб-
на в том случае, если на чертеже есть повторяющиеся элементы, как, например,
на архитектурных чертежах многоквартирных домов. Копирование полезно и
при разработке чертежей деталей, потому что вы можете скопировать часть чер-
тежа устройства в целом, после чего уточнить получившийся чертеж.
Частным случаем копирования является зеркальное отражение, которое позво-
ляет строить формы, обладающие осевой симметрией. Эта функция полезна прг
построении объектов с одной или несколькими осями симметрии. Многие систе
мы автоматизированной разработки чертежей предоставляют дополнительны*
Функции, располагающие повторяющиеся объекты упорядоченно. Например, не
106
Глава 4. Системы автоматизированной разработки чертежей
которые системы могут нарисовать несколько головок болтов, расположен-
ных по окружности с определенным шагом, после того как вы нарисуете только
одну из них и зададите нужные параметры. Функция копирования вызывается
в AutoCAD Releasel4 следующим образом.
Command: сору
Select objects: /* Выбирается набор графических элементов. */
<Base point or displacement>/Multiple /* Указывается первая точка. */
Second point of displacement: /* Указывается вторая точка вектора смещения. */
4.4.2. Окно
Иногда при работе со сложным чертежом может потребоваться увеличить его
часть. Часто бывает затруднительно выбрать нужный графический элемент, если
он сливается с соседними. Эту проблему можно решить, увеличив ту часть чер-
тежа, в которой находится интересующий вас элемент. Использование меньшего
окна с отображением в окно просмотра того же размера дает эффект увеличения
без изменения числовых параметров графических элементов. Окно определяется
заданием двух конечных точек его диагонали аналогично тому, как определяется
копируемая область (см. предыдущий раздел). В AutoCAD Release 14 окно изме-
няется приведенной ниже командой.
Command: zoom
All/Center/Dynamic/Extents/Left/Previous/Vmax/Window/<Scale(X/Xp)>: w
First corner: /* Указывается первая точка диагонали. */
Second corner: /* Указывается вторая точка диагонали. */
Рис. 4.8. Типичные символы, используемые на чертежах: а — электрических схем;
б — архитектурных; в — машиностроительных
4.4.3. Символы
Часто используемые фигуры могут сохраняться в виде символов, а затем вызы-
ваться из памяти в любой момент для добавления в нужное место чертежа. На-
пример, значительно упрощается создание машиностроительных чертежей, если
4.4. Вспомогательные функции
107
формы стандартных компонентов, таких как болты и гайки, а также обозначения
шероховатости и допусков поверхности сохраняются в виде символов, которые
могут быть в любой момент вызваны и построены. Функции для работы с симво-
лами действуют подобно функции копирования и реализуются приблизительно
тем же образом. В AutoCAD Release 14 нарисовать символ можно так:
Command: block
Block name (or ?): /* Имя сохраненного символа */
Типичные символы, часто используемые в электрических схемах, а также в ар-
хитектурных и машиностроительных чертежах, показаны на рис. 4.8.
4.4.4. Макропрограммирование
Программирование макросов или макропрограммирование заключается в объе-
динении наборов графических команд под одним именем. Если графические ко-
манды объединяются в программу, которая называется микропрограммой (macro
program), к ним могут добавляться некоторые условные и арифметические опе-
раторы из обычных компьютерных языков. Входные параметры графических
команд могут быть определены как переменные, что позволяет задавать макро-
программе разные значения и получать разные чертежи. Макропрограмма тако-
го рода называется параметрической программой (parametric program), поскольку
чертеж, который она строит, зависит от значений, присвоенных соответствую-
щим параметрам. Хорошим примером параметрической программы может быть
автоматическая программа построения чертежей винтов. Пользователь вводит
характеристики нагрузки, программа рассчитывает размеры винтов по этим ха-
рактеристикам, а затем строит их чертежи с учетом вычисленных размеров. В та-
кую параметрическую программу входят арифметические операторы, позволяю-
щие вычислить размеры винтов, а также графические команды, строящие чертеж
винта. Функция макропрограммирования очень важна, поскольку она позволяет
приспосабливать коммерческие системы автоматизированной разработки черте-
жей под конкретные приложения. Многообразие параметрических программ,
разработанных компанией, фактически может быть мерой эффективности ис-
пользования этой компанией имеющейся у нее системы автоматизированной
разработки чертежей.
4.4.5. Измерения
Функция измерения позволяет выполнять вычисления по готовому или строя-
щемуся чертежу. Система позволяет определить площадь любой области, угол
между двумя отрезками, минимальное расстояние между графическими элемен-
тами и другие параметры. Эта функция может быть очень полезна, если построе-
ние чертежа и проектирование осуществляются в системе автоматизированной
разработки чертежей одновременно. Например, проектировщик может прове-
рить, соответствует ли получившаяся конструкция требованиям к площади теп-
лопередачи или к минимальному пространству для обслуживания. В AutoCAD
Release 14 измерение осуществляется следующим образом.
Command, di st
First point: /* Выбирается первая точка. */
Second point: /* Выбирается вторая точка. */
Вопросы и задачи
108 Глава 4. Системы автоматизированной разработки чертежей
109
Distance = «Рассчитанное расстояние5.
Angle in XY plane = «Угол в плоскости XY>
Angle from XY plane - «Угол к плоскости XY>
Delta X - «Разность no X>. Delta Y = «Разность no Y>. Delta Z = «Разность no Z>
4.4.6. Дополнительные функции
Помимо функций, описанных в предыдущих разделах, имеются вспомогатель-
ные функции, позволяющие обновлять чертежи в базе данных, получать черте-
жи из базы данных и составлять списки материалов.
4.5. Совместимость файлов чертежей
Ранее мы показали, что настоящим преимуществом системы автоматизированной
разработки чертежей является возможность сохранения файла чертежа в базе
данных, откуда его смогут получить сотрудники разных отделов. Этим достоин-
ством легко воспользоваться на практике, если все сотрудники работают в одной
системе автоматизированной разработки чертежей и не испытывают проблем
с чтением файлов, сделанных другими сотрудниками. Однако преимущество
легко утратить, если разные отделы в одной и той же компании работают с раз-
ными системами, не способными читать файлы друг друга. Проблема становится
еще более серьезной, если речь идет о системах разных производителей. В этом
случае единственным реальным методом взаимодействия будет построение чер-
тежей на бумаге и механическое их воспроизведение подобно тому, как это дела-
лось в прошлом.
Чтобы избежать этой проблемы, можно потребовать от всех производителей сис-
тем автоматизированной разработки чертежей сохранения файлов в стандарт-
ном формате. Наиболее популярным стандартным форматом в настоящий мо-
мент является Initial Graphics Exchange Specification (IGES), принятый
Американским Национальным институтом стандартов (American National
Standards Institute — ANSI) под номером Y 14.26M. Практически все коммерче-
ские системы автоматизированной разработки чертежей поддерживают формат
IGES. Следовательно, файлы, созданные в одной системе, могут быть перенесе-
ны в другую систему. Однако для некоторых символов проблема корректного
переноса еще не решена. Кроме IGES, существует еще формат DXF — формат
чертежей AutoCAD, который становится стандартом де факто благодаря попу-
лярности AutoCAD.
Вопросы и задачи
1 Скопируйте приведенные ниже чертежи при помощи любой доступной вам
системы автоматизированной разработки чертежей. Размеры указаны в мил-
лиметрах. Вам их проставлять не нужно
110
Глава 4. Системы автоматизированной разработки чертежей
2. Постройте вид сверху, спереди и справа для следующих объектов. Размеры
указаны в дюймах, а в скобках даны те же размеры в миллиметрах. Вам их
проставлять не нужно. {Источник: J. Luckow, The Technical Drawing Workbook,
Addison-Wesley Publishing Company, 1994.)
s
Вопросы и задачи
11
3. Скопируйте приведенные ниже чертежи вместе с размерами. Размеры указаны
в миллиметрах.
4. Создайте приведенные на рисунках чертежи, проставьте размеры. Размеры
указаны в миллиметрах.
1) Замените вид справа разрезом по вертикальной средней линии вида спереди.
112
Глава 4. Системы автоматизированной разработки чертежей
2) Представьте вид спереди в виде частичного сечения и покажите соответст-
вующую секущую плоскость на виде сверху. Добавьте все необходимые
примечания.
100
3) Создайте дополнительный вид скошенной поверхности.
Вопросы и задачи
11J
5. Скопируйте приведенный ниже чертеж вместе с размерами и допусками. Раз-
меры указаны в миллиметрах.
6. Подготовьте сборочный чертеж и список деталей в соответствии с приведен-
ными сведениями. Создайте чертежи деталей 1 и 2. Соедините деталь 2 с де-
талью 1, используя два длинных болта с шестигранными головками М5,ОС-
13 UNC25. На каждый болт наденьте гайку 5,00-13 UNC. Под головками бол-
тов, между деталями 1 и 2, а также между деталью 1 и гайками разместите
шайбы 6,2512,51,25. На каждом болте будет три шайбы и гайка. {Источник.
S. Lockhart, A Tutorial Guide to AutoCAD, Release 12, Addison-Wesley Publishing
Company, 1994.)
Деталь 1
114
Глава 4. Системы автоматизированной разработки чертежей
7. Спроектируйте маятник для часов, который будет удовлетворять приведен-
ным требованиям.
У
1) Маятник должен быть вписан в прямоугольник размером 108 см.
2) Маятник должен быть симметричен относительно оси х.
3) Верхняя часть маятника ограничена кривой, состоящей из дуги окружно-
сти с центром в точке В, отрезка и второй дуги радиусом 2 см. Отрезок ме-
жду двумя дугами должен быть касательным к ним.
4) Стержень маятника присоединяется к нему в точке С, которая является
центром тяжести. Расстояние между точками С и О должно составлять
6,67 см.
5) Площадь маятника должна лежать в диапазоне 36-44 см2, чтобы он удов-
летворял ограничению на вес.
Определите положение точки В и радиус дуги, центром которой является эта
точка, испытывая различные варианты чертежей до тех пор, пока не будут удов-
летворены все требования. Проверить множество чертежей с различными пара-
метрами достаточно просто: для этого нужно воспользоваться функцией макро-
программирования и написать параметрическую программу.
Глава 5
Системы геометрического
моделирования
Процесс проектирования может рассматриваться как постепенная детализация
формы по мере развития идей разработчика. Программное обеспечение автома-
тизированного проектирования — это просто одно из средств, облегчающих этот
процесс. Как отмечалось в разделе 2.3, типичные программы CAD могут быть
разделены на две группы. Системы автоматизированной разработки чертежей
помогают проектировщику реализовать свои идеи в двумерном пространстве
(глава 4). Системы геометрического моделирования позволяют работать с фор-
мами в трехмерном пространстве.
Рассмотрим пример, иллюстрирующий использование системы геометрического
моделирования в процессе разработки. Представьте себе ребенка, который лепит
что-то из пластилина. Малыш мнет пластилин, а иногда добавляет и отрезает ку-
сочки, и постепенно приближается к конечному результату. Такую деятельность
вполне можно назвать процессом проектирования, поскольку налицо детализа-
ция формы по мере развития идеи. Ребенок погружается в проектирование, не
имея ни малейшего представления о технических чертежах, не умея пользовать-
ся даже ручкой и бумагой. Если ребенок захочет передать результат другим, на-
пример для прототипирования и массового производства, ему достаточно отдать
реальный результат своих трудов, из которого можно будет извлечь всю необхо-
димую информацию. Такой естественный подход к разработке вызывает опреде-
ленные вопросы. Действительно ли технические чертежи являются неотъемле-
мой частью процесса проектирования? Нормально ли пользоваться системами
автоматизированной разработки чертежей? Оправдать использование чертежей
можно, сказав, что проектирование с использованием материалов, подобных
пластилину, не позволяет получить сложные формы с точными размерами. Бо-
лее того, в большинстве случаев очень сложно извлечь из реальных моделей не-
обходимые сведения для точного их воспроизведения.
Системы геометрического моделирования были созданы для того, чтобы преодо-
леть проблемы, связанные с использованием физических моделей в процессе
проектирования. Эти системы создают среду, подобную той, в которой создают-
ся и изменяются физические модели. Другими словами, в системе геометриче-
ского моделирования разработчик изменяет форму модели, добавляет и удаляет
ее части, детализируя форму визуальной модели таким же образом, как ребенок
формирует фигурку из пластилина. Визуальная модель может выглядеть точно
так же, как физическая, но она нематериальна. Однако трехмерная визуальная
модель хранится в компьютере вместе со своим математическим описанием, благо-
116
Глава 5. Системы геометрического моделирования
даря чему устраняется главный недостаток физической модели — необходимость
выполнения измерений для последующего прототипирования или серийного
производства. Системы геометрического моделирования делятся на каркасные,
поверхностные, твердотельные и немногообразные (перечислены в порядке эво-
люционирования). В последующих разделах мы последовательно рассмотрим
все эти категории.
5.1. Системы каркасного моделирования
В системах каркасного моделирования (wireframe modeling systems') форма пред-
ставляется в виде набора характеризующих ее линий и конечных точек. Линии и
точки используются для представления трехмерных объектов на экране, а изме-
нение формы осуществляется путем изменения положения и размеров отрезков
и точек. Другими словами, визуальная модель представляет собой каркасный
чертеж формы, а соответствующее математическое описание представляет собой
набор уравнений кривых, координат точек и сведений о связности кривых и то-
чек. Сведения о связности описывают принадлежность точек к конкретным кри-
вым, а также пересечение кривых друг с другом. Системы каркасного моделиро-
вания были популярны в ту пору, когда геометрическое моделирование только
начало зарождаться. Их популярность объяснялась тем, что в системах каркас-
ного моделирования создание форм выполнялось через последовательность про-
стых действий, так что пользователям было достаточно легко создавать формы
самостоятельно. Однако визуальная модель, состоящая из одних лишь линий,
может быть неоднозначной (рис. 5.1). Более того, соответствующее математиче-
ское описание не содержит сведений о внутренних и внешних поверхностях мо-
делируемого объекта. Без этих сведений невозможно рассчитать массу объекта,
определить траектории перемещения инструмета при обработке объекта или
создать сетку для конечноэлементного анализа, несмотря на то что объект ка-
жется трехмерным. Поскольку эти операции являются неотъемлемой частью
процесса проектирования, системы каркасного моделирования были постепенно
вытеснены системами поверхностного и твердотельного моделирования.
Рис. 5.1. Неоднозначные каркасные модели
5.2. Системы поверхностного моделирования
11/
5.2. Системы поверхностного
моделирования
В системах поверхностного моделирования {surface modeling systems) математиче-
ское описание визуальной модели включает в себя не только сведения о характе-
ристических линиях и их конечных точках, как в каркасном моделировании,
но и данные о поверхностях. При работе с отображаемой на экране моделью
изменяются уравнения поверхностей, уравнения кривых и координаты конеч-
ных точек. Если поверхности не окрашены и не затушеваны, визуальная модель
в системе поверхностного моделирования может выглядеть точно так же, как
в системе каркасного моделирования.
Математическое описание может включать сведения о связности поверхностей,
то есть о том, как поверхности соединяются друг с другом и по каким кривым.
В некоторых приложениях эти сведения оказываются очень полезными. Напри-
мер, программа для формирования траектории перемещения фрезы с ЧПУ мо-
жет воспользоваться этой информацией для проверки, не задевает ли фреза
поверхности, примыкающие к обрабатываемой. Однако в математическое описа-
ние моделей, создававшихся в системах поверхностного моделирования, обычно
включались только уравнения бесконечных поверхностей (или их параметры)
без сведений о связности.
Примерами атрибутов, определяющих поверхность, являются положение и на-
правление центральной оси и радиус цилиндра. Из-за отсутствия сведений о
связности приложению типа программы для формирования траекторий переме-
щения приходилось определять границы поверхностей и проверять их связность
самостоятельно. В современных системах поверхностного моделирования такие
неудобства исключаются благодаря включению сведений о связности поверхно-
стей.
Существует три стандартных метода создания поверхностей в системах поверх-
ностного моделирования.
1. Интерполяция входных точек.
2. Интерполяция криволинейных сеток.
3. Трансляция или вращение заданной кривой.
Способы ввода для каждого метода могут зависеть от конкретной системы по-
верхностного моделирования. Однако базовый метод ввода для каждой системы
легко определить по представлению кривых и плоскостей (главы 6, 7).
Системы поверхностного моделирования используются для создания моделей со
сложными поверхностями, потому что визуальная модель позволяет оценить эс-
тетичность проекта, а математическое описание позволяет построить программу
для обработки поверхностей детали на станке с ЧПУ. Процесс эволюциониро-
вания модели корпуса автомобиля, которая строится в системе поверхностного
моделирования, иллюстрирует рис. 5.2. Расчет и проверку траектории движения
фрезы с ЧПУ для объекта, созданного в системе поверхностного моделирования,
демонстрирует рис. 5.3.
Глава 5. Системы геометрического моделирования
Рис. 5.2. Моделирование корпуса автомобиля
Рис. 5.3. Расчет и проверка траектории станка с ЧПУ (благодаря любезности
OPEN MIND Software Tchnologies GmbH., программа HyperMILL)
5.3. Системы твердотельного моделирования
Системы твердотельного моделирования (solid modeling systems') предназначены
для работы с объектами, состоящими из замкнутого объема, или монолита (solid).
В системах твердотельного моделирования, в отличие от систем каркасного и
поверхностного моделирования, не допускается создание наборов поверхностей
или характеристических линий, если они не образуют замкнутого объема. Мате-
^гическое описание объекта, созданного в системе твердотельного моделирова-
содержит сведения, по которым система может определить, где находится
^Чвбо точка: внутри объема, снаружи него или на его границе. По этим све-
чскно получить любую информацию об объеме тела, а значит, могут
>вы приложения, работающие с объектом на уровне объема, а не на
5.3. Системы твердотельного моделирования
Например, можно написать приложение, формирующее сетку конечных элемен-
тов объемного типа по твердотельной модели. Можно написать программу для
формирования всех траекторий фрезы с ЧПУ, необходимых для изготовления
детали из заготовки. Эта программа будет работать не с отдельными плоскостя-
ми, а с объемом в целом, что исключит потребность во вводе данных для каждой
плоскости. Все эти возможности реализуются в том случае, если модель создает-
ся в виде замкнутого объема. Однако создание модели в виде замкнутого объема
требует большего количества входных данных по сравнению с количеством дан-
ных, дающих математическое описание. Это одна из причин, по которым были
разработаны системы моделирования немногообразных объектов. Такие систе-
мы моделирования позволяют работать с поверхностями и замкнутыми объема-
ми одновременно. Речь о них пойдет в разделе 5.4.
Если бы система твердотельного моделирования требовала ввода всех данных
для полного математического описания, она была бы слишком сложной для
пользователей, и они отказались бы от нее. Процесс детализации формы не был
бы похож на интуитивный процесс физического моделирования, и в результате
получилось бы совсем не то, на что рассчитывали создатели систем геометриче-
ского моделирования. Поэтому разработчики систем твердотельного моделиро-
вания стараются предоставить простые и естественные функции, чтобы пользо-
ватели могли работать с объемными формами точно так же, как они работают с
физическими моделями, не вдаваясь в подробности математического описания.
Функции моделирования, подобные созданию примитивов, булевским операци-
ям, поднятию, построению фигуры вращения, повороту и закруглению, требуют
от пользователя совсем немного. Обо всех деталях математического описания
системы заботятся сами.
5.3.1. Функции моделирования
Функции моделирования, поддерживаемые большинством систем твердотель-
ного моделирования, могут быть разделены на пять основных групп. В первую
группу входят функции, используемые для создания простых форм на основе
объемных заготовок, имеющихся в программе, — так называемые функции создания
примитивов (primitive creation functions). К этой же группе относятся функции
добавления и вычитания объема — булевские операторы (Boolean operations).
Функции моделирования из первой группы позволяют проектировщику быстро
создать форму, близкую к окончательной форме детали, подобно тому как ребе-
нок сминает пластилин и создает из него приблизительную физическую модель.
Ко второй группе относятся функции создания объемных тел путем перемеще-
ния поверхности. Функция заметания (sweeping) позволяет создавать объемное
тело трансляцией или вращением области, заданной на плоскости. Построение
тела вращения из плоской кривой называется также качанием или вращатель-
ным заметанием (swinging). Задавая замкнутую плоскую область, пользователь
может указывать геометрические ограничения или вводить данные о размерах,
а не рисовать форму вручную. Здесь под геометрическими ограничениями по-
нимаются соотношения между элементами рисунка (перпендикулярность отрез-
ков, касание дуги окружности отрезком и т. д.). В этом случае система построит
точную форму, удовлетворяющую ограничениям, самостоятельно. Изменение
120
Глава 5. Системы геометрического моделирования
геометрических ограничений или размеров даст другую плоскую область и дру-
гое объемное тело. Такой подход называется параметрическим моделированием,
поскольку изменение параметров позволяет получить разные объекты. Парамет-
рами могут быть постоянные, входящие в геометрические ограничения, а также
размеры. Функция скиннинга {skinning) создает объемное тело, натягивая по-
верхность на заданные поперечные сечения. Функции второй группы позволяют
проектировщику начать моделирование с формы, весьма близкой к конечному
результату, поскольку одних поперечных сечений вполне достаточно для точно-
го описания конечного объемного тела.
В третью группу входят функции моделирования, предназначенные главным
образом для изменения существующей формы. Типичными примерами являют-
ся функции скругления или плавного сопряжения (rounding, blending) и поднятия
(lifting). К четвертой группе относятся функции, позволяющие непосредственно
манипулировать составляющими объемных тел, то есть вершинами, ребрами и
гранями. Работа с этими функциями (аналогичными функциям систем поверх-
ностного моделирования) называется моделированием границ (boundary modeling).
В последнюю группу входят функции, используя которые проектировщик может
моделировать твердое тело при помощи свободных форм. Например, он может
давать системе команды типа «сделать отверстие такого-то размера в таком-то
месте» или «сделать фаску такого-то размера в таком-то месте». Работа с такими
функциями называется объектно-ориентированным моделированием (feature-ba-
sed modeling). В последнее время функциям пятой группы уделяется особое вни-
мание, поскольку модель, построенная с их помощью, содержит информацию
о процессе создания, без которой невозможно автоматическое формирование плана
технологического процесса для детали. Заметьте, что модель, созданная другими
средствами, содержит только элементарные геометрические сведения о верши-
нах, ребрах и гранях.
Функции создания примитивов
Функции создания примитивов позволяют выбирать и создавать простейшие
объекты, заранее определенные авторами системы моделирования. Размер при-
митива задается пользователем. Примитивы, поддерживаемые большинством
систем твердотельного моделирования, показаны на рис. 5.4. Размеры, указан-
ные на этом рисунке буквами, могут устанавливаться пользователем. Примити-
вы сохраняются в базе данных процедурой, осуществляющей их создание, а па-
раметры примитивов передаются этой процедуре в качестве аргументов.
Создание примитива описано в приложении В.
Булевские операции
Если бы в списке примитивов можно было найти любое объемное тело, это было
бы замечательно. Однако из-за разнообразия возможных применений систем гео-
метрического моделирования сохранить заранее все мыслимые формы невозмож-
но. Гораздо проще приблизиться к решению, предоставив пользователю средства
Для комбинирования примитивов. В качестве метода комбинирования в твердо-
тельном моделировании применяются булевские операции теории множеств.
Другими словами, каждое примитивное объемное тело считается множеством
точек, к множествам применяются булевские операции, а в результате получает-
ся объемное тело, состоящее из точек, полученных после преобразований.
Большинством систем твердотельного моделирования поддерживаются следую-
щие булевские операции: объединение, пересечение и разность (рис. 5.5, 5.6 и 5.7
соответственно). До применения булевских операций необходимо определить
относительное положение и ориентацию примитивов. Булевские операции могут
применяться не только к примитивам, хотя на рисунках в качестве примеров
изображены именно примитивы.
Рис. 5.5. Объединение примитивов
Рис. 5.6. Пересечение примитивов
Рис. 5.7. Разность примитивов
ще одна функция моделирования реализуется подобно булевским операциям.
*то функция разрезания объемного тела плоскостью, после применения которой
случается тело из двух частей. Того же результата можно достичь, применив
перацию вычитания к объемному телу, которое должно быть разрезано, и кубу,
дной из граней которого является секущая плоскость. По этой причине функ-
ия разрезания также может быть отнесена к булевским операциям.
ри использовании булевских операций следует быть внимательным, чтобы
е получить в результате тело, не являющееся объемным (рис. 5.8). Некоторые
1стемы выдают предупреждение о возможности получения некорректного ре-
гльтата, другие могут просто завершить работу с сообщением об ошибке. Сис-
>мы немногообразного моделирования способны обрабатывать и такие спе-
ифические ситуации, поскольку они работают не только с объемными телами,
о и с поверхностями и каркасами.
Рис. 5.8. Некорректная булевская операция
аметание
функция заметания (sweeping) формирует объемное тело трансляцией или вра-
[ением замкнутой плоской фигуры. В первом случае процесс формирования на-
пвается заметанием при трансляции (translational sweeping), во втором слу-
ае — построением фигуры вращения (swinging, rotational sweeping). Если плоская
игура будет незамкнутой, в результате заметания получится не объемное тело,
поверхность. Такой вариант заметания поддерживается системами поверхност-
эго моделирования.
иметание при трансляции и вращении представлено на рис. 5.9 и 5.10 соответ-
венно. Хотя рис. 5.10 демонстрирует вращение на 360°, большинство систем
•ердотельного моделирования позволяют поворачивать фигуру на произволь-
яй угол.
Рис. 5.9. Заметание при трансляции
Рис. 5.10. Заметание при вращении
Скиннинг
Функция скиннинга (skinning) формирует замкнутый объем, натягивая поверх-
ность на заданные плоские поперечные сечения тела (рис. 5.11). Можно предста-
вить себе, что на каркас фигуры, образованный границами поперечных сечений,
натягивается ткань или винил. Если к натянутой поверхности не добавить ко-
нечные грани (два крайних сечения), в результате получится поверхность, а не
замкнутый объем. В таком варианте функция скиннинга представлена в систе-
мах поверхностного моделирования.
Рис. 5.11. Создание объем ого тела к оде
Скругление или плавное сопряжение
Скругление (rounding), или плавное сопряжение (blending), используется для мо-
дифицирования существующей модели, состоящего в замене острого ребра или
вершины гладкой криволинейной поверхностью, векторы нормали к которой не-
прерывно продолжают векторы нормали поверхностей, сходившихся у исходного
ребра или вершины. Замену острого прямого ребра цилиндрической поверхно-
стью демонстрирует рис. 5.12, а. Векторы нормали к цилиндрической поверхно-
сти продолжаются векторами соседних плоских граней. Замена острой вершины
сферической поверхностью показана на рис. 5.13. Здесь также обеспечивается
непрерывность векторов нормали. Частный случай скругления с добавлением,
а не удалением материала показан на рис. 5.12, б. Такая процедура называется
выкружкой (filleting).
Рис. 5.12. Скругление ребер
Рис. 5.13. Скругление вершин
Поднятие
Поднятием (lifting) называется перемещение всей грани объемного тела или ее
части в заданном направлении с одновременным удлинением тела в этом на-
правлении (рис. 5.14, а). Если нужно поднять только часть грани (рис. 5.14, б),
эту грань необходимо заранее разделить. Для этого достаточно добавить ребро,
которое будет разбивать грань на нужные части. Но внутри системы при этом
будут произведены некоторые дополнительные действия, результатом которых
станет деление грани. Обычно при этом обновляются сведения о связности по-
верхности. Внутри системы подобные действия выполняются при помощи опе-
раторов Эйлера, о которых речь пойдет в разделе 5.3.3.
а
б
Рис. 5.14. Поднятие грани и ее части
При работе с функцией поднятия необходимо правильно указывать направление
и дальность поднятия, чтобы добавленная часть тела не пересекалась с исходной
(рис. 5.15). Пересечение не вызовет проблем, если функция поднятия реализова-
на так, что при пересечении выполняется объединение добавленной части с ис-
ходным телом. Однако изначально функция поднятия разрабатывалась для не-
больших местных изменений, поэтому ситуация, показанная на рис. 5.15, дает
некорректное объемное тело.
Рис. 5.15. Самопересечение в результате поднятия
Моделирование границ
Функции моделирования границ используются для добавления, удаления и изме-
нения элементов объемного тела — его вершин, ребер и граней. Следовательно,
процедура, использующая функции моделирования границ, будет выглядеть
точно так же, как в системах поверхностного моделирования. Другими словами,
вначале создаются точки, затем создаются ребра, соединяющие эти точки, и на-
конец, граничные ребра определяют поверхность. Однако в системах твердотель-
ного моделирования, в отличие от систем поверхностного моделирования, нуж-
но определить все поверхности таким образом, чтобы образовался замкнутый
объем. Создание клина при помощи функций моделирования границ иллюстри-
рует рис. 5.16. Процедура включает создание точек, граней и поверхностей.
РЗ-
Рис. 5.16. Создание тела при помощи функций моделирования границ
Создавать объемное тело исключительно при помощи функций моделирования
границ очень утомительно. Эти функции используются главным образом для
создания плоских фигур, которые затем служат сечениями объемным телам,
образуемым заметанием или скиннингом. Однако функции моделирования гра-
ниц удобно применять для изменения формы уже существующего тела. Верши-
ну можно передвинуть в новое положение, изменив соответствующим образом
соседние ребра и грани (рис. 5.17). Прямое ребро можно заменить кривлоиней-
ным, в результате чего изменятся связанные грани и вершины (рис. 5.18). Пло-
скую поверхность можно заменить на криволинейную с модификацией ребер
и вершин (рис. 5.19). Иногда плоскую поверхность можно заменять криволиней-
ной, импортированной из системы поверхностного моделирования. Перечислен-
ные функции моделирования называются функциями тонкого редактирования
tweaking functions). Они используются для моделирования тел, ограниченных
криволинейными поверхностями, поскольку такие поверхности легко получать
из плоских граней многогранника.
Рис. 5.17. Модификация объекта перемещением вершины
Рис. 5.18. Модификация объекта заменой ребра
Рис. 5.19. Модификация объекта заменой поверхности
Объектно-ориентированное моделирование
Объектно-ориентированное моделирование (feature-based modeling) позволяет
конструктору создавать объемные тела, используя привычные элементы форм
{features). Созданное тело несет в себе информацию об этих элементах в допол-
<ение к информации об обычных геометрических элементах (вершинах, ребрах,
1>анях и др.). Например, конструктор может давать команды типа «сделать от-
верстие такого-то размера в таком-то месте» или «сделать фаску такого-то раз-
мера в таком-то месте», и получившаяся фигура будет содержать сведения о на-
личии в конкретном месте отверстия (или фаски) конкретного размера. Набор
доступных в конкретной программе элементов формы зависит от спектра приме-
ления этой программы.
•олыпинством систем объектно-ориентированного моделирования поддержива-
гпся такие элементы, которые используются при изготовлении деталей: фаски,
отверстия, скругления, пазы, выемки и т. д. Такие элементы называются произ-
водственными, поскольку каждый из них может быть получен в результате кон-
кретного процесса производства. Например, отверстие создается сверлением,
а выемка — фрезерованием. Следовательно, на основании сведений о наличии,
размере и расположении производственных элементов можно попытаться авто-
матически сформировать план технологического процесса. Автоматическое пла-
нирование технологического процесса, если оно будет разработано на практиче-
ском уровне, перебросит мост между CAD и САМ, которые в настоящий момент
существуют отдельно друг от друга. Таким образом, в настоящий момент лучше
моделировать объекты, подобные изображенному на рис. 5.20, с использованием
команд объектно-ориентированного моделирования «Выемка» и «Отверстие»,
а не просто булевских операций. Модель, созданная при помощи таких команд,
облегчит планирование технологического процесса, если не сделает его полно-
стью автоматическим. Использование производственных элементов в моделиро-
вании иллюстрирует рис. 5.21.
Рис. 5.20. Модель, созданная командами «Выемка» и «Отверстие»
Рис. 5.21. Производственные элементы а — фаска; б — отверстие;
в — выемка; г — скругление
Один из недостатков объектно-ориентированного моделирования заключается в
том, что система не может предоставить все элементы, нужные для всех возмож-
ных приложений. Для каждой задачи может потребоваться свой набор элементов.
Чтобы исключить этот недостаток, большинство систем объектно-ориентирован-
ного моделирования поддерживают какой-либо язык, на котором пользователь
при необходимости может определять свои собственные элементы. После опре-
деления элемента необходимо задать параметры, указывающие его размер. Эле-
менты, как и примитивы, могут быть разного размера, а задаются размеры пара-
метрами в момент создания элемента. Создание элементов разного размера путем
присваивания различных значений соответствующим параметрам является раз-
новидностью параметрического моделирования.
Параметрическое моделирование
Параметрическое моделирование (parametric modeling) заключается в том, что
конструктор определяет форму заданием геометрических ограничений и некото-
рых размерных параметров. Геометрические ограничения описывают отношения
геометрических элементов. Примерами ограничений являются параллельность
двух граней, компланарность двух ребер, касательность криволинейного ребра к
соседнему прямому и т. д. К размерным данным относятся не только заданные
размеры формы, но и соотношения между размерами. Соотношения записыва-
ются конструктором в виде математических уравнений. Таким образом, парамет-
рическое моделирование заключается в построении формы путем решения урав-
нений, выражающих геометрические ограничения, и уравнений, описывающих
заданные размеры и соотношения между ними.
В параметрическом моделировании построение формы обычно осуществляется в
приведенной ниже последовательности.
1. Строится грубый набросок плоской фигуры.
2. В интерактивном режиме вводятся геометрические ограничения и данные о
размерах.
3. Строится плоская фигура, отвечающая ограничениям и требованиям к разме-
рам.
4. Шаги 2 и 3 повторяются с изменением ограничений или размеров до тех пор,
пока не будет получена нужная модель (рис. 5.22).
5. Объемное тело создается заметанием или вращением плоской фигуры. Тол-
щина и угол поворота также могут стать размерными параметрами, что позво-
лит при необходимости легко изменить созданную трехмерную форму.
Обратите внимание, что форма в параметрическом моделировании изменяется
не непосредственно, а через использование геометрических ограничений и раз-
мерных соотношений. Поэтому конструктор может разработать множество аль-
тернативных проектов, не заботясь о деталях, но сосредоточившись на функцио-
нальных аспектах.
Разновидности параметрического моделирования выделяются по методам ре-
шения уравнений, описывающих геометрические ограничения. Системы первого
типа решают уравнения последовательно, а системы второго типа — одновремен-
но. В первом случае форма тела зависит от порядка введения ограничений. Во
5.3. Системы твердотельного моделирования
втором случае одна и та же форма получается независимо от последователь-
ности введения ограничений, ио в случае их конфликта могут возникнуть про-
блемы.
Рис. 5.22. Изменение формы через ограничения
5.3.2. Структура данных
В предыдущем разделе мы описали разновидности функций моделирования,
предоставляемых системами твердотельного моделирования. Мы знаем, что при
создании объемного тела с применением этих функций в компьютере сохраняет-
ся его математическое описание. Каким образом и в каких форматах хранится
эта информация, отражающая однозначное математическое описание объемных
тел? В этом разделе мы расскажем о структурах данных, используемых для хра-
нения математических описаний такого рода.
Структуры данных, используемые для описания объемных тел, обычно делятся
на три типа в зависимости от того, какие тела ими описываются. Первая структу-
ра представляет собой дерево, описывающее историю применения булевских
операций к примитивам. Журнал операций называется конструктивным пред-
ставлением объемной геометрии {Constructive Solid Geometry — CSG representa-
tion). Дерево называется деревом CSG (GSG tree). Вторая структура содержит
сведения о границах объема (вершинах, ребрах, гранях и их соединении друг
с другом). Это представление называется граничным представлением {boundary
representation — В-rep), а структура данных — структурой B-rep {B-rep data
structure). Многие структуры В-тер строятся по-разному в зависимости от того,
какой элемент считается основным при сохранении сведений о связности
(см. далее). Третья структура представляет объем в виде комбинации элементар-
ных объемов (например, кубов). Можно придумать множество моделей разложе-
ния, выбирая разные элементарные объемы, но ни одна из них не может точно
описать объемное тело.
Дерево CSG
Вспомните, что дерево CSG содержит историю применения булевских опера-
ций к примитивам. Рассмотрим тело, изображенное на рис. 5.23, а. Его историю
булевских операций можно представить в виде дерева так, как показано на
рис. 5.23, б. Это дерево может быть представлено взаимосвязанными элемен-
тами данных (рис. 5.23, в). Элементы данных реализуются на языке С (лис-
тинг 5.1).
лава ь. системы геометрического моделирования
е
Рис. 5.23. Пример дерева CSG
Листинг 5.1. Реализация структуры дерева CSG на языке С
struct operator {
int op_type. /* оператор объединения, пересечения или разности */
Ltype. /* тип левого узла: 0 - оператор. 1 - примитив */
R_type /* тип правого узла: 0 - оператор. 1 - примитив */
void *L_ptr. /* левый узел */
*R_ptr. /* правый узел */
*p_ptr: /* родительский узел */
}
struct primitive {
int prim_type: /* тип примитива */
double pos_x. pos_y. pos_z; /*положение экземпляра */
double or1_x. ori_y. oriz; /* ориентация экземпляра */
void *attribute: /* значения размеров примитива */
}
Дерево CSG обладает следующими преимуществами:
□ структура данных проста, а их представление компактно, что облегчает обра-
ботку;
□ объемное тело, описываемое деревом CSG, всегда является корректным, то
есть его внутренний объем однозначно отделен от внешнего. Примером не-
корректного объемного тела является тело с лишним ребром. Для него деле-
ние объема па внутренний и внешний вблизи вершины, к которой подходит
это ребро, оказывается неоднозначным;
□ представление CSG всегда может быть преобразовано к соответствующему
представлению B-Rep. Это позволяет взаимодействовать с программами, ори-
ентированными на использование B-Rep;
□ параметрическое моделирование легко реализуется изменением параметров
соответствующих примитивов (рис. 5.24).
Есть у этого дерева и недостатки:
□ поскольку дерево CSG хранит историю применения булевских операций, в
процессе моделирования могут использоваться только они. Это требование
жестко ограничивает диапазон моделируемых объектов. Более того, оно ис-
ключает использование удобных функций локального изменения, таких как
поднятие и скругление;
□ для получения сведений о граничных поверхностях, их ребрах и связях между
этими элементами из дерева CSG требуются сложные вычисления. К сожале-
нию, сведения о границах нужны для множества приложений, в частности
для отображения тел. Для того чтобы отобразить затушеванное изображение
или чертеж объемного тела, нужно иметь информацию о гранях или верши-
нах этого тела (см. главу 3). Поэтому представление CSG является недостаточ-
ным для интерактивного отображения тел и манипулирования ими. Другой
пример — расчет траектории движения фрезы с ЧПУ для обработки поверх-
ностей тела. Для этой задачи нужны сведения о поверхностях, их ребрах и
связности. Получить все эти сведения из дерева CSG очень непросто.
Рис. 5.24. Изменение параметров тела
Из-за этих недостатков разработчики программ, основанных на представлении
CSG, стараются добавить соответствующие сведения о границах. Такое комби-
нированное математическое представление называется гибридным и требует
поддержания согласованности между двумя структурами данных.
Структура данных B-Rep
Границы объемных тел состоят из элементарных геометрических объектов: вер-
шин, ребер и граней1. В структуре данных B-Rep хранятся все эти элементы вме-
сте со сведениями о том, как они соединены друг с другом. Одна из простейших
структур данных, если не самая простая, приведена в табл. 5.1. Структура дан-
ных представляет объемное тело, изображенное на рис. 5.25. В таблице граней
хранится список ограничивающих ребер для каждой грани. Последовательность
ребер для каждой грани дается обходом против часовой стрелки, если смотреть
1 Грань — часть граничной поверхности, граница которой состоит из криволинейных сег-
ментов, при пересечении которых происходит существенное изменение вектора нормали
к поверхности. Криволинейные сегменты, ограничивающие грань, называются ребрами.
Точки, в которых встречаются соседние ребра, называются вершинами.
на тело снаружи. Благодаря тому что ребра хранятся согласованно, вместе с каж-
дой гранью сохраняется информация о том, с какой стороны от нее находится
внутренний объем тела. Другими словами, имея сведения о гранях, вы можете
определить, где расположена конкретная точка: снаружи или внутри тела. Вер-
шины, ребра и грани, изображенные на рис. 5.25, нумеруются системой геомет-
рического моделирования в произвольном порядке в момент сохранения сведе-
ний из табл. 5.1.
Таблица 5.1. Три таблицы представления B-Rep
Таблица граней Таблица ребер Таблица вершин
Грань Ребра Ребро Вершины Вершина Координаты
Ft Ei, Es, Eg £i Vi, V2 vt Xi, У1, Zt
Fi Ei, E^ Ei Ei v2, v3 Vi x2, У1, z2
F3 bi w bl E3 v3, Vi V3 Хз, Уз, 2з
f4 £4. £g, £5 Ei Vi, Vi Vi Xi, yi, 2i
f5 £1, £2, £3, £4 e5 V1, V5 Vs Xs, Уз, Zs
E6 Vi, V5 Ve Хв, Уз, Ze
Ei E3, V5
e8 Vi, Vs
Рис. 5.25. Объемное тело, сохраняемое в табл. 5.1
В каждой строке таблицы ребер хранятся вершины, находящиеся на концах со-
ответствующего ребра, а в строках таблицы вершин хранятся координаты всех
вершин. Эти координаты обычно определяются в модельной системе координат,
связанной с данным телом. Если убрать отсюда таблицу граней, эту структуру
данных можно будет использовать для хранения форм, созданных в системах
каркасного моделирования. Структура данных для каркасной модели может ис-
пользоваться в качестве базовой для систем автоматизированной разработки
чертежей, если допустить указание двумерных координат для точек.
Структура данных B-Rep выглядит очень простой и компактной. Однако она не
используется в развитых системах твердотельного моделирования из-за пере-
численных ниже недостатков.
□ Структура данных B-Rep ориентирована на хранение плоских многогранни-
ков. Если потребуется сохранить данные о теле с криволинейными гранями
и ребрами, строки таблиц граней и ребер придется изменять таким образом,
чтобы в них можно было включить уравнения поверхности и кривой соответ-
ственно1. Уравнения для плоских граней сохранять не обязательно, посколь-
ку плоские грани определяются находящимися на них вершинами.
□ Грань с внутренними и внешними границами (рис. 5.26, а) не может быть
сохранена в таблице граней, поскольку для нее нужно два списка ребер вме-
сто одного. Такие грани появляются, например, при моделировании объем-
ных тел со сквозными отверстиями. Простым решением этой проблемы явля-
ется добавление ребра, соединяющего внешнюю и внутреннюю границы
(рис. 5.26, б). В этом случае два списка вершин могут быть объединены. Со-
единительное ребро называется мостиком или перемычкой (bridge edge) и по-
падает в список ребер в двух экземплярах.
Рис. 5.26. Поверхность с двумя границами и метод их обхода
б
□ Количество ребер у разных граней может быть различно (см. табл. 5.1). Более
того, невозможно определить заранее количество столбцов (по одному на ка-
ждое ребро), которые потребуются для конкретной грани, поскольку это ко-
личество может меняться в процессе моделирования. Следовательно, количе-
ство столбцов должно сохраняться в виде переменной в момент объявления
таблицы граней. Работа с таблицей переменного размера создает некоторые
неудобства.
□ Получать сведения о связности непосредственно из данных, сохраненных в
трех таблицах, может быть довольно утомительно. Представьте себе поиск
двух граней с общим ребром в случае граничного представления тела в трех
таблицах. Придется просмотреть всю таблицу граней, чтобы найти строки, в
которых присутствует нужное ребро. Если нужно найти все ребра, соединяю-
щиеся в конкретной вершине, опять-таки придется просматривать всю табли-
цу ребер. Легко видеть, что при больших размерах таблиц поиск в них стано-
вится крайне неэффективным.
1 Уравнения поверхностей и кривых, а также координаты вершин называют геометриче-
скими данными, тогда как отношения между гранями, ребрами и вершинами называют
топологическими данными. Данные в любой структуре B-Rep могут быть классифициро-
ваны либо как геометрические, либо как топологические.
Есть две распространенные структуры данных, которые позволяют избежать
перечисленных проблем при сохранении граничного представления объемного
тела. Это структура полуребер {half-edge data structure) и структура крыльевых
ребер (winged-edge data structure).
Структура полуребер
В качестве средства для борьбы с таблицей граней переменного размера можно
использовать двусвязный список1, в который помещаются сведения обо всех
вершинах данной грани (рис. 5.27). Для каждой грани сохраняется указатель на
первое ребро списка, а не весь список, тогда как в структуре каждого ребра име-
ются указатели на предыдущее и последующее ребро того же списка. В резуль-
тате в таблице граней будет фиксированное число столбцов. Список ребер при
этом всегда можно будет восстановить, переходя от одного ребра к другому по
указателям (например, список ребер £5, Ее и £t для грани Ff. Грань Ft может хра-
нить указатель на Е6 или Еь но список ребер всегда будет один и тот же.
Рис. 5.27. Двусвязный список грани F,
Однако мы немедленно столкнемся с другой проблемой, когда перейдем к грани
F2, которая имеет общее ребро Ее с гранью F[ (рис. 5.25). Двусвязный список для
грани F2 должен выглядеть так, как показано на рис. 5.28. По этому рисунку вид-
но, что для ребра Е6 последующим является £7, а предыдущим — £2. Сохранив
соответствующие указатели, мы изменим заданные ранее значения указателей,
обеспечивавшие ребру £6 место в списке ребер грани £,, то есть фактически раз-
рушим список ребер грани £t.
Рис. 5.28. Двусвязный список грани F2
Чтобы решить эту проблему, нужно разделить каждое из ребер на две половинки
и использовать каждую из них в списке ребер той грани, к которой она относит-
ся. Деление ребра осуществляется таким образом, что его половинки оказывают-
ся противоположно направленными (рис. 5.29). Для каждой грани сохраняется
двусвязный список полуребер, а не обычных ребер. Полуребра каждой грани со-
бираются в список таким образом, чтобы направление каждого из них согласо-
Г7? ~ ’
Оту проблему можно решить и с односвязным списком. Мы выбрали двойной связный
список, чтобы получить ту полуреберную структуру, которую предложил Мянтюля
[106].
вывалось с направлением обхода границ грани: против часовой стрелки, если
смотреть снаружи тела. В результате получаются двусвязные списки полуребер
для граней Ft и F2 (рис. 5.30). Теперь никаких проблем, приводящих к разруше-
нию списка для ребра Fb не возникает.
Для описания граней с внутренними отверстиями без добавления избыточных
соединительных ребер используются кольца. Кольцо (loop) — это список ребер,
образующих замкнутую цепочку, так что любая грань ограничивается одним внеш-
ним кольцом и может ограничиваться внутренними1, определяющими отвер-
стия. Теперь каждая грань может ссылаться на список полуребер через кольцо,
а не непосредственно. Другими словами, для каждой грани хранится двусвязный
список колец, а для каждого кольца хранится список полуребер. Это позволяет
обрабатывать грани с любым количеством отверстий без добавления мостиков.
На рис. 5.31 показано, как хранится в памяти грань с отверстиями при помощи
колец. Обычно в структуру грани включается указатель на внешнее кольцо,
а оно становится первым элементом двусвязного списка колец. У каждого коль-
ца есть список полуребер, направление которых противоположно направлению
внешнего кольца. Другими словами, полуребра отверстия помещаются в список
1 Внешнее кольцо и кольца отверстий называются также родительским (parent loop) и до-
черними кольцами (child loop) соответственно.
ио
Глава 5. Системы геометрического моделирования
в таком порядке, что их направления совпадают с направлением обхода отвер-
стий по часовой стрелке, если смотреть снаружи тела. На рис. 5.31 полуребра
кольца Li обходятся против часовой стрелки (это кольцо внешнее), а полуребра
колец Ь2 и L3 — по часовой стрелке (эти кольца внутренние).
Рис. 5.31. Описание грани с отверстиями при помощи колец
Последовательность обхода полуребер отверстий противоположна последова-
тельности обхода полуребер внешнего кольца для того, чтобы сохранить инфор-
мацию о внутренней и внешней сторонах грани. Направления обхода выбраны
таким образом, чтобы внутренняя часть грани всегда была по левую сторону при
обходе любого кольца в соответствующем направлении.
Структура данных с полуребрами и кольцами имеет множество преимуществ пе-
ред структурой с таблицами вершин, ребер и граней. В структуре с полуребрами
и кольцами можно сохранять данные о связности вершин, ребер и граней и по
этим данным получать сведения о смежности. Мы уже показали, что получить
такие данные по исходной простой таблице — задача непростая. Однако благодаря
полуребрам и кольцам в структуре сохраняются сведения о связности вершин,
ребер и граней, и тогда задача упрощается. Вершины, ребра и грани указывают
на соответствующие полуребра и кольца, для которых сохраняются сведения о
смежности. Чтобы обеспечить связь между ребром и его полуребрами, для каж-
дого ребра сохраняются указатели на соответствующие полуребра, а для полуре-
бер — указатели на родительские ребра. Аналогичным образом, для каждой вер-
шины сохраняется указатель на одно из полуребер, исходящих из нее, а для
каждого полуребра сохраняется указатель на его начальную вершину1. Для гра-
ни сохраняется указатель на внешнее кольцо, а для кольца — указатель на роди-
тельскую грань (см. рис. 5.31). Сведения о смежности колец и полуребер сохра-
няются естественным способом (каждое кольцо представляется в виде
двусвязного списка полуребер).
Покажем, как можно получить информацию о смежности вершин и ребер из со-
храненной структуры данных, чтобы продемонстрировать наличие в структуре
всей необходимой информации. Например, попробуем найти все ребра, исходя-
щие из вершины Vi (рис. 5.32). Поиск начинается с полуребра, указатель на ко-
торое сохранен в вершине. Это может быть любое полуребро из тех, что соедине-
ны с данной вершиной. Обозначим его (см. рис. 5.32). Процедура поиска будет
выглядеть следующим образом.
1 Вершина полуребра считается начальной или конечной в соответствии с направлением
этого полуребра.
1. Если вершина Vi является начальной вершиной ht (в нашем случае так и есть),
то выбирается полуребро, предшествующее hi (prev_h1), а его родительское
ребро оказывается одним из нужных нам ребер, соединенных с Еь Теперь ме-
сто hi занимает сопряженное полуребро prev hl (которое мы обозначаем new_h1)
и шаг 1 повторяется. Если Vi — конечная вершина hi, выбирается полуребро,
следующее за hi, а его родительское ребро считается одним из подходящих
к вершине. Затем вместо hi берется полуребро, сопряженное со следовавшим
за hi, и шаг 1 повторяется с полу ребром new_h1.
2. Процесс повторяется до тех пор, пока не будет достигнуто полуребро, сопря-
женное с исходным hi.
Рис. 5.32. Получение данных о смежности ребер и вершин
Реализация структуры данных полуребер представлена в приложении А. Струк-
туру данных, используемую в системе твердотельного моделирования GWB,
разработанной Мянтюля [106], демонстрирует листинг А.1. В книге [106] рас-
сказывается о некоторых дополнительных указателях. В некоторых случаях ока-
зывается выгоднее сохранить избыточные указатели, чем вычислять их заново,
особенно если выполнять это пришлось бы часто. Количество и назначение из-
быточных указателей должны планироваться в процессе проектирования струк-
туры данных. Реализация процедуры поиска всех ребер, исходящих из конкрет-
ной вершины, на предлагаемой структуре данных, представлена в листинге А.2.
Структура крыльевых ребер
Структура полуребер представляет собой список граней, каждой из которых со-
ответствует двусвязный список ребер. В этой структуре главная роль в описании
объемного тела отводится граням. В структуре крыльевых ребер (winged-edge data
structure) главная роль, напротив, отводится ребрам. Для каждого ребра сохраня-
ется список граней, которым оно принадлежит, ребер, с которыми оно имеет об-
щие вершины, и вершин на его концах. Список ребер для каждой грани не сохра-
няется в структуре в явном виде, поскольку он может быть получен анализом
любого ребра грани и соседних с ним ребер. Проблема неопределенности коли-
чества ребер у граней решается без введения связных списков и, следовательно,
полуребер. Последнее объясняет, почему сведения о связности вершин, ребер и
граней сохраняются в структуре данных в явном виде. В структуре полуребер
связность неявно описывалась самими полуребрами. Мы уже отметили некото-
рую часть сведений о связности: для каждого ребра сохраняются грани, которым
оно принадлежит, соседние ребра и конечные вершины.
Глава 5. Системы геометрического моделирования
Структура крыльевых ребер впервые была предложена Бомгартом [И]. Брейд
расширил ее, добавив поддержку тел со сквозными отверстиями посредством ис-
пользования колец [23].
Определим структуру крыльевых ребер для фигуры, изображенной на рис. 5.33.
Ребро Ei является смежным с четырьмя другими ребрами: Е2, Е3, Е$ и Е5, каждое
из которых содержит одну из двух вершин ребра £,. Если рассматривать ребро Et
как фюзеляж самолета, четыре ребра Е2, Е3, ЕА и £5 будут его крыльями. Эти че-
тыре смежных ребра называются крыльевыми ребрами £,. Каждое из них долж-
но быть сохранено под отдельным именем с информацией о положении этого
ребра относительно Ех. Именуются крыльевые ребра так. Вначале £, назначается
определенное направление (рис. 5.33). Здесь ребро направлено от вершины V, к
вершине V2. Затем следует представить себе, что вы лежите вдоль ребра £j так,
что голова направлена к V2 (а тело, разумеется, находится снаружи объема). Вы-
тяните руки и ноги так, как если бы вы летели. Левая рука коснется ребра £2,
правая рука — ребра £3, левая нога — ребра £4, правая нога — ребра £5. Поэтому
ребро £2 называют ребром левой руки, £3 — ребром правой руки, £4 — ребром ле-
вой ноги, £5 — ребром правой ноги. Если £t направить в противоположную сто-
рону, £5 будет ребром левой руки, £4 — ребром правой руки, £3 — ребром левой
ноги и £2 — ребром правой ноги. Направление каждого ребра устанавливает-
ся произвольно в момент создания объемного тела и сохранения его структуры
крыльевых ребер.
Помимо связности ребер в терминах крыльевых ребер необходимо также опи-
сать связность граней и ребер. Поэтому для каждого ребра сохраняются указате-
ли на две грани, которым оно принадлежит. Например, для ребра £t на рис. 5.33
сохраняются указатели на ребра £t и £2 (левое и правое соответственно). Назва-
ния ребер определяются направлением £j. Граням присваиваются разные назва-
ния по той же схеме, по которой они присваиваются крыльевым ребрам. Брейд
предложил использовать кольца для сохранения сведений о телах со сквозными
отверстиями в структуре крыльевых ребер. Связь между гранью и ее ребрами за-
дается неявно при помощи колец. Каждое ребро хранит указатель на свое левое
и правое кольца, а не на левую и правую грань. Например, на рис. 5.33 ребро £j
хранит указатель на £t как на левое кольцо и на £2 как на правое кольцо. Если
направление £, изменить на противоположное, названия колец также изменятся.
Кольца содержат указатели на все ребра, которые к ним относятся. Это дает воз-
можность получить список всех ребер одного кольца. Процедура аналогична по-
лучению списка полуребер начиная с любого произвольного полуребра, на кото-
рое имеется указатель в кольце.
Теперь рассмотрим описание связности ребер и вершин. Вспомните, что у каж-
дого ребра на концах находятся вершины. Эти вершины сохраняются под имена-
ми предыдущая вершина (previous vertex или tail vertex) и последующая вершина
(next vertex или head vertex), поскольку все ребра имеют направления. На рис. 5.33
V, является предыдущей вершиной для £„ a V2 — последующей. Сохраняются не
только указатели на вершины в структурах ребер, но и указатели на ребра в
структурах вершин — по одному ребру для каждой вершины. Это позволяет вы-
делить ребро, начиная с которого перечисляются все ребра, сходящиеся в одной
вершине. При реализации функций моделирования, в особенности содержащих
операторы Эйлера (см. раздел 5.3.3), приходится часто просматривать списки ре-
бер, сходящихся в одной вершине.
Описанные способы сохранения информации о связности вершин, ребер и гра-
ней иллюстрирует рис. 5.34.
Рис. 5.33. Определение структуры крыльевых ребер
Следующая вершина
Ребро левой руки
Кольцо
| Левое кольцо
Ребро
Ребро левой ноги
Ребро правой руки
Вершина
Правое кольцо |
Ребро
Ребро правой ноги
Рис. 5.34. Связность вершин, ребер и граней
Помимо описанных связей сохраняются также связи между гранями и их коль-
цами, как в структуре данных полуребер. А именно, для каждой грани сохраняет-
ся указатель на ее внешнее кольцо, а для внешнего кольца сохраняется указатель
на кольцо отверстия, если в данной грани оно есть. Кольцо отверстия может ука-
зывать на другое кольцо отверстия, если в грани отверстий несколько; в против-
ном случае оно указывает обратно на внешнее кольцо (рис. 5.35). Кроме того, для
каждого кольца сохраняется указатель па его родительскую грань. Заметьте,
что здесь используется односвязный список, а не двусвязный, как на рис. 5.30.
Выбор односвязного или двусвязного списка определяется тем, что считается
более важным — эффективность обращения к данным или компактность струк-
туры.
Рис. 5.35. Связи между гранью и ее кольцами
Пример реализации структуры данных крыльевых ребер па языке С демонстри-
рует листинг Б.1 в приложении Б. Эта структура данных используется в системе
твердотельного моделирования SNUMOD, разработанной в Сеульском государ-
ственном университете в Корее. В листинге присутствует новый элемент — обо-
лочка {shell). Оболочка — это трехмерное расширение кольца, то есть список гра-
ней, образующих замкнутый объем. Обычно в объемном теле может быть только
одна оболочка, если в нем нет полостей. Полость в объемном теле — это трехмер-
ное расширение кольца отверстия в грани. Следовательно, концепция оболочки
позволяет описывать объемные тела с полостями точно так же, как концепция
кольца отверстия позволяет описывать грань с отверстиями.
Структура декомпозиционной модели
Объемная модель может быть приближенно представлена в виде совокупности
простых тел, например кубов. Такая модель называется декомпозиционной
(decomposition model). Можно предложить много декомпозиционных моделей
описания одного и того же тела. Модель включает в себя простейшее тело и ме-
тод объединения в совокупность. К типичным декомпозиционным моделям с со-
ответствующими структурами данных относятся воксельное представление,
представление октантного дерева и ячеечное представление.
Воксельное представление
Воксельное представление (voxel representation) объемного тела — это просто
трехмерный аналог растрового представления плоской фигуры. Чтобы расска-
зать о вексельном представлении, нам придется вспомнить процедуру получе-
ния растрового представления или растрового изображения. Растровое изобра-
жение двумерного объекта формируется следующим образом. Сначала создается
квадрат, размер которого соответствует интересующей нас области двумерного
пространства. Затем квадрат делится на много маленьких квадратиков путем па-
несения на него линий сетки. Расстояние между линиями сетки определяется
желаемой точностью растрового представления. Другими словами, если это рас-
стояние будет очень маленьким, то растровое изображение будет очень точно
воспроизводить форму исходного двумерного объекта. В противном случае по-
лучится лишь грубое приближение. Квадрат, содержащий много маленьких
квадратиков, представляется в компьютере в виде двумерного массива, количе-
ство элементов в котором совпадает с количеством квадратиков. Наконец, боль-
шой квадрат накладывается на двумерный объект, и элементы массива, соответ-
ствующие квадратикам, находящимся над объектом, получают значение 1, а
остальные элементы получают значение 0. Получившийся массив пулей и еди-
ниц становится растровым представлением двумерного объекта.
Вексельное представление объемного тела получается при помощи той же про-
цедуры, что и растровое представление. Однако начинается она не с большого
квадрата и маленьких квадратиков, а с большого куба и маленьких кубиков, на-
зываемых вокселами1. Деление на вокселы осуществляется сеткой плоскостей,
расположенных на равном расстоянии друг от друга перпендикулярно осям х, у
и г. Исходный куб представляется в виде трехмерного массива, количество эле-
ментов которого совпадает с количеством кубиков, и каждому элементу массива
присваивается значение 0 или 1 в зависимости от положения элемента в теле.
Воксел — это трехмерный аналог пиксела. Последние четыре буквы названия взяты от
слова «пиксел» (pixel), а первые две — от слова «объем» (volume).
5.3. Системы твердотельного моделирования
141
Несмотря на то что эта процедура практически идентична процедуре формиро-
вания растра, проверка пересечения тела и кубика требует больших вычислений,
чем аналогичная двумерная задача1. Воксельное представление объемного тела,
имеющего форму бублика, демонстрирует рис. 5.36.
Рис. 5.36. Визуализация вексельного представления (благодаря любезности АСМ, 1пс.)
Воксельное представление обладает следующими преимуществами.
□ Воксельное представление позволяет точно или по крайней мере приблизи-
тельно описать объемное тело совершенно произвольной формы. Например,
модели человеческих костей и органов часто являются вексельными представ-
лениями данных цифровой томографии. Моделировать такие формы при по-
мощи обычных функций очень сложно. Даже применение сложных процедур,
описанных в разделе 5.3.1, все равно не позволяет построить точную модель.
□ Воксельное представление позволяет с легкостью рассчитывать такие пара-
метры объемного тела, как масса и моменты инерции. Расчет осуществляется
путем суммирования параметров отдельных вокселов. Также легко получить
результат булевской операции. Вообще говоря, для этого достаточно всего
лишь применить булевскую операцию к целочисленным значениям соответ-
ствующих вокселов двух тел.
□ Хотя воксельное представление предназначено для описания объемного тела
в пространстве, оно автоматически описывает и пространство вне тела. По-
этому оно удобно для расчета объема полых структур. Применимо оно и для
расчета траекторий движения роботов, уклоняющихся от препятствий, по-
скольку воксельное представление препятствий содержит и информацию
о свободном пространстве.
Есть у вексельного представления и некоторые недостатки.
□ Объем памяти, требуемый для хранения вексельного представления тела,
резко возрастает с уменьшением размеров вокселов. Размер вокселов опреде-
ляет точность приближения исходного тела, поэтому моделирование может
потребовать предельного его снижения.
□ Воксельное представление по определению является приближенным описа-
нием исходного тела. Поэтому систем твердотельного моделирования, в кото-
рых оно является основным математическим описанием объектов, довольно
мало. Вокселы часто используются в качестве внешнего представления, по-
вышающего эффективность вычислений.
14Z
Глава 5. Системы геометрического моделирования
Представление октантного дерева
Представление октантного дерева (octree representation) аналогично вексель-
ному в том плане, что тело рассматривается как совокупность шестигранников
(куб — это правильный шестигранник). Однако это представление предъявляет
значительно менее серьезные требования к памяти благодаря иной схеме деле-
ния пространства. В вексельном представлении исходный куб делится сеткой
плоскостей, находящихся на равном расстоянии друг от друга по осям х, у и г.
В представлении октантного дерева исходный куб делится каждый раз на восемь
равных кубов поперечными плоскостями (рис. 5.37, а). Объем маленького куба
в восемь раз меньше объема исходного, отсюда и название представления. Более
того, если кубики представить в виде узлов дерева, то от каждого узла будет
отходить восемь ветвей (рис. 5.37, б). Такое дерево и называется актантным'
(octree). Если бы каждый кубик всегда делился на восемь меньших вне зависи-
мости от формы моделируемого тела, то результат был бы полностью аналогичен
вексельному представлению с кубиками постоянного размера. Однако в пред-
ставлении октантного дерева некоторые кубики делятся на восемь частей, тогда
как другие кубики того же уровня остаются целыми. Определяется это положе-
нием кубиков по отношению к представляемому телу.
Рис. 5.37. Пример формирования октантного дерева
1 Аналогичное представление можно построить и для двумерного объекта, но в этом слу-
чае дерево будет называться квадрантным (quadtree).
5.3. Системы твердотельного моден риьания
Процедура построения представления октантного дерева выглядит следующим
образом. Сначала создается шестигранник, в который моделируемое тело поме-
щается целиком. Этот шестигранник называется корневым октантом (root octant).
Затем корневой октант делится па восемь октантов, после чего анализируется их
положение в пространстве по отношению к моделируемому телу. Если октант
находится полностью внутри тела, он считается «черным»; если снаружи — «бе-
лым». Если же октант частично лежит внутри тела, а частично — снаружи, то он
считается «серым» и делится на восемь октантов меньшего размера. Черные и
белые октанты дальше не делятся. Процедура повторяется до тех пор, пока не
будет достигнут заданный минимальный размер октанта. После этого октанты,
окрашенные в черный цвет, считаются относящимися к исходному телу1.
На рис. 5.37, в показано октантное дерево для тела с рис. 5.37, б. Количество ок-
тантов, под которые приходится отводить память, много меньше количества во-
кселов для тела того же объема, поскольку белые и черные октанты дальше не
делятся. Октантное дерево с рис. 5.37, в хранится в компьютере в виде структуры
данных. Реализация такой структуры на языке С показана в листинге 5.2, а про-
цедура формирования октантного дерева на основе этой структуры данных при-
водится в листинге 5.3. Эта процедура представляет собой, по сути, запись на
языке программирования описанных выше действий. Несмотря на относительно
простой вид процедуры, подпрограмма classify(p.t) требует сложных геометриче-
ских вычислений, поскольку она определяет, где находится конкретный октант:
внутри тела, снаружи его или на границе. Серые октанты преобразуются в чер-
ные после окончания процесса деления. Поэтому объем модели, полученной в
результате применения этой процедуры, будет заведомо большим объема исход-
ного тела.
Листинг 5.2. Структура данных для хранения октантного дерева
struct octreeroot
{ float fl oat struct octree i- xmin. ymin. zmin; /* границы пространства */ xmax. ушах, zmax; *root: /* корень дерева */
struct octree
i char struct octree code; /* цвет октанта; BLACK. WHITE. GREY */ *oct[8]: /* указатели на октанты */ /* отличны от нуля, если code==GREY */
Листинг 5.3. Процедура формирования октантного дерева
make_tree(p. t. depth)
primitive *p: /* p - моделируемый примитив */
octree *t: I* t - узел дерева, то есть исходное дерево с одним серым узлом */
int depth; /* максимальная глубина рекурсии */
{
1 Серые октанты также могут быть включены в представление. Объем тела при этом ока-
зывается большим действительного. Если же брать только черные октанты, объем полу-
чится заведомо меньшим действительного.
лч-ч-
Глава 5. Системы геометрического моделирования
int 1;
switch(classify(p t))
{
case WHITE:
t->code - WHITE:
break:
case BLACK:
t->code - BLACK;
break:
case GREY:
if (depth=-0)
{
t->COde - BLACK;
}
else
{
subdivided);
for (i-0; i<B: 1++)
make_treelp.t->oct[ i].depth-1):
}
break:
}
}
}
/* функция определения цвета узла дерева */
classify!...):
/* функция деления узла на восемь октантов */
subdivide!...);
Ячеечное представление
Ячеечное представление (cell representation) — это еще один метод представления
объемного тела в виде комбинации простых элементов, подобный вексельному
представлению. Однако, как следует из названия представления, ячеечный ме-
тод не накладывает жестких ограничений па форму этих элементов. Практиче-
ски любое объемное тело можно представить при помощи небольшого набора
простых ячеек. Пример ячеечного представления представлен на рис. 5.38. Как
видно из этого рисунка, формирование сетки конечных элементов для конечно-
элементного анализа является частным случаем ячеечного представления.
Рис. 5.38. Пример ячеечного представления
5.3.3. Операторы Эйлера
Обратимся теперь к задачам, связанным с изменением структур данных, исполь-
зуемых в системах твердотельного моделирования. Эти задачи имеют особую
важность, поскольку функции моделирования реализуются посредством слу-
жебных операций, обновляющих структуры данных.
5.3. Системы твердотельного моделирования
Поскольку большинство систем твердотельного моделирования основаны на
структуре данных B-Rep, мы рассмотрим операции, манипулирующие данными,
организованными именно в виде структуры B-Rep. Вы уже знаете, что в структу-
рах данных B-Rep хранятся такие топологические элементы, как оболочки, гра-
ни, кольца, ребра и вершины. Мы можем рассматривать операторы, работаюшие
с такими элементами, то есть операторы создания ребра, удаления вершины и т. д.
Если эти операторы использовать в реализации функций моделирования, сразу
возникнут проблемы.
Попытка рассматривать топологический элемент отдельно от тех элементов, с
которыми он связан, несет в себе внутреннее противоречие. К топологическим
элементам применимо приведенное ниже равенство, которое называется форму-
лой Эйлера—Пуанкаре [120, 23]:
v-e+f -h = 2(s-p), (5.1)
где v — количество вершин, е — количество ребер, f — количество граней или
внешних колец, h — количество колец отверстий, s — количество оболочек и р —
количество сквозных проходов через отверстия в теле. Можно проверить это
уравнение на фигуре, изображенной на рис. 5.39. Здесь v = 16,/= 10, h = 2, s = 1 и
р = 1 (посчитайте самостоятельно). Подставив эти значения в уравнение (5.1),
мы получим:
16-24 + 10-2=2(1-1).
то есть уравнение 5.1 оказывается верным. Из этого уравнения мы можем сде-
лать вывод, что шесть топологических элементов не могут быть независимы од-
новременно. Независимость обеспечивается лишь для пяти из них.
Манипулирование топологическими элементами по отдельности оказывается
малоэффективным, поскольку в большинстве случаев добавление или удаление
элемента приводит к изменению состояния других элементов. Например, добав-
ление диагонального ребра приводит к увеличению количества граней, посколь-
ку исходная грань делится на две (рис. 5.40). Для достижения эффективности
нужно иметь оператор, который самостоятельно заботился бы обо всех побоч-
ных эффектах этого рода.
Рис. 5.39. Пример объемного
тела
Рис. 5.40. Добавление ребра приводит
к изменению грани
Итак, было бы удобно иметь операторы, которые манипулировали бы небольши-
ми группами топологических элементов, а не каждым из них в отдельности. По-
скольку в формуле (5.1) одновременно являются независимыми пять элементов,
для увеличения или уменьшения количества любого из шести топологических
элементов из этого уравнения необходимо пять операторов. Таким образом, нам
нужно определить не более пяти операторов. Полезно было бы определить их
так, чтобы они одновременно изменяли такие элементы, которые часто меняются
вместе, когда конструктор варьирует форму тела. Предсказать, какая именно
группа топологических элементов будет изменяться наиболее часто, не так-то
просто. Однако операторы должны включать топологические элементы, которые
по меньшей мере удовлетворяют уравнению Эйлера—Пуанкаре. Например, нам
подошел бы оператор, создающий ребро и вершину, поскольку он позволяет уве-
личить количество ребер и вершин на единицу, сохраняя истинность уравне-
ния (5.1). Благодаря этому объемное тело, изначально являвшееся корректным,
гарантированно останется таковым после изменения его топологии. Операторы,
удовлетворяющие перечисленным выше требованиям, называются операторами
Эйлера (Euler operators'). Существует много разных наборов операторов Эйлера,
и в каждой системе твердотельного моделирования используется свой собствен-
ный набор. Изменение, показанное на рис. 5.41, — пример применения оператора
Эйлера, который называется Создать Ребро и Кольцо (Make and Edge and a
Loop — MEL). Этот оператор увеличивает число колец, соединяя две вершины од-
ного кольца новым ребром. Легко представить себе использование этого операто-
ра для деления грани на две части перед поднятием одной из этих частей. На
рис. 5.44 перечислены операторы Эйлера, часто используемые в этой книге.
MEWLS
(KEWLS)
Создать (уничтожить) ребро, две
вершины, кольцо, оболочку
MEL
(KEL)
Создать (уничтожить) ребро, кольцо
MEV
(KEV)
Создать (уничтожить) ребро, вершину
MVE
(KVE)
Создать (уничтожить) вершину, ребро
МЕКН
(КЕМН)
Создать (уничтожить) ребро,
уничтожить (создать) вершину
MZEV
(KZEV)
Создать (уничтожить) ребро нулевой
длины, вершину
МРКН
(КРМН)
Создать (уничтожить) внешнее кольцо,
уничтожить (создать) кольцо отверстия
Рис. 5.41. Операторы Эйлера
В приложении В мы перечислили операторы Эйлера, используемые в системе
твердотельного моделирования SINUMOD, и описали реализацию типичных
5.3. Системы твердотельного моделирования
ЛЧ/
функций моделирования. Список операторов практически совпадает с предло-
женным Чийокурой [35]. Подробное описание операторов Эйлера и их реализа-
ции можно найти в работах [106, 35].
5.3.4. Булевские операторы
Из всех функций моделирования булевские операторы являются наиболее
сложными с точки зрения реализации, однако они предоставляют наиболее ши-
рокие возможности пользователю системы моделирования. Как уже отмечалось,
к булевским операциям относятся объединение, пересечение и разность объем-
ных тел. Результат операции сохраняется в структуре данных, характерной для
используемой системы твердотельного моделирования. Если эта система основа-
на на дереве CSG или декомпозиционном представлении, результат булевской
операции легко будет представить в той же структуре. Дерево CSG результата
любой булевской операции получается простым комбинированием деревьев ис-
ходных тел при помощи соответствующей операции булевской алгебры. То же
относится и к декомпозиционной модели: там булевские операции применяют-
ся к пространственным элементам тел. Например, воксельное представление ре-
зультата булевской операции может быть получено применением соответствую-
щей операции (побитовой булевской операции) к значениям вокселов двух тел,
попадающих в одну и ту же точку пространства.
Если же система твердотельного моделирования использует структуру B-Rep,
ситуация оказывается принципиально иной. В этом случае структуру B-Rep ис-
ходного тела приходится вычислять по структурам B-Rep исходных тел, к кото-
рым применяется булевская операция. Этот процесс называется вычислением
границ (boundary evaluation).
Алгоритм вычисления границ был впервые предложен Реквичей и Велкером [132]
под названием процесс вычисления и слияния границ (boundary evaluation and
merging process) и впоследствии был усовершенствован Миллером [115]. Предла-
гаемый метод реализуется в три этапа. Для удобства иллюстрирования мы реши-
ли воспользоваться плоским рисунком (рис. 5.42), но тот же подход применим и
к трехмерным телам. Сначала обозначим две грани (два тела в трехмерном слу-
чае), к которым должна быть применена булевская операция, буквами А и Б,
а результат операции назовем буквой В (рис. 5.42, а). На первом этапе все ребра А
и Б, а также ребра, получаемые пересечением этих граней, помещаются в единый
пул ребер. Подмножеством пула ребер, очевидно, являются все ребра грани В.
На втором этапе все ребра пула классифицируются по их положению относи-
тельно граней А и Б. Любое ребро может находиться, во-первых, внутри, на гра-
нице или снаружи грани и, во-вторых, внутри, на границе или снаружи грани Б
(рис. 5.42, б). На третьем этапе ребра группируются по их относительному поло-
жению в соответствии с применяемой булевской операцией. Заметьте, что для
операции «А объединить с Б» нужно отбросить все ребра, находящиеся «внут-
ри А» и «внутри Б» (см. рис. 5.42, б). Аналогичным образом для операции «А пе-
ресечь с Б» отбрасываются ребра, лежащие «вне А» и «вне Б». Собранные ребра
формируют грань. Для этого в структуру заносятся все необходимые сведения
о вершинах, ребрах, кольцах и прочих элементах. Для объемных тел такой под-
Глава 5. Системы геометрического моделирования
эд требует серьезных геометрических вычислений, поскольку требуется опре-
щять, где именно находятся ребра, а конструирование структуры B-Rep полу-
лвшегося тела по собранным ребрам представляет сложную топологическую
дачу.
б
Рис. 5.42. Классификация ребер
гобы избежать указанных трудностей, Мянтюля [105] предложил алгоритм под
званием классификатор окрестностей вершин (vertex neighborhood classifier).
эгоритм Мянтюля работает с отдельными гранями, в отличие от алгоритма Ре-
ичи и Велкера. Гофман, Хопкрофт и Карасик [69] и Чийокура [35] также пред-
жили свои алгоритмы определения границ, основанные на рассмотрении ipa-
й. В приложении Г мы предлагаем алгоритм, используемый в SNUMOD,
торый также основан на подходе к отдельным граням.
.3.5. Расчет объемных параметров
ы уже отмечали, что одним из преимуществ объемной модели является воз-
г-.жность расчета объемных параметров тела непосредственно исходя из его ма-
матического описания. Первые системы твердотельного моделирования ис-
эльзовались главным образом для визуализации формы объекта, так что расчет
Съемных параметров был одной из немногих инженерных функций, поддержи-
(вшихся этими системами. К объемным параметрам объекта относятся его объ-
f. центр тяжести, моменты инерции и центробежные моменты инерции, кото-
>ie определяются следующим образом.
бьем:
V-fffdV.
рнтр тяжести: v
xe=^lfJxdV;
v v
2<=^tf!zdv-
y V
Моменты инерции:
Лт =JJJ(Z/2+z2)rfV;
V
= jfj(x2+z2idV;
V
1г2 = Щ(х2 + у2 )dV.
V
Центробежные моменты инерции:
V
=Ml/zdV;
V
Izr = jjjzxdV.
V
Символ jjj обозначает интеграл по объему интересующего нас объекта. Эти оп-
v
ределения станут определениями масс-инерционных свойств объекта, если
включить в них его плотность. Плотность включать не обязательно, если опа
одинакова по всему объему объекта: в этом случае масс-инерционные параметры
получаются из объемных умножением на постоянную плотность.
Значение любого объемного параметра может быть получено вычислением инте-
грала вида:
V=j[jF(x,y,z)dV. (5.2)
Для вексельного представления и представления октантного дерева интеграл по
объему сводится к обычному суммированию интегралов по отдельным вокселам
или октантам. Таким образом, необходимо лишь научиться вычислять объемный
интеграл от F(x, у, z) по одному вокселу или октанту. Поскольку эти объекты оп-
ределяются восемью вершинами, интеграл по их объему может быть переписан в
виде функции от координат вершин, а значение интеграла для любого воксела
или октанта после этого будет вычисляться подстановкой координат его вершин
в новую функцию. Значение объемного параметра для тела в целом после этого
может быть получено суммированием значений для отдельных вокселов или ок-
тантов при помощи теоремы о параллельной оси [42]. Это позволяет учесть рас-
стояние между началами координат локальной системы отдельного воксела и
глобальной системы. Если объект представлен в виде дерева CSG, выполняется
аналогичная процедура, заключающаяся в добавлении или вычитании объемных
интегралов по примитивам (в зависимости от выбранной булевской операции).
Если же объект представлен структурой B-Rep, вычислить объемный инте-
грал (5.2) оказывается ие так-то просто. Тиммер [153] предложил метод вычис-
ления объемного интеграла для объекта произвольной формы в представлении
B-Rep. Подход Тиммера выглядит следующим образом.
1. Объемный интеграл из формулы (5.2) преобразуется к поверхностному интегралу
по граничной поверхности по теореме Гаусса. Теорема Гаусса выражается так [93]:
|JJ(V<D)dV = Д(Фп)<&, (5.3)
Глава 5. Системы геометрического моделирования
где V — оператор градиента, раскрывающийся в виде
д .
— ।
дх
д . д
-J+--
оу OZ
к
J — поверхностный интеграл по граничной поверхности объема V, а п — век-
s
тор внешней нормали в точке бесконечно малого участка ds поверхности S.
Вообще говоря, п есть функция от х, у и г, поскольку этот вектор меняется
при переходе от одного бесконечно малого объема к другому в процессе вы-
числения поверхностного интеграла. Подробные сведения о теореме Гаусса
вы можете найти в учебниках по интегральному исчислению [93] и [68].
Применение теоремы Гаусса позволяет преобразовать объемный инте-
грал (5.2) к поверхностному, подставив функцию Ф(х, у, г), удовлетворяю-
щую уравнению V - Ф = Г(х,у,2)в правую часть уравнения (5.3). Затем мы по-
лучаем возможность раскрыть (5.3) в
V = [[G(x,y,z)ds, (5.4)
где G(x, у, г) — функция координат, полученная перемножением Ф • п.
Существует множество способов выбрать Ф(г, у, г) и, соответственно, множе-
ство вариантов G(x, у, г). Хотя эту функцию можно выбирать достаточно про-
извольной, рекомендуется все же пользоваться простыми по форме выраже-
ниями.
2. Граничная поверхность 5 из формулы (5.4) может рассматриваться как набор
।раней объекта 5,. Поэтому интеграл по всей поверхности преобразуется в
сумму по отдельным граням:
JjG(*,z/,z)ds (5-5)
5 r=l
где \|ij = jjG(x,y,z)ds, an — количество граней.
5,
3. Каждый из поверхностных интегралов \|/, в формуле (5.5) может быть преоб-
разован в двойной интеграл по области изменения параметров, определяю-
щих уравнение поверхности грани 5,. Если быть более точным, двойной
интеграл запишется так, как показано ниже, при условии, что уравнение по-
верхности для грани S, имеет вид Р(и, v) = х(и, n)i + у(и, r)j + z(u, p)k*.
V, = JJ G\x(u,v), y(u,v), z(u,ti)]| J| dudv, (5.6)
r,
где Rj — конечная область плоскости uv, соответствующая 5„ a | J | — это яко-
биан. Якобиан компенсирует разницу между бесконечно малым участком ds
и бесконечно малой областью параметрического пространства dudv. Опреде-
ляется якобиан так:
dP(u,v) * dP(u,v)
ди dv
(5.7)
Различные формы P(u,v) для разных поверхностей рассматриваются в главе 7.
5.3. Системы твердотельного моделирования
Подынтегральное выражение в формуле (5.6) может быть представлено в
виде функции Н(и, v) от переменных и и v заменой правой части уравне-
ния (5.7) для | J|. Тогда из уравнения (5.6) получим1:
V, = H(u,v)dudv. (5.8)
я,
Если область R, представляет собой квадрат, описываемый неравенствами
О < и <1 и 0 < v <1, то двойной интеграл в уравнении (5.8) можно оценить чис-
ленно при помощи квадратуры Гаусса:
V, = J H(u,v)dudv = £ ^w^jHiu^Vj ). (5.9)
я, '=’
Как видно из формулы (5.9), квадратура Гаусса может использоваться для
оценки интеграла путем выборки некоторых значений, присваивания им
весов и суммирования с учетом этих весов. Точность результата, таким обра-
зом, зависит от размеров выборок п и т, а также от значений параметров. Ре-
комендуемые значения и и v, а также веса для конкретных значений тип
приведены в табл. 5.2. Другие значения п и т требуют использования других
групп. Квадратура Гаусса может использоваться только для интегралов, диа-
пазон значений которых лежит в интервале от 0 до 1.
Таблица 5.2. Значения параметров и веса для квадратуры Гаусса
i,j Wt т, vt
п,т = 2
1 0,500 000 000 0,211 324 865
2 0,500 000 000 0,788 675 135
п, т = 3
1 0,277 777 778 0,112 701 665
2 0,444 444 444 0,500 000 000
3 0,277 777 778 0,887 298 335
п, т = 4
1 0,173 927 423 0,069 431 844
2 0,326 072 577 0,330 009 478
3 0,326 072 577 0,669 990 522
4 0,173 927 423 0,930 568 156
п, т = 5
1 0,118 463 443 0,046 910 077
2 0,239 314 335 0,230 765 345
3 0,284 444 444 0,500 000 000
1 Поскольку площади выражаются через двойные интегралы, подход, использованный для
вычисления выражения (5.8), может использоваться и для расчета поверхностных
свойств.
ЬЛ Глава 5. Системы геометрического моделирования
J Wj Wf, Vi
4 0,239 314 335 0,769 234 655
5 0,118 463 443 0,953 089 923
п, т = 6
1 0,085 662 246 0,033 765 243
2 0,180 380 787 0,169 395 307
3 0,233 956 967 0,380 690 407
4 0,233 956 967 0,619 309 593
5 0,180 380 787 0,830 604 693
6 0,085 662 246 0,966 234 757
Грань Si не всегда отображается на квадрат. У этой грани может быть более
четырех криволинейных границ и множество внутренних отверстий. Область
общего вида, на которой вычисляется двойной интеграл (5.8), может выгля-
деть так, как показано на рис. 5.43. Двойной интеграл на области неправиль-
ной формы нельзя вычислять методом квадратуры Гаусса. Однако его можно
преобразовать в контурный интеграл вдоль 1раниц области неправильной
формы по теореме Грина:
да (и, v)
У ди
d$(u,v)
dv
dudv = |[P(iz,r)r/u + a(u,v) dv},
(5.10)
где под символом | понимается контурный интеграл по замкнутой границе
области Rj. Для многосвязной области, подобной изображенной на рис. 5.43,
интеграл распадается на сумму контурных интегралов по внешней границе и
внутренним границам. Направление внутренней границы, обозначаемое C((t),
противоположно направлению внешней границы C2(t), чтобы интеграл по
контуру С\ автоматически вычитался при суммировании.
Рис. 5.43. Неправильная область для двойного интеграла
Чтобы воспользоваться формулой (5.10), нам нужно определить a(u,v) и
₽(Ы.Ц), удовлетворяющие уравнению
Н(и V) = _ аР<ц’6')
ди dv
(5.И)
5.4. Немногообразные системы моделирования
Существует множество комбинаций а {и, v) и Р(г/,г), удовлетворяющих урав-
нению (5.11). Один из простейших наборов а (и,») и ft (и, и) можно получить,
положив P(w,a) = 0:
= (5.12)
ди
Однако нелегко получить Н(и, о) и а(п,п) в явном виде, если уравнение по-
верхности S, задано в такой форме, которую нелегко раскрыть, например в
виде уравнения В-сплайна. Тиммер обошел эту проблему, приблизив Н(и, о)
полиномом от и и v по численным значениям Н(и, v). Тогда эта функция мо-
жет быть выражена следующим образом:
мм
H(u,v) = ^^aiju'vJ. (5.13)
i=0 ;=о
Подстановка (5.13) в (5.12) дает следующее выражение:
ММ]
a(w,n) = ££T-!-o,>w,+lnJ. (5.14)
i=0 ; =0 i + 1
Отсюда формулу (5.8) можно раскрыть в форме
у, = §a(u,v)dv. (5.15)
5. Контурный интеграл по замкнутой границе может быть разложен в сумму
интегралов по каждому из сегментов кривой. Следовательно, уравнение мож-
но переписать в виде
у,,= 22 $a(u,v)dv, (5.16)
где £ — интеграл по сегменту криволинейной границы, взятый в направлении
обхода всей границы (см. шаг 4), а 22 — суммирование по всем сегментам
/=1
границы.
Любой сегмент криволинейной границы области uv может быть задан приве-
денным ниже параметрическим уравнением1:
и = u(t), v = v(t), 0<t<l. (5.17)
Подставляя (5.17) в (5.16), получим
V, =£(5-18)
ы о dt
где каждый интеграл, стоящий под знаком суммирования, может быть взят
точно по уравнению кривой каждого из сегментов или приближенно при по-
мощи квадратуры Гаусса.
5.4. Немногообразные системы моделирования
В предыдущем разделе мы отмечали, что системы твердотельного моделирова-
ния позволяют пользователю создавать тела с замкнутым обт«емом, то есть, говоря
математическим языком, тела, представляющие собой многообразия (manifold).
1 Параметрические уравнения различных кривых рассматриваются в главе 6.
। лава э. системы геометрического моделирования
(ругими словами, такие системы запрещают создание структур, не являющихся
[ногообразиями. Нарушениями условия многообразности являются, например,
:асание двух поверхностей в одной точке, касание двух поверхностей вдоль от-
крытой или замкнутой кривой, два замкнутых объема с общей гранью, ребром
гли вершиной, ребро, выступающее из точки на поверхности, а также поверхно-
ти, образующие структуры типа сот (рис. 5.44).
Троясним различие между моделями, являющимися многообразиями, и моде-
[ями, не являющимися таковыми. В многообразии каждая точка на поверхности
[вляется двумерной, то есть ее окрестность гомоморфна двумерному дис-
у [156]. Другими словами, хотя поверхность существует в трехмерном про-
транстве, с топологической точки зрения она является плоской, если рассмат-
ивать достаточно малый ее участок в окрестности любой заданной точки.
1сторически все системы твердотельного моделирования с представлением
i-Rep работали только с многообразиями [11, 12, 23, 47]. В модели, не являю-
щейся многообразием, окрестность некоторой точки на поверхности не обязана
ыть плоской. Точка может быть пересечением двух и более топологически пло-
ких поверхностей (Vb V2 и V4 на рис. 5.44, а, б и г) или плоской поверхности
: одномерной кривой (V3 на рис. 5.44, в).
V4
г
Рис. 5.44. Модели, не являющиеся многообразиями
вас может возникнуть вопрос, зачем создавать модели, не являющиеся много-
>разиями, подобно изображенным на рис. 5.44. Запрет на создание немногооб-
1зных моделей считался одним из достоинств систем твердотельного моделиро-
емногоооразные системы модел риван я
вания, поскольку благодаря этому любую созданную в такой системе модель
можно было бы изготовить. Если же вы хотите работать с системой геометриче-
ского моделирования на протяжении всего процесса разработки, это достоинство
оборачивается другой стороной. Конструктор, которому нужен пластиковый
контейнер, мог бы начать с модели, подобной рис. 5.44, г, не вводя заранее дан-
ных о толщине стенок контейнера. А геометрическая модель, показанная на
рис. 5.44, в, могла бы стать естественным началом для структуры, состоящей из
объемного блока и пластины, прицепленной к нему жгутом.
Абстрактная модель со смешением измерений удобна тем, что она не стесняет
творческую мысль конструктора. Модель со смешанными измерениями может
содержать свободные ребра, слоистые поверхности и объемы. Абстрактная мо-
дель полезна также тем, что она может служить основой для проведения ана-
лиза. На каждом этапе процесса проектирования могут применяться свои анали-
тические средства. Например, если нам нужно провести анализ компонента
методом конечных элементов, мы будем формировать сетку элементов на базе
абстрактной модели, подобной изображенной на рис. 5.44, г, а не из объемной
модели, стенки которой имеют нужную толщину. Немногообразные модели не-
заменимы как этап развития проекта от неполного описания на низких уровнях
до готового объемного тела.
К сожалению, обычные системы геометрического моделирования (каркасные,
поверхностные и твердотельные) не поддерживают представление немногооб-
разных моделей, показанных на рис. 5.44. Большинство абстрактных моделей,
появляющихся на промежуточных стадиях процесса разработки, состоят из сме-
си одномерных, двумерных и трехмерных элементов (рис. 5.44, е) или только из
элементов пониженной размерности (рис. 5.44, г). Поэтому существует потреб-
ность в системе моделирования, которая имела бы схему представления, способ-
ную осуществлять переходы между одномерными, двумерными и трехмерными
геометрическими элементами. Такие системы моделирования называются не-
многообразными (nonmanifold. modeling systems). Они позволяют использовать
каркасные, поверхностные, твердотельные и сотовые модели одновременно в од-
ной и той же среде моделирования, расширяя диапазон доступных моделей
сверх возможностей любой из упомянутых систем. Кроме того, появляется воз-
можность проводить анализ, например, методом конечных элементов, непосред-
ственно на исходном представлении модели, что позволяет автоматизировать
обратную связь между этапами проектирования и анализа, которая в настоящий
момент реализуется конструктором самостоятельно.
В процессе разработки немногообразной системы моделирования, точно так же,
как и любой другой, встает задача выбора структуры данных и реализации one-,
раторов для работы с элементами структуры. Затем разрабатываются команды
моделирования более высоких уровней. Они реализуются как последователь-
ность операторов, подобно тому как в системах твердотельного моделирования
функции моделирования реализовывались через операторы Эйлера. Команды
моделирования высших уровней в немногообразных системах кажутся похожи-
ми на аналогичные команды систем твердотельного моделирования, несмотря на
то, что реализуются они через совершенно другие операторы. В приложении Д
мы кратко расска м о структуре данных для хранения границ немногообразной
модели и об операюрах, позволяющих работать с этой структурой.
эо Глава 5. Системы геометрического моделирования
5.5. Системы моделирования устройств
Системы геометрического моделирования (каркасные, поверхностные и твердо-
тельные) всегда использовались главным образом для разработки и моделиро-
вания отдельных деталей, а не устройств, состоящих из множества деталей. До
недавнего времени конструкторы проектировали детали поодиночке, а затем со-
бирали их вместе на этапе разработки, проверяя, подходят ли они друг к другу и
выполняют ли заданные функции. Такой подход был пригоден для небольших
команд, работавших с простыми устройствами. Однако он неприемлем в том
случае, когда проект ведется несколькими командами, разбросанными по всему
миру, а разрабатываемый агрегат должен быть достаточно сложным.
Конструктор может изменить конфигурацию компонента и забыть сказать об
этом другим или забыть внести изменения в другие компоненты, зависимые от
измененного. Много времени уходит на отслеживание проектов деталей, их со-
пряжения друг с другом, изменений, спецификаций, результатов тестирования
и других важных сведений, гарантирующих то, что отдельные части проекта со-
стыкуются друг с другом. Это отслеживание приходится осуществлять вручную.
В начале 1990-х гг. растущая потребность в совместном проектировании стала
главной движущей силой в разработке систем моделирования устройств. Эти
системы аккуратно отслеживают детали и их связь друг с другом, чтобы конст-
рукторы могли работать со своими деталями в контексте всех прочих частей уст-
ройства.
По всей видимости, наиболее широко системы моделирования устройств исполь-
зуются в автомобильной и авиационно-космической промышленностях. Здесь
требуется координация усилий не только конструкторов, но и поставщиков вто-
рого и третьего ярусов.
5.5.1. Базовые функции моделирования агрегатов
Системы моделирования агрегатов предоставляют логическую структуру для
группировки и организации деталей в устройства и узлы. Структура позволяет
конструктору идентифицировать отдельные детали, следить за сведениями о них,
а также поддерживать взаимосвязь между деталями и узлами. Данные о связях,
поддерживаемые системами моделирования, включают довольно широкий диа-
пазон сведений о детали и ее взаимодействии с другими деталями агрегата. Наи-
более важной составляющей этих данных являются условия соединения. Усло-
вия соединения определяют способы соединения детали с другими (например,
две плоские поверхности деталей могут касаться друг друга, или две цилиндри-
ческие поверхности могут располагаться на одной оси). Информация об экземп-
лярах содержит сведения о том, в каких местах агрегата используется одна и та
же деталь. Экземпляр — удобная концепция для описания стандартных деталей,
в частности крепежных, поскольку она позволяет сохранить один раз параметры
деталей, а затем использовать их сколько угодно. Данные о посадке, положении
и ориентации определяют способы соединения деталей в устройство и часто
включают в себя сведения о допусках. Положение и ориентация во многих сис-
темах могут быть получены из условий соединения деталей.
Системы моделирования агрегатов предоставляют возможность создавать пара-
метрические ограничивающие отношения между деталями, измерять размеры
ь.ь. системы моделирования устройств ----
одной детали и применять их к другой, освобождая пользователя от необходимо-
сти вводить данные повторно в тех случаях, когда детали касаются друг друга.
Ограничительные отношения между деталями полезны в тех случаях, когда мно-
жество размеров деталей устройства определяется несколькими ключевыми. По-
сле указания всех соотношений конструктору достаточно будет изменить только
ключевые размеры, а обо всех остальных система позаботится сама. Сюда же от-
носится возможность распространения изменений (например, если изменяется
диаметр вала, то меняется и размер отверстия, в которое должен входить этот
вал). Все это экономит время конструктора, поскольку избавляет его от необхо-
димости заниматься контролем всех деталей агрегата при изменении некоторых
его составляющих. Пример распространения изменений в размерах одной дета-
ли в системе Pro/Engineer иллюстрирует рис. 5.45.
б
Рис. 5.45. Распространение изменений в системе моделирования устройств:
а — устройстао до изменения; б — соотношения между размерами деталей,
заданные конструктором; в — устройство после изменения
Итак, системы моделирования агрегатов позволяют конструктору создавать и
изменять глобальные ограничения на детали устройства, определять положение
и движение деталей друг относительно друга. Ограничения на устройство в це-
лом отражают намерения конструктора. К ним относятся размеры деталей, их
положение, совмещение, условия соединения и рабочие параметры. Примерами
рабочих параметров являются расстояние, на которое может переместиться де-
таль относительно соединенных с ней деталей, угол, на который она может по-
вернуться, или расстояние, на которое может продвинуться штифт в отверстии.
5.5.2. Просмотр агрегата
Все системы моделирования агрегатов включают в себя какое-либо средство
просмотра, позволяющее пользователю находить нужные детали, определять их
отношения друг с другом и обращаться к их моделям, чертежам и характеристи-
кам. Средство просмотра отображает детали и модули в виде дерева, уровни ко-
торого отвечают различным уровням детализации. Дерево агрегата, созданного в
системе Pro/Engineer, показано на рис. 5.46. Как видно из этого рисунка, средст-
ва просмотра помогают пользователям находить детали, отображая их чертежи
рядом с окном просмотра списка деталей. Щелчок на детали в списке мгновенно
открывает ее чертеж, и наоборот: щелчок на детали на чертеже выделяет ее в
списке.
pi engineasm
BLOCKPRT
; CRANKCASE} МТ
: —Л CRANKCASE2 PRT
( h^^FP1S_CRANKASM
—5 CRANK. PRT
ф—£ PISTONASM
--Jj P.ISTON.PRT
—2> CONROD PRT
—2» CAP PRT
—Л PIN PRT
—Л BOLT PRT
U-5 BOLT PRT
PISTON ASM
IP-J PISTON ASM
PISTON ASM
I H—2$ HEADASY.ASM
2> HEAD PRT
—_5DHEADCOVER PRT
—2j CAMSHAFTPRT
—Л CAMSHAFT.PRT’
—.2,° VALVE PRT
—2/ VALVE PET
—2> VALVE PRT
—2/ VALVEPRT
— 5 VALVEPRT
— 2> VALVE PRT
— 2/ VALVEPRT
---Л VALVE PRT
—В ENGINESIDE. ASM
— 2> SIDECOVER PRT
— 2> TIMINGEAR.PRT
— 2» TENSIONER} PRT
— 2j SMALTIM1NG PRT
— b TENS10NERPRT
: —2/ SMALTIMJNG.PRT
—2> TENS1ONERPRT
Рис. 5.46. Дерево агрегата
5.5.3. Возможности совместного проектирования
Системы моделирования агрегатов практически незаменимы для групп, зани-
мающихся разработкой продуктов, состоящих из множества частей. Эти системы
обладают возможностями для эффективного управления одновременным досту-
пом пользователей к агрегату. В некоторых системах автоматизированного проек-
тирования имеются процедуры контроля, отслеживающие работу конструкторов с
деталями. Эти процедуры не позволяют двоим пользователям одновременно ра-
ботать с одной и той же деталью. Системы моделирования агрегатов помимо это-
го предоставляют возможность собирать детали в цельное устройство и выпол-
нять различного рода аналитические действия с этим устройством, например
проводить анализ кинематики или анализ методом конечных элементов.
Когда множество людей одновременно работают с одним и тем же агрегатом,
распространение изменений в деталях без нарушения работы других конструк-
торов становится непростой задачей. Большинству пользователей не нравится,
что их экран мигает каждый раз, когда их коллеги сохраняют свои изменения.
Одним из способов решения этой проблемы является передача несущественных
изменений в выделенные моменты времени, а также по запросам пользователей
на обновление конфигурации. Однако серьезные изменения в соединяющихся
деталях должны распространяться немедленно, поскольку они могут влиять на
детали, с которыми работают другие конструкторы.
5.5.4. Использование моделей агрегатов
Модели, создаваемые в системах моделирования агрегатов, могут использовать-
ся для эффективной разработки продукта. Большинство систем моделирования
агрегатов дают пользователям возможность измерять отдельные детали агрегата
и переносить размеры на другие детали. Другое полезное применение такой сис-
темы — построение деталированного изображения по модели агрегата. Детали-
рованные изображения хороши тем, что они ясно показывают физическую связь
между всеми деталями сложных устройств (рис. 5.47). Особенно они полезны в
качестве иллюстраций к инструкциям по сборке устройств.
Рис. 5.47.Деталированное изображение
Изображения с цветной визуализацией позволяют реалистично показать, как
выглядит агрегат из тысяч деталей. Пользователи могут не только рассматривать
сложные агрегаты, но и выполнять контроль столкновений, анализ кинематики
и другие действия. Цифровая модель позволяет прогуляться по модели в вирту-
альной реальности1, посмотреть, как она работает, и убедиться, что все детали
взаимодействуют так, как планировалось.
Системы моделирования агрегатов облегчают формирование списков материа-
лов (bill-of-materials — BOM), в которых перечисляются все материалы и детали,
подлежащие закупке. Такой список легко построить, просмотрев структуру агре-
гата и объединив сведения обо всех деталях.
5.5.5. Упрощение агрегатов
Большинство систем геометрического моделирования со стандартными возмож-
ностями моделирования агрегатов легко справляются с устройствами, состоящи-
ми из сотен деталей. Затруднения возникают при обработке больших агрегатов
с многими тысячами деталей. Производительность системы зависит также от
сложности деталей и узлов. Примером особенности, влияющей на производи-
тельность, является поверхность сопряжения. Большое количество деталей и их
сложная форма способны поглотить вычислительные возможности любой систе-
мы, снизить производительность системы моделирования и затруднить поиск
информации. Поэтому во многих системах предусмотрены функции упрощения
сложных агрегатов для облегчения работы с ними.
Одним из методов является использование экземпляров, о чем уже говорилось
выше. Использование экземпляров значительно упрощает агрегаты, поскольку
системе приходится моделировать стандартную деталь только один раз, после
чего достаточно лишь задать положения экземпляров этой детали. Экземпляры
реализуются на базе единого определения, включающего в себя геометрическую
модель детали и все необходимые сведения о ней. Такой подход, очевидно, уст-
раняет необходимость моделировать деталь, используемую в нескольких местах.
Кроме того, экземпляры легко изменять, поскольку изменения достаточно вне-
сти один раз.
Другим методом является укрупнение, или интеграция (agglomeration), то есть
группировка всех деталей или отдельных узлов в одно целое. При этом исчезают
все внутренние особенности узлов, а сохраняются только внешние. Если пользо-
вателю нужна лишь внешняя форма, это значительно упрощает работу с моде-
лью. Укрупнение применяется для повышения производительности динамиче-
ского отображения агрегатов.
Сложность модели может быть снижена методом игнорирования особенностей
деталей в тех случаях, когда они не важны. Однако эти детали постоянно сохра-
няются как часть геометрической модели. При построении изображения мелкие
детали, невидимые с заданного расстояния, просто отбрасываются. При анализе
методом конечных элементов или при кинематическом анализе можно игнори-
ровать мелкие детали типа небольших отверстий и закруглений. Допускается и
зональное отключение детализации. При этом пользователь может разделить
Рассказ о виртуальной реальности пойдет в главе 13.
модель на геометрические блоки и работать с одним из них, не тратя вычисли-
тельные ресурсы на обработку деталей в других блоках. Модель может быть по-
делена на блоки не только геометрически, но и функционально: механическую,
электрическую и гидравлическую подсистемы можно обрабатывать раздельно,
чтобы не иметь дела с данными, не нужными в конкретный момент пользователю.
f
5.6. Моделирование для Web
Производители систем CAD/CAM/CAE уверенно продвигаются в направле-
нии интеграции своих систем с Интернетом. Встроенные возможности работы с
Интернетом уже начинают появляться в таких системах. Используя Интернет в
качестве расширения системы геометрического моделирования, команда, рабо-
тающая над проектом, может при помощи браузеров и подключаемых модулей
просматривать модели и работать с ними уже на ранних стадиях процесса разра-
ботки.
Одним из способов распространения геометрических данных в Сети является
сохранение их на веб-странице в формате, доступном для чтения браузеру.
Пользователь, у которого есть браузер, введет в строке адреса универсальный
локатор ресурса вашей страницы (ее URL) и увидит изображение геометриче-
ской модели. Это называется ее публикацией (publishing).
Производители систем геометрического моделирования поддерживают публика-
цию, включая в свои системы возможность экспорта геометрических данных в
форматах, доступных для чтения браузерами. Одним из таких форматов являет-
ся язык описания виртуальной реальности {Virtual Reality Modeling Language —
VRML), поддерживаемый стандартными браузерами. Можно сохранить данные и
в форматах типа Computer Graphics Metafile (CGM) или Drawing Web Format
(DWF) фирмы Autodesk, что потребует от пользователя установки специально-
го подключаемого модуля для браузера.
VRML — стандартный формат для описания трехмерных графических структур,
тогда как CGM и DWF являются двумерными форматами. Хотя VRML имеет
некоторые ограничения, в частности низкую точность и большие размеры фай-
лов, большинство производителей решили поддержать возможность сохранения
в формате VRML, поскольку этот формат является трехмерным. Некоторые по-
шли еще дальше, предоставив пользователям средства для встраивания VRML в
веб-страницу с текстом и гиперссылками. Файлы VRML, так же как и гипертек-
стовые файлы, могут содержать ссылки на любую информацию в Сети, в том
числе и на другие VRML-файлы. Пользователь, просматривающий такой файл,
видит перед собой объемную модель трехмерного тела. Ссылки на URL иденти-
фицируются по изменению положения курсора, точно так же, как и при работе с
обычными веб-страницами. Щелчок мыши на ссылке приводит к загрузке фай-
ла, на который она указывает. Например, щелкая на разных частях модели, поль-
зователь может открывать окна с информацией, предоставленной другими чле-
нами команды. Щелкнув в углу картинки, пользователь увидит технические
характеристики модели и узнает, что о ней думают его коллеги. Еще одна гипер-
ссылка может указывать на каталог деталей, руководство по стандартам или
даже на адрес электронной почты руководителя проекта.
in nd э.—истемьгтеометрического моделирования
Вопросы и задачи
1. Каковы два основных способа применения систем геометрического моделиро-
вания в жизненном цикле продукта?
2. Каков главный недостаток системы твердотельного моделирования по срав-
нению с системой поверхностного моделирования (с точки зрения большин-
ства пользователей)?
3. Перечислите методы твердотельного моделирования, используемые для соз-
дания объемных объектов через определение замкнутых плоских фигур.
4. Приведите примеры создания некорректных объемных тел в результате бу-
левских операций.
5. На что следует обращать внимание при выполнении поднятия части грани
объекта?
6. Предположим, что вы можете пользоваться функциями моделирования из раз-
дела 5.3.1. Какие из них вы бы выбрали для того, чтобы получить изображен-
ные на следующем рисунке модели? (Колесный диск разработав Zetec Ltd.
в системе SolidWorks для фирмы NZ Wheels International.) Вспомните, что
один и тот же объект можно получить множеством способов.
7. Каково главное преимущество использования технологических элементов при
моделировании в системе, которая поддерживает эту возможность?
8. Опишите преимущества параметрического моделирования в тех случаях, ко-
гда форма детали задается в виде геометрических ограничений или соотноше-
ний между размерами.
9. Опишите преимущества и недостатки дерева CSG как представления объекта.
10. Одним из методов реализации граничного представления является сохране-
ние списка ребер для каждой грани. Если в грани есть отверстие, каким обра-
зом можно включить его ребра в этот список?
И. Перечислите преимущества и недостатки вексельного представления.
12. Объясните, почему представление октантного дерева требует меньше памяти,
чем вексельное, при том же разрешении.
13. Вычислите заштрихованную площадь на приведенном ниже рисунке.
1.5
3
вопросы и задачи
ГОД
Площадь может быть рассчитана по формуле
А = Г4 [3 г3 dr dO.
Jo J 1.5
1) Вычислите интеграл в квадратурах Гаусса, сделав три выборки по каждой
переменной.
2) Вычислите точное значение интеграла и сравните результаты.
14. Опишите преимущества немногообразных систем моделирования перед
обычными системами твердотельного моделирования.
15. Постройте модели объектов и рассчитайте положения их центров тяжести
в системе твердотельного моделирования.
16. Нужно сварить две трубы, как показано на рисунке ниже. Диаметры труб
одинаковы: 7,6 см. Площадь эллипса в точке сопряжения должна лежать в
диапазоне 65±6 см2, чтобы предотвратить большое падение давления потока.
Какой угол 0 и какая длина шва (периметр эллипса) могут удовлетворить по-
ставленному условию? Решите эту задачу в интерактивном режиме в системе
поверхностного или твердотельного моделирования.
Глава 6
Представление кривых и работа с ними
Для каждого криволинейного ребра в компьютере хранится либо уравнение кри-
вой, либо эквивалентные характеристические параметры1 (см. раздел 5.3.2). Эти
сведения важны как для систем автоматизированной разработки чертежей, так
и для систем объемного моделирования. Мы уже показывали, что расчет точек
пересечения кривых необходим для определения границ ксегментпов2 при приме-
нении булевских операций, описанных в приложении Г. Границы ксегмента по-
лучаются путем вычисления точек пересечения кривой, ограничивающей пере-
секающиеся поверхности, с кривой, по которой пересекаются эти поверхности
(относящиеся к разным телам). После получения границ ксегмента нужно сде-
лать еще один шаг, чтобы разделить кривую пересечения в точках пересечения.
Аналогичная процедура выполняется при создании и модифицировании кривых
в системах автоматизированной разработки чертежей и системах поверхностного
моделирования. В этой главе мы кратко рассмотрим различные методы представле-
ния уравнений кривых и методы работы с ними. В частности, мы изучим методы
обработки пересечений и объединений кривых. Более подробные сведения на тему
этой главы можно найти в книгах по аналитической геометрии [49, 48, 72, 21].
6.1. Типы уравнений
Уравнения кривых могут быть разделены на два основных типа. К первому типу
относятся параметрические уравнения, описывающие связь координат х, у и z
точки кривой с параметром. Ко второму типу относятся непараметрические
уравнения, связывающие координаты х, у и z некоторой функцией. Проще всего
продемонстрировать различие между ними на примере. Рассмотрим окружность
радиуса R, расположенную в начале системы координат. Если окружность лежит
в плоскости ху, ее параметрическое уравнение может быть, например, таким:
д'-Я cos О, г/= AsinO, z=0 (0<0<2л). (6.1)
Ту же окружность можно описать уравнением и без параметра 0:
х2 + у2 -R2 =0, z=0 (6.2)
или
y=+ylR2 -X2, 2=0. (6.3)
Центр, радиус и вектор нормали к плоскости, в которой лежит окружность, — примеры
характеристических параметров, эквивалентных уравнению окружности.
Ксегментом называется часть кривой, по которой пересекаются две грани, относящиеся к
разным объемным телам. Ксегмент принадлежит обеим граням.
Уравнение (6.2) задает окружность в неявной непараметрической форме, а урав-
нение (6.3) — в явной непараметрической форме.
У каждого типа уравнении, примеры которых приведены выше, есть свои пре-
имущества и недостатки, определяющие удобство их применения для различных
целей. Мы сосредоточим внимание на применении уравнений к отображению
кривых, поскольку интерактивная графика является одной из важнейших функ-
ций САПР. Кривая, отображаемая на экране, в действительности представляет
собой набор коротких отрезков. Поэтому постоянно возникает необходимость
вычислять координаты точек кривой, находящихся на равном расстоянии друг
от друга. Это называется вычислением кривой (curve evaluation). Можно ожидать,
что точки окружности, заданной уравнением (6.1), могут быть получены подста-
новкой последовательных значений параметра, отличающихся друг от друга на
небольшую величину. При использовании уравнения (6.2), однако, мы не знаем,
какую переменную следует выбрать в качестве независимой и последовательно
увеличивать от точки к точке. Даже если мы выберем независимую переменную,
для каждого ее значения мы будем получать два значения зависимой перемен-
ной. Это означает, что нам придется выбирать одну из них таким образом, чтобы
она располагалась по соседству с предыдущей найденной нами точкой. Уравне-
ние (6.3) обладает тем же недостатком, несмотря на то, что в нем независимая
переменная уже выделена.
Из-за перечисленных недостатков непараметрического представления в систе-
мах автоматизированного проектирования чаще всего используются параметри-
ческие уравнения кривых и поверхностей1, поэтому в данной главе мы будем об-
суждать только их.
6.2. Конические сечения
Кривые или части кривых, получаемые сечением конуса плоскостью, называют-
ся коническими сечениями (conic sections). В зависимости от положения и ориен-
тации секущей плоскости по отношению к конусу кривая сечения может быть
окружностью, эллипсом, параболой или гиперболой. В большинстве случаев
профили деталей могут быть представлены в виде конических сечений, посколь-
ку детали машин чаще всего обладают осевой симметрией.
6.2.1. Окружность и дуга окружности
Окружность или дуга окружности, лежащие в плоскости ху, с заданным радиу-
сом R и координатами центра Хс, Yr могут быть представлены уравнениями
х = ftcosO + Xj (6 4)
у = RsinG + Yc.
1 В некоторых случаях точки пересечения кривых удобно искать, если одна из кривых за-
дана в параметрической форме, а другая — в непараметрической. Поэтому в отдельных
системах используется преобразование уравнений из параметрической формы в непара-
метрическую и обратно. Это преобразование рассматривается в книге [69J.
Как уже отмечалось, вычисление кривой может выполняться путем последо-
отельной подстановки в уравнение значений 0 с шагом АО. Значение 0 может
достигать 2л для полной окружности или меньшего числа для дуги окружности.
Значение Д0 должно быть подобрано таким образом, чтобы вычисление было
достаточно быстрым, но окружность не получилась бы похожей на многоуголь-
ник. Уравнение окружности, лежащей в другой плоскости, может быть получено
применением матриц преобразования к уравнению (6.4). Матрицы преобразова-
ния рассматриваются в разделе 3.7.
Пример 6.1
Окружность единичного радиуса с центром в точке (0, 1, 1) лежит в плоскости
yz, как показано на рисунке1. Выведите параметрическое уравнение этой окруж-
<ости, применив соответствующие матрицы преобразований к уравнению (6.4).
Решение
Исходная единичная окружность, лежащая в плоскости ху, изображена на ри-
унке пунктиром, а интересующая нас окружность — сплошной линией. Сплош-
ная окружность получается из пунктирной поворотом на угол -90° вокруг оси у
г последующей трансляцией на 1 в направлениях у и z. Обозначим координаты
точек сплошной окружности буквами х", у' и г’, а координаты точек пунктирной
экружности буквами х, у и г. Тогда преобразования запишутся следующим образом:
Отсюда
х' =0;
у' = у + 1 = Rsin0 + 1;
z’ = х + 1 = Rcos0 + 1 (О<0<2л).
Уравнение этой кривой может храниться в памяти в виде характеристических парамет-
ров, таких как вектор нормали (1, 0. 0), координаты центра (0, 1, 1) и радиус 1. Как уже
отмечалось, задание этих параметров эквивалентно написанию уравнения.
6.2.2. Эллипс и эллиптическая дуга
Эллипс, как и окружность, может быть задан параметрическим уравнением. За-
пишем такое уравнение для эллипса, лежащего в плоскости ху, с центром в начале
координат. Положим, что большая ось эллипса направлена вдоль оси х и имеет
длину а, а малая ось направлена вдоль оси у и имеет длину Ь. Параметрическое
уравнение эллипса будет таким:
х = acos0;
у = fcsinO; (6.5)
z = 0.
Диапазон значений параметра для эллипса составляет [0, 2], а для дуги эллипса
может быть более узким. Произвольный эллипс на произвольной плоскости с
произвольными направлениями большой и малой осей получается в результате
применения матриц преобразования, подобно тому, как мы делали это с окруж-
ностью.
Пример 6.2
Получить параметрическое уравнение эллипса, лежащего в плоскости ху, с коор-
динатами центра Хс, Yc. Оси эллипса направлены так, как показано на приведен-
ном ниже рисунке.
Решение
Требуемый эллипс может быть получен поворотом исходного эллипса на угол
вокруг оси г и трансляцией его на величину Хс в направлении х и на величину Yc
в направлении у. Обозначим координаты точек интересующего нас эллипса бук-
вами х‘, у' и г', а координаты точек исходного эллипса буквами х, у и z. Тогда
преобразования запишутся следующим образом:
= [xcos<p-z/sin<p+ Хс xsin<p + ycos<p + Yc 0 1].
1UO
I лава ь. i |редставление кривых и работа с ними
Следователи го,
х’ = xcos<p-z/sin<p + Xc =aeos6cos<p-Z>sin0sin<p + Xc;
у’ = xsin<p + «/cos<p + yr = acos6sin<p + i>sin6cos<p+ УС;
z* =0 (0 < 6 <2п).
6.2.3. Гипербола
Известно, что неявное уравнение гиперболы (рис. 6.1) имеет следующий вид:
(6.6)
а2 Ь2
Рис. 6.1. Гипербола
Уравнение (6.6) может быть записано в параметрической форме1:
х = a ch и\
y = bs\i и. (6.7)
Здесь используется известное тождество ch2 и - sh2 и = 1. Диапазон значений па-
раметра и для уравнения (6.7) определяется исходя из координат конечных то-
чек описываемой гиперболы. Применение соответствующих матриц преобразо-
ваний к уравнению (6.7) позволяет получить уравнение гиперболы с центром в
любой точке пространства, ориентированной произвольным образом.
6.2.4. Парабола
Парабола, симметричная относительно оси хи проходящая через начало коорди-
нат, может быть задана следующим явным уравнением:
х = суг. (6.8)
Это уравнение может быть преобразовано к параметрическому виду:
х=с“2; (6.9)
У = и.
Напомним, что chtz =(е“ + е~“)/2 и shи = (еи — е"“)/2. Из уравнения (6.6) можно полу-
чить и другие параметрические уравнения.
6.3. Эрмитовы кривые
±иу
Заметьте, что параметрическое уравнение (6.9) не является уникальным по от-
ношению к уравнению 6.8): вы можете выбрать любое удобное параметрическое
уравнение. Диапазон значений параметра и в уравнении (6.9) выбирается исходя
из координат концов описываемой параболы. Уравнение произвольной парабо-
лы с произвольными координатами центра и ориентацией может быть получено
применением соответствующих матриц преобразований к уравнению (6.9).
6.3. Эрмитовы кривые
Чаще всего для описания кривых, используемых в программах CAD, использу-
ются уравнения третьего порядка, потому что они обладают важным свойством:
две кривые, описываемые такими уравнениями, могут быть соединены таким
образом, что вторые производные в точке соединения будут равны друг другу.
Это означает, что кривизна в точке соединения остается постоянной, отчего две
кривые кажутся одним целым. Ту же непрерывность можно получить и для кри-
вых более высоких порядков, однако работа с ними требует интенсивных вычис-
лений.
Простейшее параметрическое уравнение третьего порядка выглядит следующим
образом:
Р(и) =[*(") у(и) z(u)] = (610)
= а0 + atu + а2и1 2 + а3п3 (0<г/<1).
В формуле (6.10) ад, аь а2, а3 — векторные коэффициенты параметрического
уравнения, то есть векторы-строки с компонентами х, у и z1. Эти коэффициенты
являются обычными алгебраическими коэффициентами2 уравнения, поэтому их
изменение не приводит к интуитивно понятному изменению формы кривой.
Чтобы преодолеть этот недостаток алгебраических коэффициентов, мы заменим
их векторами, обладающими конкретным геометрическим значением. Один из
возможных вариантов — использование радиус-векторов конечных точек кривой
Ро и Рь а также векторов Р^ и Р,, задающих направление касательных в этих
точках. Добавление граничных условий в виде векторов Ро, Pb Р(', Р, к формуле
(6.10) дает:
Ро = Р(О) = ао;
Pt =Р(1) = а0 +а, +а2 +а3; (6 Л1)
Р' =Р'(0) = а,;
Р' = Р'(1) = а1 + 2а2 +За3.
Уравнения (6.11) могут быть решены относительно а0, аь а2, а3:
1 Координаты точки мы представляли вектором-столбцом, следуя соглашениям, принятым
создателями OpenGL. Здесь же мы используем векторы-строки, потому что это делает
более удобным представление матрицы геометрических коэффициентов, приведенной на
рис. 6.2.
2 Уравнение (6.10) называется, соответственно, алгебраическим уравнением.
170
Глава 6. Представление кривых и работа с ними
а0 -Ро>
al =f*0>
а2 =-ЗР0 + ЗР, -2Р' -Р,';
а3 =2Р0 -2Р, +Р' +Р;.
(6.12)
Подстановка (6.12) в (6.10) даст нам уравнение кривой в новом виде:
Р(н) = [1-3ы2 + 2а3
За2-2а3 а-2а2+а3
-а2 +а3 ]
Р,
(6.13)
Р.'
Теперь в уравнение кривой уже не входят алгебраические коэффициенты — вме-
сто них стоят векторы Ро, Рь Р(', Р[. Новые векторные коэффициенты назы-
ваются геометрическими (geometric coefficients), а уравнение (6.13) называется
уравнением эрмитовой кривой (Hennite curve)1. Преимущество эрмитовой кри-
вой в том, что изменение ее формы может быть интуитивно предсказано по из-
менению геометрических коэффициентов. Например, изменение Ро или Р) вызо-
вет такое изменение кривой, что ее концы переместятся в новое положение,
задаваемое измененными векторами Ро и Р,. Точно так же изменение PJ или Р'
приведет к тому, что касательные к кривой на ее концах станут совпадать с но-
выми векторами PJ и Р, (рис. 6.2).
Рис. 6.2. Влияние касательных на форму кривой
Матрица геометрических коэффициентов обозначается буквой [В] и включает
векторы Ро, Р,,Р',Р('. Каждый вектор записывается в своей строке, в той после-
довательности, в которой они перечислены выше. Рисунок демонстрирует толь-
Эрмитова кривая определяется четырьмя векторами, поэтому они вводятся при ее созда-
нии и сохраняются в качестве задающих ее параметров.
6.4. Кривая Безье
171
ко влияние изменения векторов, определяющих направление и длину касатель-
ных. Обратите внимание на то, что происходит с кривой, если меняется только
длина, но не направление вектора касательной. Можно заключить, что длина
вектора определяет, насколько далеко вдоль кривой по направлению к ее середи-
не распространяется влияние этого вектора.
Формулу (6.13) можно интерпретировать и так, как это сделано ниже. Векторы
Ро, Р(, Pg, Р, влияют на форму кривой, причем относительная степень их влия-
ния определяется функциями
/1(и) = 1-3и2 +2и3;
/2(и) = 3м2-2и3; (6.14)
/3(u)=u-2u2 -iz3;
Л(“)=-«2 +“3-
Можно сказать, что эти функции «сопрягают» граничные условия Ро, Pi, Р«, Р,
друг с другом, поэтому и называют их функциями сопряжения {blending func-
tions).
6.4. Кривая Безье
Хотя преобразование алгебраического уравнения кривой в форму эрмитова
уравнения позволяет работать с кривой на интуитивном уровне, эрмитова фор-
ма не полностью удовлетворяет требованиям разработчикам. Как мы показали,
предсказать форму кривой по величине векторов касательных Pg и Р[ не так-то
просто (рис. 6.2).
В начале 60-х гг. Безье — сотрудник французской автомобильной компании
«Рено» — предложил новую форму уравнения кривой и использовал ее в систе-
ме поверхностного моделирования UNISURF [19|. Эта кривая получила назва-
ние кривой Безье {Bezier curve). Она строится по вершинам многоугольника, за-
ключающего ее в себе. Вершины сопрягаются соответствующими функциями
подобно тому, как это делается при построении эрмитовой кривой. Безье выбрал
функции сопряжения таким образом, чтобы получающаяся кривая удовлетворя-
ла следующим требованиям.
□ Кривая проходит через первую и последнюю вершины многоугольника.
□ Направление вектора касательной в первой точке кривой совпадает с направ-
лением первого отрезка многоугольника (рис. 6.3). Аналогичным образом, по-
следний отрезок многоугольника определяет направление касательной в ко-
нечной точке кривой.
□ Производная степени п в начальной (или конечной) точке кривой определя-
ется положением первых (или последних) п + 1 вершин многоугольника. Это
свойство очень удобно при соединении двух кривых Безье, если требуется
удовлетворить требованию непрерывности высших производных в точке со-
единения. Вообще говоря, второе свойство есть частный случай данного свой-
ства.
Глава 6. Представление кривых и работа с ними
□ При изменении порядка вершин многоугольника на противоположный полу-
чается та же самая кривая.
Задавшись этими требованиями, Безье выбрал в качестве функций сопряжения
полином Бернштейна:
(6.
I 1)
где
я'
nl
i'.(n-i)!
Если функцию сопряжения (6.15) применить к вершинам многоугольника, по-
лучается уравнение кривой Безье:
п I Л 1
Р(Н) = Ё . р(1-и)в-'Р„
(6.16)
где Р, — радиус-вектор г-й вершины. Вершины многоугольника называются за-
дающими (control vertices), как и сам многоугольник (control polygon). Из форму-
лы (6.16) видно, что для кривой, заданной п + 1 точками, максимальная степень
будет и”. Таким образом, степень кривой Безье определяется количеством задаю-
щих точек. Кривые Безье разных степеней с разным количеством задающих то-
чек показаны на рис. 6.3.
Рис. 6.3. Кривые Безье различных степеней
Покажем теперь, что кривая Безье, заданная уравнением (6.16), удовлетворяет
требованиям, перечисленным в начале раздела. Для начала проверим, что кривая
проходит через первую и последнюю задающие точки. В этом легко убедиться,
подставив в уравнение значения 0 и 1 параметра и. Раскроем суммирование сле-
дующим образом:
' ri\ (п\ (п\
Р(п)= (1-и)"Р0 + «(1-«)-«Р, + н2(1-^)п2Р2+...
I П \ I П\
+ n-'G-H)1?,,., + L"P„.
In-lJ (п
значения Р(0) и Р( 1):
Ро =р0;
p(i)=М р„ =₽„
7
6.4. Кривая Безье
1/J
Мы убедились, что кривая проходит через первую и последнюю задающие точки.
Второе и третье свойства можно проверить дифференцированием уравнения
кривой Безье, чем мы займемся в следующем разделе. Четвертое свойство прове-
ряется путем рассмотрения двух кривых, определяемых уравнениями
Р(«) = Ё1 " I “'(1 -иГ’Р, (0<«<1);
(6.17)
И
п (ti\
P’(v) = Z ”
vJ(l-v)^Q; (Q, =Р„_р 0<v<1).
(6.18)
Уравнения (6.17) и (6.18) можно интерпретировать следующим образом: кривая
Р(ц) проводится от точки Ро к точке Р„, тогда как P*(v) проводится от P„(=Qo) к
Ро(-Ол)- Если мы введем новый параметр и и заменим v на (1 - и), направление
Р' изменится на противоположное (то есть кривая будет идти от Ро к Р„ при из-
менении и от 0 до 1). Поэтому мы сможем сказать, что кривые Р и Р’ идентич-
ны, если Р’(1 - и) при разложении даст нам то же выражение, что и Р(п) с точ-
ностью до названий параметров. Мы получим выражение для Р’(1 - и),
подставив (1 - и) вместо v в формулу (6.18).
п (
P*(1-«)=Z
>=о\7У
(l-u/H^P^.
(6.19)
Перепишем выражение (6.19), подставив в него i вместо (п -j):
Р*(1-п) =
(6.20)
Поскольку
эквивалентно
мы можем заключить, что формула (6.20) совпадает с (6.17).
Кривая Безье обладает еще одним важным свойством, помимо перечисленных
выше, — выпуклостью оболочки (convex hull property). Выпуклой оболочкой кри-
вой Безье является выпуклый многоугольник, получаемый соединением задаю-
щих точек (рис. 6.4). Обратите внимание, что на этом рисунке все кривые Безье
полностью лежат внутри своих выпуклых оболочек.
Выпуклость оболочки кривой Безье обеспечивается тем, что значения сопрягаю-
щих функций лежат на отрезке [0,1], а их сумма равна 1 для любого и. Это утвер-
ждение легко проверить для кривой Безье, определяемой двумя задающими точ-
ками. Кривая, заданная точками Ро и Р(, будет отрезком прямой, а ее выпуклой
оболочкой будет тот же самый отрезок. Любую точку этой кривой можно полу-
Глава 6. Представление кривых и работа с ними
чить сложением РоАм + P\Bi.i- Поскольку функции сопряжения Вол и В1Л поло-
жительны и их сумма равна единице для любого и, точка, определяемая выраже-
нием PqBoj + Р,В,.„ будет лежать на отрезке Р0Р, и делить его в отношении
Вх Отрезок P0Pi в нашем случае представляет собой вырожденную выпук-
лую оболочку, поэтому мы можем сказать, что все точки кривой лежат внутри
этой! оболочки. Аналогичным образом можно проверить высказанное выше ут-
верждение для кривой Безье, заданной тремя и более точками, как показал Фа-
рин [48]. Выпуклость оболочки полезно использовать при вычислении точек
пересечения кривых Безье. Оболочка кривой содержит ее целиком, поэтому кри-
вые Безье не могут пересекаться, если не перекрываются их оболочки. В этом
случае трудоемкое вычисление точки пересечения кривых Безье можно сразу же
пропустить. Проверка перекрытия выпуклых оболочек требует гораздо меньших
вычислительных затрат.
а б v в
Рис. 6.4. Примеры выпуклых оболочек
6 .4.1. Дифференцирование уравнения кривой Безье
Часто приходится вычислять не только значения координат точек, лежащих на
кривой, но и значения первой производной, а также и производных более высо-
кого порядка. Например, производные первого и второго порядка могут потребо-
ваться для определения кривизны кривой. Производная первого порядка необ-
ходима также для вычисления точки пересечения кривых по итерационному
методу Ньютона—Рафсона1 [39].
В этом разделе мы получим выражение для производных кривой Безье. Эти вы-
ражения показывают соотношения между производными кривой и задающими
ее точками. Перепишем выражение (6.16) в виде
Р(и) = £ ” u’(l-w)B-'P,.
Продифференцируем выражение по параметру г/10:
f=0 \ i) 1=0 \ /
= L’l ”|«i',(1-")" ipi -£(«-«)[ ju'a-uy-'-'p,. = (6.2i)
MV/ >-0 V J
= Z (J + 1) f .n .1 ui (1 -и)я->-‘ P,+1 - g(n - i) f ”1 u'(l-и)”-1 P,.
j=o V+ V <=o V/
Метод расчета точек пересечения кривых излагается в разделе 6.8.
6.4. Кривая Безье
Множители
(J + 1)
(п-г)1П
I I
в формуле (6.21) могут быть расписаны в явном виде следующим образом:
Г л 0 + 1) . . U + 1J ।„ —очрп|— = »<n-i)i _„("-Й <6.22) 1 (j + l)!(n-j-l)! j!(n-;-l)! U J
z • п
(п-1) .
1
(n-i)nl _ n(n-i)\ _ (п-1
il(n-i)! i!(n-i-l)l [ i
(6.23)
Подстановка (6.22) и (6.23) в (6.21) дает:
«w ,=0 ] ) i-0 \ 1 )
n-\ (72 — 1^
= n£n . Ы'(1-и)и—'(Pitl-P, ).
s t I J
(6-24)
Заменив Pj+1-P на a„ выразим формулу (6.24) в виде
</P(lz) 1") \n~t~i /с nr\
---— u (1-u) а;. (6.25)
du SI i J
Правая часть формулы (6.25), если забыть о множителе п, стоящем перед знаком
суммирования, представляет собой уравнение кривой Безье, заданной точками
а0, аь ..., а,,. ]. Отсюда получаем следующие равенства:
1 к 1 1 г/(1-ы)и*ь,а, = а0; и=0
т—( 1 к 1 1 и’(1-и)п~'~' а. = ап-1 u=l
(6.26)
(6.27)
п
J + 1
и
Равенства (6.26) и (6.27) выражают тот факт, что кривая Безье проходит через
первую и последнюю задающие точки.
Из формул (6.25), (6.26) и (6.27) можно получить значения первой производной
в начальной и конечной точках:
= na0 =n(Pj-Ро); (6.28)
м=0
</Р
du
dP
du U=1
= паП_, = n(Pn -РпЧ).
(6.29)
Поэтому можно утверждать, что касательные к кривой Безье в ее начальной
и конечной точках совпадают по направлению с первым и последним отрезками
задающего многоугольника. Кроме того, формула (6.25) может использоваться
Глава 6. Представление кривых и работа с ними
для рекурсивного определения производных более высоких порядков, поскольку
ее правая часть совпадает по форме с уравнением кривой Безье. Отсюда выраже-
ние для второй производной имеет вид
d P(U) , г/. \n-2-iv /СОЛХ
—-Y^=n(n-1)2L . u'(l-u)" bp (6.30)
du2 ZoV i J
где b, = ai+I - а,. Выражение (6.30) говорит нам, что вторая производная в началь-
ной точке определяется векторами Ро, Pt, Р2, а в конечной точке — векторами
Р„_2, Ри-п Продолжая дифференцировать уравнение (6.30), мы будем тем же
путем получать уравнения для производных более высоких порядков. Таким об-
разом, мы можем показать, что производные порядка г в начальной и конечной
точках определяются координатами г + 1 задающих точек.
6 .4.2. Вычисление кривой Безье
Даже если у нас есть формула, описывающая кривую, например уравнение кри-
вой Безье, это уравнение будет практически бесполезным, если мы не найдем
эффективного способа вычислять координаты точек на кривой. Мы знаем, что
для отображения кривой необходимо вычислять координаты точек с небольшим
приращением параметра, и делать это достаточно эффективно. Посмотрев на
уравнение кривой Безье (6.15), можно прийти к выводу, что нам придется доста-
точно часто вычислять биномиальный коэффициент
( п 1
\2 J
в функции сопряжения В,„(и), а это требует серьезных затрат. Поэтому нам мо-
жет понадобиться алгоритм, позволяющий вычислить точку на кривой Безье не-
посредственно, без вычисления значений биномиальных коэффициентов. Такой
алгоритм существует и называется алгоритмом де Кастильо (de Casteljau
algorithm'). Он излагается в приложении Е.
6.5. В-сплайн
Вспомните, что степень кривой Безье определяется количеством задающих то-
чек, причем все они влияют на форму всей кривой. Эти особенности кривых Бе-
зье создают определенные неудобства. Во-первых, при аппроксимации кривой
сложной формы при помощи кривой Безье неизбежно используется множество
задающих точек, в результате чего получается кривая высокого порядка. Такая
кривая может осциллировать, но она к тому же создает большую вычислитель-
ную нагрузку на компьютер. Почему бы в таком случае не попытаться предста-
вить ту же исходную кривую множеством кривых Безье низших порядков, чтобы
избежать этих неприятностей? Проблема в том, что соединение кривых с обеспе-
чением непрерывности производных нужных порядков оказывается довольно
сложной процедурой.
Во-вторых, трудоемким оказывается локальное изменение формы кривой. Кажет-
ся естественным переместить задающие точки вблизи изменяемого участка кри-
вой, и действительно, это приводит к модификации нужной области, но вместе
с ней изменяется вся кривая целиком. Эта особенность называется свойством
глобальности изменений {global modification property). Глобальность изменений
нежелательна при создании кривых заданной формы, поскольку кривые всегда
создаются или проектируются путем непрерывной модификации грубой формы
начального приближения. В системах автоматизированного проектирования же-
лательно наличие прямо противоположного свойства — локальности изменений
(local modification property).
Описанные недостатки кривых Безье связаны с выбором функций сопряжения.
Таким образом, нам нужно выбрать новый набор функций сопряжения, обла-
дающих определенными свойствами. Во-первых, в определение новой функции
сопряжения не должно входить число точек п, в отличие от функции Bin(u). Сте-
пень функции сопряжения, а значит, и степень кривой, должны быть независи-
мы от числа задающих точек п. Во-вторых, все функции сопряжения должны
быть отличны от нуля только на ограниченных подмножествах значений пара-
метра, причем для каждой функции такое подмножество должно быть уникаль-
ным. В этом случае форма сегмента будет определяться только теми задающими
точками, которые учитываются функциями сопряжения, имеющими ненулевые
значения на данном сегменте.
В 1972 г. Кокс [411 и де Бур [431 предложили использовать функции Nik(u),
определяемые рекурсивно. Кривая, которая строится таким образом, называется
В-сплайном (B-spline) и записывается в следующем виде:
Р(Ы) = £р,ЛД«) (Г*_, <и < tbl ), (6.31)
i=0
где
- (“ - 1 (6.32)
^i+4-l G ^i+t г;+1
M.1(U) = P (6.33)
[0 в противном случае.
Значения t, называются узловыми — они ограничивают отрезки значений па-
раметра, внутри которых функции сопряжения имеют ненулевые значения1.
В формуле (6.32) неопределенность 0/0 считается равной нулю. Как следует из
этого уравнения, для определения п + 1 функций сопряжения необходимо задать
п + k + 1 узловых значений от t0 до tn+k. Разные методы задания узловых значе-
ний позволяют получить разные функции сопряжения и, соответственно, разные
кривые. Ниже мы расскажем, как это делается. Обратите внимание, что из фор-
мулы (6.32) следует, что одновременный сдвиг всех узловых значений на одно
и то же число не приводит к изменению формы кривой. При этом происходит
лишь изменение диапазона значений параметра для уравнения (6.31).
Проверим, удовлетворяют ли функции сопряжения, заданные уравнениями (6.32)
и (6.33), требованиям, изложенным в начале раздела. Из уравнения (6.32) следу-
1 Когда и совпадает с границей интервала, следует быть аккуратным, поскольку для любо-
го значения и только одна функция M.i(w) может быть отличной от нуля. Это предпола-
гается в определении (6.32). Например, когда и - t\, только одна из функции №.t(<i) и
M.i(fi) может быть равна единице, хотя из уравнения (6.33) следует, что они обе могли
бы иметь это значение. В любом случае значение Р(б) окажется одним и тем же.
J./о
Глава 6. Представление кривых и работа с ними
ет, что степень Мл(и) на единицу выше, чем у Nik^(u) и ty+i,*-i(M)- Следователь-
но- М.г(и) имеет степень 1, поскольку 2V, л(и) — константа, a N;,3(u) по той же при-
чине имеет степень 2. Продолжая в том же духе, можно прийти к выводу, что
функция Nik(u) имеет степень k - 1. Таким образом, степень В-сплайна опреде-
ляется не числом задающих точек, а значением k, которое должно быть на едини-
цу больше желаемого значения степени кривой. Значение k называется порядком
В-сплайна (order of the B-spline curve).
Чтобы показать, что любой участок В-сплайна определяется лишь конечным
числом задающих точек, рассмотрим сегмент кривой, соответствующий значени-
ям параметра из отрезка [tp Г/+1]. Влиять на этот сегмент будут те задающие точ-
ки, функции сопряжения которых (порядка k) отличны от нуля на отрезке [t;, Г/+1].
Среди функций первого порядка от нуля отлична только N,л(и). Подставив NjЛ(и)
в правую часть формулы (6.32), мы получим ненулевые на рассматриваемом от-
резке функции и N^i.2(w)- Первая функция получается подстановкой N,\(u)
в первое слагаемое, а вторая функция — подстановкой во второе слагаемое. За-
тем по ненулевым функциям Ni2(u) и Л4-1,г(ы) мы получаем функции третьего
порядка и т. д., пока не будут получены функции порядка к. Распространение не-
нулевых значений иллюстрирует рис. 6.5.
Ni-k+\,k
Ni-k+2,k-l Ni-k+2.k
kti-2,3
--► M-l,*
Рис. 6.5. Распространение значений W(1(u)
По рис. 6.5 видно, что ненулевые значения на отрезке [Г„ t/+i] будут иметь только
функции Nj-k+ij,, bli-k+2ji.Поэтому и влиять на форму отрезка кривой будут
только точки P,_j+i, Р,_*+2> —- Р> (всего k штук). Например, если взять кривую чет-
вертого порядка, то на форму отрезка будут влиять четыре задающие точки, а все
остальные не будут.
Займемся теперь определением п + k + 1 узловых значений от Го до tn+k. Узлы бы-
вают двух основных типов: периодические и непериодические. Периодические
узлы определяются из равенства
t, =i-k (0 <i <п + k).
Непериодические узлы задаются формулой
i - k + 1
n-k + 2
0 <i<k;
k <i <n;
n<i <n + k.
(6.34)
(6.35)
О
Главное отличие узлов разных типов состоит в том, что первый и последний не-
периодические узлы повторяются k раз. Повторение узлов приводит к тому, что
В-сплайн проходит через первую и последнюю задающие точки подобно кривой
Безье. В периодическом В-сплайне первая и последняя точки влияют на форму
кривой точно в той же степени, что и все остальные точки, а потому кривая не
проходит через них. Вообще говоря, функция сопряжения для периодических
узлов повторяется через равные промежутки значений параметра, почему узлы
и называются периодическими. Непериодические кривые чаще используются в
системах автоматизированного проектирования, поскольку большинству конст-
рукторов привычнее работать с кривыми, проходящими через первую и послед-
нюю точки.
Выражения (6.34) и (6.35) показывают, что расстояние между соседними узлами
всегда одинаково и равно единице. Такие узлы называются однородными (uniform
knots), как и В-сплайн, через них проходящий. Однородный В-сплайн может быть
как периодическим, так и непериодическим. При изменении формы кривой кон-
структоры часто добавляют1 и удаляют узлы, в результате чего В-сплайн стано-
вится неоднородным. Поскольку однородность является частным случаем неод-
нородности, неоднородные В-сплайны считаются обобщением однородных. Таким
образом, большинство САПР позволяют создавать и модифицировать неодно-
родные и непериодические В-сплайны.
Приведенные ниже примеры должны прояснить суть описываемых в этом разде-
ле понятий.
Пример 6.3
Записать уравнение непериодичного однородного В-сплайна третьего порядка в
полиномиальной форме. Задающие точки кривой: Ро, Pi и Р2.
Решение
По формуле (6.35) узлы t, имеют следующие значения:
10 =0, t, =0, t2 =0, t, =1, t< =1, t5=l.
Параметр и меняется от 0 до 1. Воспользуемся формулой (6.33), чтобы получить
функции сопряжения первого порядка — NiA(u):
^0.1(«) = |j t0 <u <tt (u = 0); в противном случае;
N,j(w) = {o t, < и < t2 (и = 0); в противном случае;
t2 < и < t3 (и < 1); в противном случае;
1 При создании поверхности из набора В-сплайнов необходимо, чтобы узловые значения
всех кривых были одинаковыми. Подробно об этом рассказывается в работе Тилле-
ра [152].
1HU
Глава 6. Представление кривых и работа с ними
^зл(“) = -[р
(«)={*
«з <n<t4(u=l);
в противном случае;
tt <u<t5(u = l);
в противном случае.
Мы должны выбрать, какая из трех функций Noл(и), NlA(u) и N2,i(w) будет иметь
ненулевое значение при и = 0. Пусть это будет функция N2.i(w)- Аналогично, вы-
берем ту же функцию N2.i(u) в качестве ненулевой в точке и = 1. Таким образом,
^i(iz) становится единственной ненулевой функцией сопряжения первого по-
рядка для диапазона значений параметра [0,1], причем на всем этом диапазоне
она постоянна и равна единице.
Теперь получим нетривиальные функции сопряжения второго порядка по фор-
муле (6.32)1:
N |2(ы) = + = (1-ц)ДГ21 = (1 _и);
(и _t2)N2,t (^4 — uN2l
N 2-2(= —ГТ7— + —— = —=u'
Аналогичным образом получим функции сопряжения третьего порядка:
КТ ^о)А\),2 (^з -ы)М,2 (1~w)A\.2 Ч2,
a o,3(w) = ———— + ——-— =------------------=(1 -w);
Сд £-| ““ £<2 1
N !,3(w) = --—+ —--------—= и(1-и) + (1-и)и = 2и (1 - и);
t3 —1| t4 —t2
N 23(U) = (Ц~^)А2.2 + (t5 -h)A3.2 = u2
^4 “ C ^5 ~f3
Итак, раскрытое в полиномиальной форме уравнение В-сплайна имеет вид:
Р(«) = (1-п)2Р0 + 2«(1 -iz)P1 + w2P2. (6.36)
Уравнение кривой Безье с задающими точками Ро, ?! и Р2 тоже можно записать
в полиномиальной форме:
(i\ f?\
P(W) = H“°(1"“)2P° +U +Ы “2<1-“)°p2 = (6.37)
= (l-zz)2P0+2w(l-iz)Pt +zz2P2. •
Сравнивая формулы (6.36) и (6.37), можно прийти к выводу, что непериодиче-
ский однородный В-сплайн третьего порядка с задающими точками Ро, Р( и Р2
совпадает с кривой Безье, определяемой теми же задающими точками. Верно и
более общее утверждение: непериодический однородный В-сплайн совпадает с
кривой! Безье с теми же задающими точками, если порядок k совпадает с количе-
ством задающих точек п + 1. Другими словами, кривая Безье представляет собой
частный случай В-сплайна.
В выражении для М.г(«) первый член с Ni.i равен нулю, поскольку он представляет собой
неопределенность вида 0/0.
6.5. В-сплаин
Пример 6.4
Записать уравнение непериодичного однородного В-сплайна третьего порядка
с задающими точками Ро, Р(, .... Р5 в полиномиальной форме и продемонстри-
ровать свойство локальности изменений.
Решение
По формуле (6.35) определяем узловые значения t;.
t0 =0, tt =0, t2 =0, t3 =1, =2, t5 =3, te = 4, t7 =4, =4.
Параметр и меняется от 0 до 4. Воспользуемся формулой (6.33) для получения
функций сопряжения первого порядка — Ni X{u):
fl 0<w<l;
M.r(“) = L
[0 в противном случае;
fl 1<и<2;
Мл (“) = L
fl) в противном случае;
fl 2<iz<3;
f0 в противном случае;
fl 3<u<4;
N5.t(u) = n
(0 в противном случае.
Функции No,i(M) и M.i(M) мы не рассматриваем, выбирая Mi(w) в качестве един-
ственной отличной от нуля при и = 0. По той же причине не рассматриваются
Ncл(и) и N2л(и). Теперь вычислим нетривиальные функции сопряжения второго
порядка по формуле (6.32):
кт , Ч (М~^1)М,1 (^3 ~Ы)М,1 •
М.2 (“) = Г"—---------+ ——---- = С1 *W)M.l >
L 2 t j с С 2
*„<«)-V’ -,'*7^-+(2-”)W’';
г3 t2 £4 £3
г , (И“^з)М.1 (^5 -ZZ)M.l z n »j zq X-KJ .
+ 7-\и ~Ч^зл + (у~и)™н ,
— t3----------------t5 — t4
+ =(u -2)W„ ♦ (4-«)W„;
*5 ^4 ^6 .5
Nr Z N (U“ ^s)M.I M -U)^6,1 q4 xr
N5.2 ) =-------------- +------ = (« - 3) N5A
‘6 ~‘-5 *7 Г6
Аналогичным образом вычисляются функции сопряжения третьего порядка:
w„(„)=+,(1 _a)W|! .(1 _u). Nt).
г2 £q £3 £[
КТ / \ (М—£1)М,2 (^4 —М)^2.2 ,,Nr . 2—W кг
М.3 (« ) = ——---------+ ——---- = “М.2 + -5- А 2.2 =
Р3 tj
1OZ
Глава 6. Представление кривых и работа с ними
= u(l-iz) + (2- 2 и)и ^3..;
W23(«) = (u-t2)N —t2 2.2 + (г5- ^5 ^з1 = Едг -Г3 2 22 З-и
SZ iz2 .. + ц(2 2 t (3-ц)(ц-1)~ 2 м О' ^3.1 + 2 44
N3J(u) = (г/ t3 ) N32 + ^5 ~ ^3 /в ^6 u)Nt2 и-1 -t. ’ 2 хг 4-ы хг ^3,2 + 2 4 2 ~
= 2 3.1 + ~(«- -1X3-U) । (4- 2 к м х к 1 NO 1 1 М (4~“)2 М ^4.1 + 2 М5Л
*\з(“) = (u-tt)N ^6 ~ ^4 “ +- А ^7 Ц)^5.2 _M-2j -t5 2 V4.2+0- “)^5,2 =
= <^А 2 4.1 + (ц- Г.2)( —ц) + (4- 2 -w)(u-3) ^5Л
Мхз(“) = (u t5 )N52 + 1 ^7 — ^5 Ли “ ^8 2^61=(u_3)N52 =(и -3)2n5>1.
Таким образом, уравнение В-сплайна в раскрытой полиномиальной форме име-
ет вид:
P(u) = (l-u)2 N2 tP0 +JL(l-M)+<2
— N21
2 24
^-N
JV3.t
2
и(2-и) (3-ц)(и -1)
v <2~м>2 кт
N2A +---------N3.l
N3.t + 2 ^4..
Р. +
Р2 +
2
(«-2)2
2 2
Г(и-1)(3-М) . (4-u)(u-2)"] . (4-й)2 v
-------------+-------------- Л3 1 +-------^5.1
Nit
2 44
+(u-3)2N51P5.
2
(u-2)(4-u)
+ (4-zz)(u-3) Л\,
Р< +
Рз+(6.38)
2
2
Форма выражения (6.38) заставляет предположить, что любая задающая точка
влияет на форму всей кривой. Однако если записать это уравнение отдельно для
каждого отрезка значений параметра и, станет видно, что на каждый сегмент
влияет лишь ограниченное подмножество задающих точек всей кривой.
Рассмотрим отрезок 0 u 1. Пусть Р;(гх) обозначает уравнение соответствующего
участка кривой (то есть первого ее сегмента). Для значений параметра и от 0 до 1
только одна функция первого порядка будет отлична от нуля и равна единице — A^r
Поэтому формулу (6.38) на этом отрезке можно записать следующим образом:
6.5. В-сплайн
1ВЗ
P1(zz) = (l-w)2P0 + u(l-
(2-u)au
2
— P2
2 2
(6.39)
Аналогичным образом можно получить Р2(п) для отрезка 1 и 2, оставив только
те слагаемые, в которые входит N3i(u):
Р2(«) =
(2-Ц)2„ , Г“(2~м) . (3-u)(iz-l)
2'2 2
(а-1)2
(1<м <2). (6.40)
Тем же способом получим и запишем выражения для участков P3(zz) и Р4(п), со-
ответствующих отрезкам значений параметра 2 и 3 и 3 и 4.
Рз(«) = ^у^Р2 +^(-2п2 +10Ы-11)Р3 +^>1р4; (6.41)
Р4(п) = ^^Р3 -Д(-Зп2 + 20w-32)P4 + (u-3)2P5. (6.42)
Присваивая нужные значения задающим точкам Ро, Pi,..., Р5, мы можем нарисо-
вать все сегменты В-сплайна по формулам (6.39)-(6.42). Один из возможных
подходов продемонстрирован на рис. 6.6. Обратите внимание на важные особен-
ности В-сплайнов, проявляющиеся на рис. 6.6.
Рис. 6.6. В-сплайн, состоящий из криволинейных сегментов
□ Любой В-сплайн представляет собой составную кривую, состоящую из несколь-
ких разных кривых (в нашем примере — P,(zz), P2(u), Р3(п), Р4(п)). Эти кри-
вые соединяются в узловых точках параметра. В этом примере в точках
соединения выполняются следующие равенства: Р, (1) = Р2 (1), Р2 (2) = Р3(2) и
Р'*(3) = Р;(3). Убедитесь в этом, вычислив производные выражений (6.39)-
(6.42). Эти равенства означают непрерывность первой производной в точках
соединения сегментов кривой. Тем же методом можно заключить, что непре-
рывность второй производной в этих точках нарушается. Это следует уже из
того, что степень уравнений (6.39)-(6.42) равна 2. Производные В-сплайна
непрерывны вплоть до порядка k - 2, потому что степень уравнения каждого
сегмента равна k - 1. Например, у В-сплайна четвертого порядка непрерыв-
ными в точках касания сегментов будут первая и вторая производные.
□ На каждый сегмент кривой влияют k задающих точек. Это следует из уравне-
ний (6.39)-(6.42) Первые k задающих точек определяют форму первого сег-
мента, следующие k (начиная со второй) — форму второго сегмента, и т. д.
Последние k точек определяют форму сегмента п - k + 2 (рис. 6.7).
io*t
Глава 6. Представление кривых и работа с ними
□ Рисунок 6.7 демонстрирует, что одна задающая точка может влиять не более
чем на k сегментов. Проверить это утверждение можно, подсчитав количество
групп, содержащих, например, точку P*-i. Мы заключаем, что каждая точка
влияет не более чем на k соседних сегментов. Это и есть свойство локально-
сти изменений.
Рис. 6.7. Задающие точки и сегменты кривой
6.5.1. Вычисление В-сплайна
Как вы могли убедиться, изучив предшествующие примеры, расписать функции
сопряжения В-сплайна в полиномиальной форме — задача непростая. Особенно
сложной она становится при больших k. Поэтому для вычисления координат
точек кривой полиномиальная форма уравнения В-сплайна используется редко.
Вместо этого конкретные значения параметра и подставляются в рекуррентное
уравнение (6.32) и по ним вычисляются координаты точек, соответствующих
этим значениям параметра. Кокс [41] и де Бур [43] предложили переписать
уравнение (6.32) таким образом, чтобы вместо рекуррентной подстановки полу-
чить итерацию, подобно тому как это делается в алгоритме де Кастильо. Их ме-
тод позволяет определить задающие точки В-сплайнов, получающихся при деле-
нии исходной кривой в вычисляемой точке (см. приложение Ж).
6.5.2. Объединение В-сплайнов
В-сплайн можно не только разделить на два В-сплайна, но и объединить с дру-
гим В-сплайном, в результате чего получится В-сплайн того же порядка. Задача
заключается в том, чтобы найти задающие точки и узловые значения для объе-
диненной кривой. Подробное описание этой процедуры заинтересовавшиеся мо-
гут найти в приложении 3.
6.5.3. Дифференцирование В-сплайна
Мы уже показали, что производная от кривой Безье выражается через кривую
Безье, порядок которой на единицу меньше порядка исходной кривой. Анало-
гичным образом, производная В-сплайна записывается через уравнение В-
сплайна, порядок которого на единицу меньше исходного. Производная от В-
сплайна, при условии что параметр и лежит в диапазоне tt и t^i, имеет следую-
щий вид (доказательство приводится в приложении И):
= (6.43)
au i-i-k+2
6.5. В-сплайн
185
где Р,1 определяется следующим выражением:
Р* =(Л-1)Р<~Р<». (6.44)
Ч+*-1
Правая часть уравнения (6.44) имеет форму уравнения В-сплайна, поэтому мож-
но предполагать, что производные более высоких порядков могут быть получе-
ны рекурсивным применением формулы (6.43). Так, производная порядка г от
В-сплайна имеет вид:
(6.45)
аи M-k+r^t
где
рг-1 _рг-1
p;=(^-r)-i-------(6.46)
Равенство (6.45) выполняется, если и лежит на отрезке tt и ti+t, а функция Р,г в
формуле (6.46) определяется, как и ранее, через Р,. Численные значения произ-
водных могут быть вычислены по алгоритму Кокса — де Бура, поскольку форму-
лы (6.43) и (6.45) имеют вид уравнения В-сплайна.
Пример 6.5
Вычислить первую производную от В-сплайна в его конечных точках, используя
формулы (6.43) и (6.44). Порядок В-сплайна равен k, а его задающие точки Ро,
Pi...Р„.
Решение
Начальной точке В-сплайна соответствует значение параметра t0 = tt = ... = 4-1»
а нас интересует первый сегмент, которому соответствует отрезок значений
параметра 4-1 и Мы получим значение производной в начальной точке, под-
ставив k — 1 вместо / и 4-1 вместо и в уравнение (6.43):
Выражение в правой части равенства имеет вид уравнения В-сплайна, а значе-
ние и = 4-1 соответствует начальной точке кривой. Следовательно, сумма
) должна быть равна вектору координат первой задающей точ-
ки Р/. Отсюда первая производная исходного В-сплайна в начальной точке име-
ет значение:
= Р' N^t ) = Р* = (k -1)^-^.
du th - tt
Производная на втором конце кривой вычисляется тем же методом. Параметр
в конечной точке имеет значение t„+i> а интересующему нас сегменту соответ-
ствует отрезок значений параметра t„ и tn+l. Подстановка п вместо 1 в уравне-
ние (6.43) дает:
UU i=n-k+2
В правой части снова получилось уравнение В-сплайна, а значение и = tn+i соот-
ветствует конечной точке кривой. Отсюда, сумма SL-*+2Р- <*»+») совпадает
с координатами последней задающей точки Р„‘. Производная первого порядка от
исходной кривой в таком случае имеет следующий вид:
_ pi = (fe -1) Р” ~Р»-1
^п+k-l ~^п
В изложенном примере мы продемонстрировали еще одно важное свойство В-
сплайна: вектор касательной в начальной или конечной точке совпадает по на-
правлению с первым или последним ребром задающего многоугольника. Для
кривых Безье это свойство было доказано еще раньше.
6.6. Неоднородный рациональный В-сплайн
Неоднородный рациональный В-сплайн, или попросту NURBS (nonuniform rational
B-spline curve), подобен обычному неоднородному В-сплайну, поскольку основан
на тех же функциях сопряжения, получаемых для неоднородных узлов. Однако
задающие точки рационального В-сплайна указываются в форме, то есть с ис-
пользованием однородных координат. Функции сопряжения применяются
именно к этим однородным координатам. Координаты точки на кривой NURBS
в однородном пространстве получаются по формулам:
X h = (hj х, )Nik(u)-, i=0 (6-47)
y-h = Y(hi 1=0 (6.48)
г/г = £(/г, -zJN.^jz); i=0 (6.49)
h = thiNiJt(u). 1=0 (6.50)
Координаты точки в трехмерном пространстве х, у и z получаются делением xh, yh и
zh на h, поэтому уравнение кривой NURBS в векторном виде может быть записано
следующим образом (здесь мы поделили уравнения (6.47), (6.48) и (6.49) на (6.50)):
i^,p,N,.t(U)
Р(ц) = -4---------, (6.51)
1=0
где Р, — вектор (х„ г/„ г,), объединяющий координаты г-й задающей точки в трех-
мерном пространстве, как и для нерациональных В-сплайнов. Диапазон значе-
ний параметра и tn+l, как и для В-сплайна (см. предыдущий раздел).
Уравнение (6.51) отражает следующие свойства кривой NURBS.
□ Подобно нерациональному В-сплайну, кривая NURBS, представленная урав-
нением (6.51), обязательно проходит через первую и последнюю задающие
точки, если используются непериодические узлы. Это утверждение можно
доказать следующим образом. Числитель формулы (6.51) может считаться В-
сплайном с задающими точками А,Р,. Граничным значениям параметра будут
соответствовать координаты hoPn и h„P„, поскольку В-сплайн с непериодиче-
скими узлами проходит через первую и последнюю задающие точки. Знаме-
натель (6.51) также может считаться В-сплайиом с задающими точками h,.
Граничным значениям параметра для этого В-сплайна будут соответствовать
координаты Ао и h„. Следовательно, граничным значениям параметра для Р(и)
в целом будут отвечать координаты Ро и Р,„ то есть граничные задающие точки.
□ Касательная в начальной точке совпадает по направлению с вектором Pi - Ро,
а касательная в конечной точке — с вектором Р„ - Рп.(. Проверка этого утвер-
ждения приводится в разделе 6.6.2.
□ Знаменатель (6.51) становится равным 1, когда все Л,-е становятся равными 1,
поскольку 2L"=0M t(u) = I1- Уравнение (6.51) при этом превращается в урав-
нение В-сплайна. Поэтому можно сказать, что уравнение NURBS может опи-
сывать не только NURBS-кривые, но и обычные В-сплайны. Кривая Безье
является частным случаем В-сплайна, поэтому уравнение NURBS может так-
же описывать кривые Безье и рациональные кривые Безье2.
Уравнение NURBS-кривой обладает определенными преимуществами перед
уравнением В-сплайна.
□ Форма В-сплайна изменяется при изменении координат х, у и z задающих то-
чек. Для каждой задающей точки, таким образом, имеется три степени свобо-
ды. Кривая NURBS позволяет изменять четвертую координату для каждой
точки — hi. Появляется возможность работать с кривой на более тонком уров-
не. Увеличение значения однородной координаты задающей точки приводит
к тому, что NURBS-кривая притягивается ближе к этой точке.
□ Уравнение NURBS позволяет точно воспроизвести все конические сечения —
окружность, эллипс, параболу и гиперболу. В-сплайны, напротив, допускают
лишь приближение к коническим сечениям. Таким образом, в NURBS-пред-
ставлении можно работать с коническими сечениями, кривыми Безье, рацио-
нальными кривыми Безье и В-сплайнами. Преобразование всех этих кривых
к NURBS может значительно сократить объем программирования. Например,
можно написать одну-единственную программу для расчета точки пересече-
ния кривых NURBS и использовать ее для расчета пересечений кривых лю-
бых типов, поскольку эти кривые всегда могут быть преобразованы к соответ-
ствующим NURBS-представлениям.
Продемонстрируем вывод NURBS-представления для конических сечений на
примере из книги Пигла и Тиллера [126]. Мы возьмем из этой книги только ко-
нечный результат, то есть порядок, координаты задающих точек (однородные) и
узловые значения кривой NURBS, эквивалентной дуге окружности. В той же ра-
боте обсуждаются NURBS-представления других конических сечений. Дуга ок-
1 Доказательство этого приводится в работе [9].
2 Уравнение рациональной кривой Безье получается подстановкой Bin(u) вместо
в уравнение (6.51). Другими словами, функции сопряжения Безье используются с задаю-
щими точками в однородных координатах.
ружности — это квадратичная кривая степени 2, поэтому можно предполагать,
что ее NURBS-представление будет иметь степень 3. Пигл показал, что если цен-
тральный угол дуги окружности меньше 180°, для представления этой дуги дос-
таточно всего лишь трех задающих точек (рис. 6.8). Из рассмотренных ранее
свойств NURBS-кривых следует, что задающие точки Ро и Р2 должны распола-
гаться на концах дуги окружности, а точка Р| находится в точке пересечения ка-
сательных к дуге в ее конечных точках.
Р1
Ро Рг
Рис. 6.8. Задающие точки NURBS-представления дуги окружности
Остается определить однородные координаты /г0, h\ и h2. Если бы все они были
равны 1, это был бы обычный В-сплайн, который не мог бы совпадать с дугой ок-
ружности. Однако Пигл обнаружил, что значения h0 = h2 = 1,1ц - cos 6 позволяют
описать дугу точно. Здесь буквой 6 обозначен угол между любой касательной и
отрезком РдР2 (см. рис. 6.8). Отсюда следует, что для центрального угла дуги,
превышающего 180°, точка Р1( а значит, и угол 6 оказываются не определены. В
этом случае дугу нужно разделить на части таким образом, чтобы у каждой из
этих частей центральный угол был бы меньше 180°. Затем для каждой части
определяется NURBS-представление, после чего эти представления объединя-
ются. Объединение NURBS-кривых получается точно таким же способом, что и
объединение В-сплайнов (см. приложение 3). Множество задающих точек объе-
диненной кривой представляет собой объединение множеств задающих точек
исходных кривых. Узловые значения объединенной кривой получаются слияни-
ем наборов узловых значений с предварительным их сдвигом, обеспечивающим
отсутствие скачков в точках соединений. Затем лишние узловые значения отбра-
сываются так, чтобы для каждого соединения значения повторялись не более
чем k — 1 раз.
Пример 6.6
Вывести NURBS-представление полуокружности с единичным радиусом, распо-
ложенной в плоскости ху. Необходимо определить степень кривой, координаты
задающих точек, а также узловые значения.
Решение
Изучите приведенный ниже рисунок. Порядок NURBS-кривой должен быть ра-
вен 3, поскольку окружность — квадратичная кривая. Мы разделим полуокруж-
ность на две дуги с номерами 1 и 2, поскольку центральный угол полуокружно-
сти равен 180°. Разделить ее, разумеется, можно множеством способов.
Начнем с дуги 1. Координаты х, у, z задающих точек этой дуги таковы:
Ро =(1,0), Р, =(1,1), Р2 =(0,1).
Соответствующие однородные координаты имеют значения h0 = 1, ht = cos 45° =
= 1/2 и h2 = 1. Узловые значения параметра образуют последовательность 0, 0, 0,
1, 1, 1 (п = 2,k = 3).
Та же процедура для дуги 2 дает:
Ро =(0,1> Р3 = (1,1> Р4 =(1,0)
и
h2 = 1, h3 =-^=, /г4 = 1.
Узловые значения те же самые: 0, 0, 0, 1, 1, 1, но для последующего объединения
кривых они сдвигаются до 1, 1, 1, 2, 2, 2.
NURBS-кривые объединяются вместе, в результате чего получается NURBS-
кривая со следующими задающими точками и параметрами:
Ро =(1,0), р, =(1,1). Р2=(0,1> Р3 =(-1,1), Р4=(-1,0)
и
fin =1, fi. = Д=, h2 =1, h3 = -|=, Л4 =1.
л/2 >/2
Узловые значения для объединенной кривой: 0, 0, 0, 1, 1,2, 2, 2.
Пример 6.7
Раскрыть уравнение NURBS-представления дуги 1 из примера 6.6 и показать,
что оно действительно .точно соответствует дуге окружности.
Решение
Уравнение NURBS-представления дуги 1 имеет вид:
р^у) — + h2P2N23(u)
h0N03(u)+ htNi3(u)+ h2NZ3(u)
Функции сопряжения N03(h), Л\3(н) и N23(h) получаем по рекуррентным соот-
ношениям:
т—Bd . । |редставление кривых и раоота с ними
^21(М) =
1 0 <и < 1ж
О в противном случае;
^3 ^2
, ч (м-Г2)^,,(м)
N2 2 (W ) =---------- = U >
^3 ^2
7 7 — (1 м)
t3 £]
(u-t^N^u) (tt-и)N22(u)
Гу I 3 —----------1--------------Zu (1 ~w),
?3 — ?| t4 —t2
_(u-t2)N22(u) 2
о q —” — U .
t -t
c4 C2
Теперь мы можем записать уравнение NURBS-представления следующим обра-
зом:
2
2
1- 0 (1-м)2 +^~ 1 2u(l-u)+l- 1 и
.0
2
О
Р(м) = —----------------------------
1(1-м)2 +^-2м(1-м)+1н2
Обозначим члены, соответствующие х и у в этом уравнении, за х(и) и у(и) соот-
ветственно. Выражения для х(и) и у(и) будут такими:
X-(W) - (!-т/2)м2 +л/2(1-л/2)м + 1
(2-л/2)м2 +(->/2-2)м + 1
.?/(«) =---г , ---7=--------
(2-V2)m2 +(л/2-2)м + 1
Можно показать, что х(и) и у(и) удовлетворяют равенству
{Х(Ы)}2 +{у(и)}2 = {(1-л/2)п2 +^(1-л/2> + 1}2 +{(1-л/2)м2 +л/2м}2
{(2-Т2)м2+(л/2-2)м + 1}2
Отсюда следует, что представление NURBS-кривой в точности совпадает с дугой
окружности.
6 .6.1. Вычисление NURBS-кривой
Координаты х, у, z точки на NURBS-кривой, определяемой значением параметра
Щ, получаются по формуле:
Р(«о) = ^Ч----------
(6.52)
i=0
И числитель, и знаменатель в выражении (6.52) имеют форму уравнения В-
сплайна, поэтому они могут вычисляться по алгоритму, предназначенному для
вычисления В-сплайна. Алгоритм Кокса—де Бура приводится в приложении 3.
При вычислении числителя в качестве задающих точек следует брать точки с ко-
ординатами hjPi, а при вычислении знаменателя — точки hr
6 .6.2. Дифференцирование NURBS-кривой
Производная первого порядка от кривой в NURBS-представлении может быть
получена дифференцированием уравнения (6.51) по w:
d
dP(u) _ du
du
t h^fu) - £ h.P^t(u) • -f\ J h^u)
i=o i=o du |/=o
<=o
(6.53)
1=0
Выражения ^”=ohiNiJt(u) и ^ХДРД^м) в формуле (6.53) могут быть вычис-
лены с использованием алгоритма для В-сплайнов, например алгоритма Кок-
са—де Бура, который излагается в приложении 3. Производные в числителе мо-
гут быть получены по методу, который был изложен в разделе 6.5.3. А именно,
вместо задающих точек Р, в уравнение (6.44) следует подставить hjPj при вычис-
лении
du |_i=o
du
или hj при вычислении
d Г п
~г i^N^U)
du |_j=o
du
Пример 6.8
Раскрыв выражение (6.51), показать, что NURBS-кривая с непериодическими
узлами проходит через первую и последнюю задающие точки. Используя урав-
нение (6.53), показать, что касательные к NURBS-кривой в конечных точках
совпадают по направлению с векторами ₽! - Ро и Р„ -
Решение
Начальной точке кривой NURBS соответствует значение параметра f0 = t\ = = ft-f-
Первому сегменту соответствует диапазон значений параметра а М-i.i —
единственная ненулевая функция сопряжения первого порядка на этом интерва-
ле, то есть единственная функция данного порядка, которую имеет смысл рас-
сматривать в вычислениях, связанных с данным сегментом. Отсюда все функции
сопряжения нулевые, за исключением N0.t(^-i)> значение которой рав-
но единице. Проверить последнее утверждение можно по рекуррентной форму-
ле. Итак, из уравнения (6.52) мы можем найти начальную точку кривой:
। iiemo-vrTTpEHcidtsjicHweкривБгхпрграиигс] с ними
) hPN (t } 1-P-l
i=o _ /_ 1 Г0 1 _n
: ~:—— - : : ~ ro -
E лл,.л(^-1) > 1 1
»=0
Конечной точке кривой будут соответствовать значения параметра t„+l =
fn+2 = ... = Поскольку N„ । — единственная ненулевая функция сопряжения
первого порядка на отрезке t„ и t„+t, она одна должна учитываться при выводе
уравнения последнего сегмента кривой. И она же будет ненулевой при и = t„+l.
Отсюда все функции сопряжения вида A,j,(C*i) равны нулю, за исключением
^t(t„+i) = 1. Следовательно, координаты конечной точки могут быть получены
из уравнения (6.52) в следующем виде:
EMW-ы )
р(*и+.) = ^-----
1=0
^РЛ„Д^.)_1Ря1_р
ЛЛидгв+1) 1-1
Получить первую производную в начальной точке можно с помощью уравне-
ния (6.53). Левая производная в числителе (6.53) вычисляется подстановкой
вместо Р) и hQP0 вместо Ро в конечное выражение примера 6.5. Точно так же
правая производная вычисляется подстановкой h{ вместо Р, и /г0 вместо Ро. Да-
лее, Е"=о ) = Ао- Из всего вышеизложенного следует, что первая произ-
водная в начальной точке кривой равна
dP{u)
(fe-l)-fe|Pt _h°P° -h0 -Л0Р0(^-1) А_А
h'l0
Аналогичным образом вычисляется первая производная и в конечной точке.
6.7. Интерполяционные кривые
Представьте, что вы работаете в системе геометрического моделирования и хоти-
те визуализировать кривую. Кажется естественным передать системе координа-
ты нескольких точек на этой кривой. На самом деле чертежники рисуют кривые
таким интуитивным методом уже многие годы. Они ставят на бумаге несколько
точек в соответствии со своим представлением о форме кривой, а затем соединя-
ют их плавной линией при помощи средства, называемого сплайном {spline). Так
же и в САПР: конструктор указывает точки, а система строит по ним интерполя-
ционную кривую, которую и отображает. Уравнение интерполяционной кривой
сохраняется для последующей работы с ней. Можно создать кривую, непосред-
ственно указав задающие точки кривой Безье или В-сплайна. Однако больший-
ство конструкторов предпочитают указывать точки, лежащие на самой кривой, и
изменять кривую, перемещая ее характеристические точки. Характеристически-
ми точками могут быть задающие точки кривой Безье или В-сплайна, если ин-
терполяционная кривая относится к одному из этих классов. Возможность стро-
ить интерполяционные кривые по точкам очень полезна, если геометрическая
модель создается по существующей физической модели. Представьте, что нам
нужно получить математическое описание кривых и поверхностей пластили-
новой модели автомобиля. Математическое описание поверхностей может при-
меняться для автоматической выработки траекторий движения фрезы с ЧПУ.
Вот в такой ситуации нам и пригодится функция построения поверхностей и
кривых по точкам. Перейдем же теперь к выводу уравнений интерполяционных
кривых — эрмитовой кривой и В-сплайна.
6.7.1. Интерполяция эрмитовой кривой
Основная идея данного метода заключается в том, что каждый сегмент между со-
седними точками представляется в виде эрмитовой кривой. Поскольку степень та-
кой кривой равна 3, этот подход аналогичен использованию сплайна (рис. 6.9)
для проведения кривой по заданным точкам.
Рис. 6.9. Сплайн — инструмент, применяемый в черчении
Сплайн, проведенный через заданные точки, имеет физический аналог — балку с
подпорками в тех же заданных точках (рис. 6.10). Форма любого сегмента между
ближайшими опорами определяется уравнением балки:
(6.54)
d2y _Qox + Mo
dx2 El
Рис. 6.10. Статическая модель сплайна
Уравнение (6.54) является дифференциальным, ему должна удовлетворять ней-
тральная линия балки, находящейся под влиянием силы реакции Qo и момента
Мо, приложенных к левой опоре. Здесь под Е понимается модуль Юнга материа-
ла, из которого изготовлена балка, а I — момент инерции ее поперечного сече-
ния*. Двойное интегрирование уравнения (6.54) дает функцию у(х), степень ко-
торой равна 3. Поэтому для описания сегментов кривой между точками может
использоваться эрмитова кривая.
1 Вывод уравнения (6.54) можно найти в любом учебнике по сопротивлению материалов.
Выведем уравнение эрмитовой кривой для всех сегментов при условии, что мы
знаем координаты точек Ро, Р. , Р„. Эти п + 1 точек дадут нам п эрмитовых
кривых, которые мы обозначим буквами Pf(«), P2(w), ... > Р„(«) (рис. 6.11).
Рис. 6.11. Интерполируемые точки и эрмитовы кривые
Эрмитова кривая под номером i может быть записана с использованием уравне-
ний (6.10) и (6.12):
Р, {и ) = Р,, + P!L, и + [3(Р, - Р,., ) - 2Р', - Р,' ]и2 + (6 55)
+[2(Р,_. -P,) + P'14+Pj]w3.
Здесь Р'ч и Р' — векторы касательных в точках P,-i и Р, соответственно. Уравне-
ние для конкретного сегмента получается подстановкой конкретного значения i
в общее уравнение. Для каждого сегмента параметр изменяется от 0 до 1.
При попытке воспользоваться уравнением (6.55) мы столкнулись бы с одним за-
труднением: коэффициенты Р; ] и Р' обычно не указываются. Поэтому нам нужно
изменить уравнение (6.55) так, чтобы они в нем и не появлялись. Чтобы иметь
возможность вычислить производные Р'_, и Р' по самим данным, нам нужно на-
ложить граничное условие, гарантирующее непрерывность производной второго
порядка в точках соединения сегментов кривой:
</2Р,(п) _ J2P,41(n)
du2 du2
(6.56)
Подстановка (6.55) в (6.56) дает
2(-ЗРм + ЗР, -2Р,'„, -Р') + 6(2РМ -2Р, + р;_, + Р,') = (6 57)
= 2(-ЗР, + ЗР1+1 -2Р' - Р'+1).
Первая строка в уравнении (6.57) получается двойным дифференцированием
уравнения (6.55) и подстановкой значения и = 1. Вторая строка получается тем
же путем после получения выражения для Р1+((и) после подстановки i + 1 вместо
i в уравнение (6.55). Упрощение (6.57) дает следующее выражение:
р;, + 4Р' + р'+1 = зр(+1 - ЗР,_,. (6.58)
Подставляя в уравнение (6.58) все значения i от 1 до п - 1, мы получим приве-
денное ниже матричное уравнение;
4
1
О
1
4
1
О .
1 о
4 1
О
о
о
о
р;
р;
о
зр2 -зр0-р;
ЗРз -зр,
ЗР4 -ЗР2
(6.59)
О
О
о
О
1
О
4
1
1
4
Pl
зр„ -зр„_2 -р;
из правой части уравнения (6.59), мы мо-
Р,'_,. Получив зна-
Если нам известны значения Р'о и Р,'
жем найти значения п - 1 неизвестных переменных Р,', Р2
чения всех производных, мы можем подставить их в уравнение (6.55) и полу-
чить, таким образом, полностью определенную эрмитову кривую.
Осталось определить Р(', и Р1, то есть векторы касательных на концах кривой.
Для этого обычно выбирают один из двух методов, однако от этого выбора зави-
сит форма интерполяционной кривой. В первом случае конструктор задает на-
правления касательных вручную. Говорят, что на кривую накладывается условие
жестко закрепленных концов. Второй метод состоит в предположении об отсут-
ствии крутящих моментов на концах балки. Это эквивалентно присваиванию Р' 0
и Р'„ нулевых значений, поскольку вторая производная пропорциональна крутя-
щему моменту. Отсюда получаются приведенные ниже дополнительные уравне-
ния, выражающие заданное ограничение:
</2Р,(ц)
du2
d2P„(“)
du2
= -зро +ЗР, -2р;-р; =о.
и=0
= 2[3(P„-P„_1)-2P'
+6[2(pB_, -ря)+р;ч +рц.
Упрощение выражений (6.60) и (6.61) дает:
гр; +р; =зр, -зр0;
2Р1 . + Р'< =ЗР„ -ЗР
(6.60)
(6.61)
(6.62)
(6.63)
Перепишем матричное уравнение (6.59), переставив Р^ и Р^ в левую часть и до-
бавив уравнения (6.62) и (6.63) в начало и конец матрицы соответственно. В ре-
зультате получится новое матричное уравнение:
2
1
О
1
4
1
О
1
4
О
1
О .
О
0
О
о
О
1
О
Уравнение (6.64) позволяет найти п +
(6.64)
Различия между двумя интерполяционными кривыми, построенными по одним
и тем же точкам, иллюстрирует рис. 6.12: у одной кривой конец жестко закреп-
лен, а у другой — свободен. Обратите внимание, что интерполяционная кривая
со свободными концами как бы «распрямляется» вблизи них.
Рис. 6.12. Зависимость интерполяционных кривых от граничных условий
6.7.2. Интерполяция В-сплайном
В этом разделе мы рассмотрим вывод уравнения В-сплайна, проходящего через
точки Од, Qi,..., Q„. Нам придется определить степень, количество задающих то-
чек, их координаты, а также узловые значения параметра интерполяционного В-
сплайна. Любой В-сплайн, определяемый п + 1 и более задающими точками,
можно провести через п +1 точек, потому что у такой кривой будет п + 1 и более
степеней свободы. В-сплайн с большим числом степеней дает конструктору
большую свободу в управлении формой кривой, например направлением каса-
тельных на ее концах. В этом разделе для простоты мы рассмотрим только В-
сплайн с п + 1 задающими точками.
Сначала нужно выбрать порядок В-сплайна. Чаще всего выбирается порядок 4,
поскольку степень 3 является минимальной, удовлетворяющей требованию не-
прерывности второй производной в точках соединения. Затем определяются уз-
ловые значения. Поскольку мы решили работать с п + 1 задающими точками,
нам придется вычислить п + k + 1 узлов. Узлы можно выбрать множеством спо-
собов, так что мы воспользуемся результатами Хартли [63] и Ли [98]:
t. =0 (i = 0, -1);
t, - + <i« 4. * +1..пУ, (6.65)
m=kj=m-k
tf = 1 (i = n +1, n + 2.n + k),
где
dj -Q;|. (6.66)
Пусть нам нужно определить положение п + 1 задающих точек Ро, Pj, Рп- Эти
точки должны удовлетворять соотношению:
Q, = £₽№(«/ ) О’ = 0,1....и), (6.67)
i>0
где Uj — значения параметра, которые должны соответствовать точкам Q,. Любой
набор Uj между и tn+1 даст В-сплайн, проходящий через точки данных. Однако
гладкость этого В-сплайна будет очень сильно зависеть от выбора Хартли [63]
рекомендует для получения гладкой кривой выбирать следующие значения и/.
Uj = tj+l +t^ +- + t^-' (j = 0,1,..., n). (6.68)
К 1
Значения у, полученные из уравнения (6.68), подставляются в формулу (6.67),
в результате чего получается следующий набор уравнений для Р(:
’• к1Л(ц0') • • • р0 Р. Qo Q. (6.69)
_Р„.
Решение (6.69) относительно Р, позволяет получить координаты задающих то-
чек В-сплайна, проходящего через точки Q,.
6.8. Пересечение кривых
Мы уже показали, что для реализации булевских операций необходимо уметь
рассчитывать точки пересечения кривых. Точку пересечения приходится также
определять для отсечения части кривой другой кривой. В этом разделе мы кратко
изложим основные сведения об алгоритмах поиска точек пересечения кривых,
заданных параметрическими уравнениями. Описанный метод может использо-
ваться для расчетов с произвольными кривыми следующих типов: эрмитовы
кривые, кривые Безье, В-сплайн и NURBS. Методы расчета точек пересечения
для кривых, заданных не параметрически, а также для кривых с уравнениями
разных типов (параметрическими и непараметрическими) излагаются в работе
Хоффманна [69].
Предположим, что пересекающиеся кривые заданы уравнениями Р(и) и Q(v).
Значение параметра, соответствующее точкам пересечения, задается уравнением
P(u)-Q(0 = O. (6.70)
Обратите внимание, что уравнение (6.70) распадается на три скалярных уравне-
ния с двумя неизвестными. Выберем какие-либо две компоненты векторов, на-
пример х и у.
Px(u}-QA^^ (6.71)
= (6.72)
Решим уравнения (6.71) и (6.72) относительно и и v и воспользуемся оставшим-
ся скалярным уравнением (компонентой z уравнения (6.70)), чтобы проверить
полученные значения и ид Системы нелинейных уравнений обычно решаются
численными методами, такими как метод Ньютона—Рафсона [39]. Последний
требует вычисления производных Рх, Qn Pv, Q^, для чего нам потребуются выве-
денные в разделах 6.41, 6.5.3 и 6.6.2 формулы дифференцирования уравнений
кривых.
Решая уравнения (6.71) и (6.72) любым численным методом, мы можем столк-
нуться со следующими проблемами.
□ Итерации могут разойтись, если начальные приближения и и v окажутся
слишком далеки от настоящих решений.
□ При наличии нескольких точек пересечения может случиться, что не все они
будут найдены. Обычно возвращается решение, находящееся ближе всего к
начальному приближению.
□ Ситуация, в которой часть одной кривой точно совпадает с частью другой
кривой, не может быть обработана алгоритмом в силу его внутренних особен-
ностей. В этом случае будет возвращено неопределенное количество точек пе-
ресечения.
□ Если в некоторых местах расстояние между кривыми очень мало, координаты
этих участков могут быть возвращены в качестве точек пересечения (в зави-
симости от внутренней погрешности алгоритма).
Первая и вторая проблемы решаются последовательным заданием начальных
приближений, близких к реальным точкам пересечения. Для кривых Безье и В-
сплайнов начальные приближения могут быть получены путем аппроксимации
кривых отрезками. В приложении Ж мы показали, что аппроксимация кривой
Безье или В-сплайна отрезками получается путем последовательного деления
такой кривой. Третья проблема обычно возникает при расчете точек пересече-
ния простых кривых, например отрезков или дуг окружностей. Например, мы
можем попытаться найти численным методом точку пересечения двух дуг, лежа-
щих на одной и той же окружности, преобразовав уравнение каждой из них к
уравнению NURBS. Вспомните, что это преобразование часто выполняется для
того, чтобы одна программа могла работать с кривыми любых типов. Численный
метод не может обнаружить перекрытие, поэтому он возвратит неопределенное
количество точек пересечения, зависящее от начального приближения. Следова-
тельно, проверять возможность перекрытия следует до вызова численного метода.
Эта проверка может осуществляться путем сравнения характерных параметров
кривых, например центров и радиусов дуг, перед преобразованием их к форме
NURBS. Четвертую проблему в большинстве случаев можно решить, правда не
полностью, аккуратной настройкой точности численного метода.
Рассмотрим теперь более простой метод определения точки пересечения, кото-
рый применим в том случае, если одна из кривых является прямой. Предполо-
жим, что Р(н) — уравнение прямой, a Q(w) — уравнение кривой. Если прямая
проходит через точки, положение которых задается векторами Ро и Р,, то ее
уравнение может быть записано следующим образом:
Р(ы) =Р, +н(Р, -Ро ). (6.73)
Параметры и и v в точке пересечения должны, таким образом, удовлетворять
уравнению
P0+M(P,-P0) = Q(a). (6.74)
Умножим левую и правую части уравнения (6.74) скалярно на Рох Р,:1
(PexP,).Q(0 = O. (6.75)
Нелинейное уравнение (6.75) может быть решено относительно v численным ме-
тодом. Однако здесь нас подстерегают те же проблемы, что и раньше.
1 Уравнение получается таким, потому что скалярное произведение Ро или Pi на равно нулю
Вопросы и задачи
1.
Чтобы нарисовать эллипс, изображенный на приведенном ниже рисунке, вам
придется получить выражения для координат х и у граничных точек парамет-
рического уравнения.
1) Получить уравнение эллипса, расположенного в начале координат и на-
правленного таким образом, что его большая ось совпадает с осью х.
2) Применить необходимые преобразования к уравнению, полученному в
предыдущем пункте, для вывода уравнения эллипса, показанного на ри-
сунке.
2. Пусть эрмитова кривая, лежащая в плоскости ху, определяется следующими
геометрическими коэффициентами:
2 3' Р(0)
4 0 Р(1)
3 2 Р'(0)
3 -4 Р'(1)
1) Найти кривую Безье третьего порядка, максимально точно соответствую-
щую этой эрмитовой кривой. Иначе говоря, необходимо определить четы-
ре задающие точки кривой Безье.
2) Раскрыть уравнения обеих кривых в полиномиальной форме и сравнить их.
3. Кривая Безье с задающими точками Ао, А( и А2 преобразуется в кривую Бе-
зье с задающими точками Во, В, и В2 (см. рисунок). Преобразование должно
переместить точку Ao в В(| и Л2 в В2. Таким образом, это преобразование
должно включать в себя масштабирование.
У
1) Выбрать нужные матрицы преобразования и определить порядок их при-
менения.
2) Определить координаты задающей точки В,.
3) Записать параметрическое уравнение кривой С2.
4. Найти кривую Безье третьего порядка, аппроксимирующую четверть окруж-
ности с центром в точке (0, 0). Концы аппроксимируемой дуги: (1, 0) и (0, 1).
Найти координаты середины кривой Безье и сравнить их с координатами се-
редины дуги.
5. Изучите кривые Безье, изображенные на рисунке. Кривую 2 необходимо при-
соединить к кривой 1, переместив точку D к точке С. Нужно также обеспе-
чить непрерывность первой производной в точке соединения. Какими будут
задающие точки объединенной кривой?
6. Непериодический В-сплайн четвертого порядка определен четырьмя задаю-
щими точками:
Ро = (0, 0, 0); Р, =(6,8,0);
Р2 =(12,8,0>,Р3 =(18,0,0).
Что получится, если повернуть эту кривую вокруг оси х на 180°? Если это будет
В-сплайн, то каким будет его порядок и какие у него будут задающие точки?
7. Непериодический В-сплайн третьего порядка определен задающими точками
Ро. Рь ₽2> Рз-
1) Какими будут узловые значения параметра?
2) Из скольки различных кривых состоит В-сплайн?
3) Раскройте уравнение В-сплайна и получите уравнения кривых из преды-
дущего пункта.
8. Представить окружность единичного радиуса с центром в начале координат
кривой NURBS с семью задающими точками (см. рисунок). Вам нужно полу-
чить порядок кривой k, узловые значения параметра и однородные координа-
ты задающих точек (х • w, у - w, z • w, w).
9. Интерполируйте точки Ро(0, 0), Pi(l, 2), Р2(3, 2) двумя эрмитовыми кривыми
Pi(u) и Р2(п). Считайте, что в точках Ро и Р2 концы кривой не закреплены.
10. С помощью любой доступной вам системы автоматизированного проектиро-
вания продемонстрируйте:
О глобальность изменений для кубических сплайнов и кривых Безье;
О локальность изменений для В-сплайнов;
О выпуклость оболочки кривых Безье;
О влияние дублирования задающих точек на кривые Безье и В-сплайны.
И. Напишите программу с перечисленными ниже меню и функциями.
О Меню ввода задающих точек: позволяет пользователям вводить координа-
ты задающих точек непериодического В-сплайна третьего порядка на
плоскости ху. Максимальное количество задающих точек — 10. Задание
точек производится маркером, который устанавливается мышью в нужное
место, после чего следует нажатие на кнопку мыши (то есть мышь исполь-
зуется в режиме опроса).
О Окончание ввода: выбирается пользователем после указания всех задаю-
щих точек. При выборе этого пункта программа должна вывести на экран
В-сплайн и задающий многоугольник.
О Меню изменения задающих точек: позволяет пользователю изменять по-
ложение задающих точек (по одной). Пользователь должен иметь возмож-
ность выбрать любую задающую точку и перетащить ее в новое место.
В процессе перетаскивания система должна динамически перестраивать
новый В-сплайн вместе с задающим многоугольником.
О Меню удаления: это меню позволяет пользователю удалять В-сплайн
щелчком на любом ребре соответствующего задающего многоугольника.
О Выход: этот пункт меню завершает работу с программой.
Глава 7
Представление поверхностей
и работа с ними
Системам геометрического моделирования приходится хранить уравнения кривых
(или эквивалентные характеристические параметры) для всех ребер и уравнения
поверхностей (или эквивалентные параметры) для всех граней. Полезно знать,
какими бывают уравнения поверхностей и какими параметрами они характери-
зуются. Мы говорили, что для реализации булевских операций необходимо рас-
считывать точки пересечения кривых. В системах поверхностного моделирова-
ния с той же целью приходится определять кривые, по которым пересекаются
поверхности. Например, если поверхность в процессе моделирования отсекается
другой поверхностью, это требует вычисления кривой, по которой они пересека-
ются. Эта задача требует вычисления координат точек на поверхностях, а также
производных в этих точках. В настоящей главе мы коротко рассмотрим различ-
ные типы уравнений поверхностей и методы работы с ними: методы вычисления
координат, дифференцирования и обработки пересечений. Все эти вопросы рас-
сматриваются более подробно в книгах по вычислительной геометрии [9, 49, 48,
129, 72, 112].
7.1. Типы уравнений поверхностей
Уравнения поверхностей, как и уравнения кривых, делятся на два основных типа.
К первому типу относятся параметрические уравнения, связывающие значения
координат х, у и z со значениями параметра. Ко второму относятся непарамет-
рические уравнения, связывающие координаты х, у и z непосредственно друг с
другом какой-либо функцией. Поясним эти определения на простом примере.
Рассмотрим сферу радиуса R с центром в начале координат. Параметрическое
уравнение этой сферы будет иметь вид:
Р(п,г) = Rcosu cosv i + ftsinn cosn j + /?sinn k;
(О <u <2я,-л/2<п<л/2),
где параметр и может рассматриваться как долгота, ас- как широта.
Ту же сферу можно описать и без параметров и и v:
х2 + у2 +z2 -R2 =0 (7.2)
или
z = +>Jr2 -х2 -у2. (7.3)
Уравнение (7.2) называется неявным непараметрическим, а уравнение (7.3) —
явным непараметрическим.
У каждого типа уравнений есть свои преимущества и недостатки, но мы бу-
дем рассматривать только параметрические уравнения. Как отмечалось в гла-
ве 6, параметрическое уравнение позволяет эффективно вычислять точки на
поверхности или кривой, отстоящие друг от друга на небольшие расстояния,
что облегчает интерактивное отображение объекта и работу с ним. Это одна
из главных причин, по которым параметрические уравнения используются
для представления поверхностей в большинстве систем автоматизированного
проектирования’.
7.2. Билинейная поверхность
Билинейная поверхность (bilinear surface) строится по четырем заданным точкам
и описывается линейными уравнениями с параметрами и и v. Эти точки ока-
зываются в углах построенной поверхности. Мы обозначим их буквами Роо, Р( 0,
Рол. Р|.1 (рис. 7.1). Вывести уравнение билинейной поверхности — это значит
найти выражение для координат произвольной точки по значениям параметров
миг). Предположим, что эта точка делит отрезок [Р0,„Р1г, ] в отношении u:(i - и)
(рис. 7.1). Точки Ро„ и Р| г делят отрезки Р00Р0| и Р| 0Р,, соответственно в отно-
шении г):(1 - v). Определенная таким образом точка Р(м.г') будет перемещаться
по всей поверхности при изменении параметров и и v от 0 до 1. С учетом сделан-
ных предположений координаты точек Р0(, и Р, „ запишутся следующим образом:
Ро, = (1-г))Р00+г)Р01; (7.4)
Р1С =(1-г))Р,0+г)Р11. (7.5)
1 Кривые, по которым пересекаются поверхности, в некоторых случаях бывает удобно рас-
считывать, представляя одну из этих поверхностей параметрическим уравнением, а дру-
гую — непараметрическим. Поэтому в некоторых системах могут использоваться и
непараметрическпе уравнения поверхностей, хотя и не как основной тип уравнений для
хранения сведений о кривых. В этом случае возникает потребность в процедуре преобра-
зования из параметрической формы в непараметрпческую и обратно. Такое преобразова-
ние рассматривается в работе [69].
Аналогичным образом получаются координаты точки P(u,v):
P(u,v) = (i-u)POv+uPlv. (7.6)
Подстановка уравнений (7.4) и (7.5) в (7.6) даст нам приведенное ниже уравне-
ние билинейной поверхности:
P(u,0 = (1-u)[(1-d)Poo +г)Р01] + м[(1-г)Р10 +гР1Л] =
= [(l-u)(l-r) u(l-v) (l-u)v uv]
^0,0
P.,0
Рол
p..
(7-7)
Мы можем убедиться, что заданные точки расположены по углам билинейной
поверхности, подставив соответствующие комбинации нулей и единиц в уравне-
ние (7.7). Это уравнение говорит нам также о том, что билинейная поверхность
представляет собой сопряжение угловых точек при помощи функций сопряже-
ния (1 - u)(l - v), и(1 - г), (1 - u)v, uv. Из-за того что эти функции сопряжения
линейны по соответствующим параметрам, билинейная поверхность обычно
оказывается плоской.
7.3. Лоскут Куна
Сопряжение углов дает билинейную поверхность. Сопряжение граничных кри-
вых произвольной формы дает поверхность, называемую лоскутом Куна (Coon’s
patch). Слово «лоскут» указывает на то, что описываемая поверхность представ-
ляет собой сегмент, соответствующий значениям параметров 0 < м < 1, 0 <v < 1.
Комбинирование лоскутов позволяет образовать поверхность произвольной
формы и размера.
Уравнение лоскута Куна выводится следующим образом. Предположим, что нам
известны уравнения четырех граничных кривых: Р0(г), Р, (v), Q0(w) и Q,(w)
(рис. 7.2). Предположим также, что направление кривых Q0(w) и Q( (и) совпада-
ет (на рис. 7.2 эти кривые направлены вправо, что обозначено стрелкой). То же
предположение мы выскажем и относительно Р0(г) и Р, (и).
Т 0о(и)
Рис. 7.2. Граничные кривые, определяющие лоскут Куна
Если граничные кривые не удовлетворяют этим требованиям, вам придется вы-
полнить преобразование их к описанному выше виду. Направление и интервал
изменения параметра легко изменить инверсией или масштабированием [120].
Удовлетворяющие описанным требованиям кривые интерполируются так, как
показано ниже.
Выберем две кривые, расположенные друг напротив друга, например Р0(г) и
Р,(и). Интерполяция этих кривых в направлении и осуществляется линейным
уравнением
Р1(м,г) = (1-м)Р0(г)) + мР1(г). (7.8)
Поверхность, определенная уравнением (7.8), будет ограничена кривой Ро (г) при
и = 0 и кривой Р, (г) при и = 1. Однако две другие границы будут отрезками пря-
мых, соединяющих угловые точки. Убедиться в этом можно, подставив в уравне-
ние (7.8) v = 0 или v = 1. Таким образом, полученная поверхность не ограничива-
ется кривыми Qo(w>Qi («)•
Определим вторую поверхность, интерполируя Q0(w) и Q0(a) в направлении v:
P2(w,r) = (l-r)Q0(w) + rQl(u). ' (7.9)
Подставляя граничные значения и и v в уравнение (7.9), можно убедиться, что
новая поверхность ограничивается кривыми Q0(u) и Q0(d), но не Р0(и) или
Р, (г). Попробуем определить еще одну поверхность Р3 (и, г), сложив Р, (и, v) и
Р2(и,г), и проверим, не будет ли она ограничиваться требуемыми кривыми.
Р3 (и,г) = (1 -и)Р0 (г) + и Р, (г) + (1 -r)Qo(w) + »Qi (w)- (7.10)
Подстановка граничных значений и и г в (7.10) дает:
P3(O,r) = Po(r) + (l-r)Qo(0) + rQ,(0): (7.11)
P3(l,D) = Pl(r)-t-(l-r)Q0(l) + DQ1(l); (7.12)
P3(w,0) = Qo(w) + (l-w)Po(0) + uP1(0): (7.13)
P3(u,l) = Q1(w) + (l-w)P0(l) + wP1(l)- (7-14)
Если P3(u,r) удовлетворяет поставленным требованиям к граничным кривым,
правые два слагаемых в уравнениях (7.11)-(7.14) должны быть равны нулю. За-
метьте, что эти слагаемые представляют собой интерполяцию конечных точек
соответствующих граничных кривых. Другими словами, слагаемые, которые
должны быть равны нулю, описывают границы билинейной поверхности. Следо-
вательно, правильное выражение для лоскута Куна получается вычитанием
уравнения билинейной поверхности из Р3 (u,v):
P(u,d) = (1 -м)Р0(г) + иР,(v) + (1 -r)Qo(w) + »Qi(w)~(1 -w)(l-»)po,o - (7.15)
-u(l-r)P10-(l-w)rP0l-wrP,, (0<м<1, 0<r<l).
ЗдесьР00 =Po(O)=Qo(0),Plo =Qo(l)=PI(0),Pw =₽O(1)=Q. (0).Pu =P.(1)=Q.(D-
Благодаря простоте концепции и уравнений лоскут Куна использовался доста-
точно широко. Однако он непригоден для точного моделирования поверхно-
стей, поскольку форма поверхности не может задаваться одними лишь ее гра-
ницами.
7.4. Бикубический лоскут
Бикубический лоскут (bicubic patch) — это поверхность, определяемая полиноми-
альным уравнением третьего порядка по параметрам и и к
зз
P(w,n) = £(0<w<l, 0<р<1). (7.16)
1-0 у=0
Уравнение (7.16) можно переписать в матричной форме:
°03 1
P(u,v) = [1 и и2
и3]
°оо
I °ю
а20
_азо
°01
«и
°21
Й31
а ог
а12
° 22
й32
°13
° 23
азз
V
v2
v3
(7-17)
В уравнениях (7.17) — алгебраические векторные коэффициенты с компонен-
тами х, у и г. Влияние этих коэффициентов на форму поверхности не является
интуитивно понятным, точно так же, как по алгебраическим коэффициентам
уравнения (6.10) нельзя было представить себе форму кривой. Возникает жела-
ние заменить алгебраические коэффициенты на геометрические, что было сдела-
но ранее при выводе эрмитовой кривой. Поскольку алгебраических коэффици-
ентов для поверхности насчитывается 16 штук, нам нужно ввести 16 граничных
условий.
Первый набор граничных условий мы получим, потребовав, чтобы четыре гра-
ничные точки Р(0,0),Р(0,1),Р(1,0),Р(1,1) удовлетворяли уравнению (7.17). Что-
бы получить второй набор граничных условий, мы зададим векторы касательных
к граничным кривым поверхности в угловых точках по параметрам и и и. Ри (0,0),
Р„(0,1), Ри(1,0), Ри(1,1)и Р;1(0,0), РДОД), Рг.(1,0), Р„(1,1). Перечисленные гранич-
ные условия определяют форму граничных кривых поверхности, поскольку они
определяют конечные точки этих кривых и векторы касательных в этих точках.
Через заданные граничные кривые можно провести бесконечно много поверхно-
стей, поэтому нам придется добавить граничные условия, которые определяли
бы форму внутренней области поверхности. Мы потребуем, чтобы вторая произ-
водная в угловых точках имела определенные значения Риг,(0,0), Рис(0,1), Рда(1,0),
Ри,(1,1). Под второй производной мы понимаем следующее выражение, называе-
мое вектором кручения (twist vector):
d2P(u,v)
ди dv
Ниже мы обсудим влияние векторов кручения в угловых точках на форму внут-
ренней области поверхности.
Подстановка 16 граничных условий в уравнение (7.17) даст нам 16 линейных
по ai} уравнений. Эти уравнения образуют систему, результат решения которой
подставляется обратно в уравнение (7.17)1, что дает нам приведенное ниже урав-
нение бикубического лоскута:
1 Уравнение эрмитовой кривой получается при помощи аналогичной процедуры.
Р(н,г>) =
I = [F'(u) F2(u) Fa(u) F4(«)l P(0,0) P(l,0) PB(0,0) PB(1,O) P(0,l) P(l.l) PB(1.0) PB(1.1) P„(0,0) P;d,0) Pw.(0,0) P„,(1.0) P,.(0,l)‘ p.,(l-l) PB,.(O,1) PBt.(M) F2{v) F3{V) № (7.18)
(0<н <1, 0<г<1), где функции сопряжения F(, F2, F3 и F4 определяются следующим образом:
F,(w) = l-3w2 +2u3;
F2(m) = 3w2 -2w3;
F3(w) = u -2u2 + u\
(7Л9)
F4(w) = -w2 +u3.
Это те же функции сопряжения, что и в уравнении эрмитовой кривой. Вообще
говоря, уравнение (7.18) представляет собой попросту расширение уравнения
эрмитовой кривой для описания поверхности. Уравнение (7.18) может быть
редуцировано до уравнения кривой путем подстановки конкретного значения
одного из параметров, например v = &0. Произведение последних двух матриц в
правой части уравнения (7.18) дает вектор-столбец. Это умножение может быть
интерпретировано следующим образом. Первая строка дает уравнение левой
граничной кривой между Р(0,0) и Р(0,1), а вторая строка дает уравнение правой
граничной кривой между Р(1,0) и Р(1,1) (рис. 7.3). При подстановке конкретно-
го значения v0 первые две строки дают нам конечные точки А и В. Последние две
строки столбца для v= о0 задают векторы касательных в направлении и в точках
А и В. Последнее утверждение мы проверим позже. Следовательно, уравне-
ние (7.18) представляет собой объединение уравнений эрмитовых кривых, соот-
ветствующих разным значениям о. Граничные кривые, определяемые условиями
v = 0 и v = 1, будут эрмитовыми кривыми. Аналогичным образом можно пока-
зать, что и граничные кривые для и = 0, и = 1 тоже будут эрмитовыми.
Рис. 7.3. Изопараметрическая кривая v = v0
При попытке воспользоваться уравнением (7.18) мы столкнемся с проблемой за-
дания векторов кручения, влияние которых на форму поверхности не является
интуитивно понятным. Иногда для простоты им присваивают нулевые значения.
Получаемая таким способом поверхность называется лоскутом Фергюсона или
F-лоскутом {Ferguson's patch или F-patch). Поскольку нулевые векторы кручения
делают поверхность более плоской, F-лоскут не может использоваться для моде-1
лирования поверхностей с большой кривизной. Однако он хорошо описывает
поверхности с нулевой кривизной по крайней мере в одном направлении во всех
точках.
Покажем теперь, как векторы кручения влияют на форму внутренней области
поверхности. Если мы сможем показать, что векторы кручения определяют фор-
му изопараметрической кривой v = ь0 на рис. 7.3, мы сможем утверждать, что эти
векторы влияют на любую внутреннюю изопараметрическую кривую, а значит, и
на всю внутреннюю область лоскута. Точки А и В определяются граничными
кривыми — эрмитовыми кривыми, которые не зависят от векторов кручения.
Следовательно, мы должны показать, что векторы касательных в точках Л и В
определяются векторами кручения. Сделаем это, продифференцировав уравне-
ние (7.18) по параметру и:
дР(и,и)
ди
№(«) dF2(u) dF3(u) dFitu) ’P(0,0) P(l,0) P(0,l) P(l.l) РД0.0) P„(1.0) РД0.1)’ P„(M) Ft (»)’ B2(r)
du du du du РД0.0) PB(1.0) Pu„(0,0) PU0.1) F3(f)
LPud.o) PB(M) РД1,0) P^(X.1>J [w]
Gt(v\
= [-6w + 6w2 6u-6w2
l-4u + 3a2
-2u + Зн2]
G2(0
G3(r)
G4(h)J
(7.20)
Обратите внимание, что произведение второй и третьей матриц мы записали в
виде вектора-столбца с элементами G((r), G2(d), G-4(?j), G4(r). Чтобы вычислить
производную по и в точке А, мы должны подставить в уравнение (7.20) значения
и = 0, v = г0. Подстановка и = 0 в вектор-строку делает ее равной [0 0 1 0], благо-
даря чему получается, что Р„(Л) = G3(r0 ). Поскольку G3(r0) определяется векто-
рами Рв(0,0), Ри (0,1), РИ1,(0,0) и Ра1,(0,1), мы заключаем, что векторы кручения
Р„,(0,0) и Pw(0,1) определяют Р„(Л).
Подставим и = 1, v = v0 в уравнение (7.20), чтобы выяснить, от чего зависит Рв (В):
Gt(»0)
Pu(B) = [0 0 0 1]
G2(r0 )
G3(r0 )
G4 (г'о )
F.^o)
(7-21)
= G4(uo) = [P„(1,0)
P„(l,l) Ри,(1,0) РД1.1)]
F2(»o)
F3(&o)
Л^о)
Мы показали, что вектор касательной в точке В зависит от векторов кручения
Рм,(1,0) и Риг,(1,1). Отсюда мы делаем вывод, что векторы кручения влияют на
любую внутреннюю изопараметрическую кривую, а следовательно, определяют
форму бикубического лоскута.
7.5. Поверхность Безье
Можно расширить концепцию кривой Безье, определяемой задающим много-
угольником, на одно измерение, в результате чего получится поверхность Безье,
определяемая задающим многогранником. Уравнение поверхности Безье выгля-
дит следующим образом:
= (0 <м < 1,0 <о < 1), (7.22)
1=0 у=0
где Р, у — радиус-векторы задающих точек, находящихся в вершинах задающего
многогранника (рис. 7.4), a В,п и BJnl — функции сопряжения, обычные для кри-
вых Безье. Таким образом, степень уравнения поверхности по и и v определяется
количеством задающих точек в соответствующих направлениях.
Уравнение (7.22) можно раскрыть, записав сумму по j в явном виде:
Р(н,г) = £р,оВо.Л”) + Р(.АЛ0+ - +P,.mBm.m(r)]Bjn(H). (7.23)
»=0
Уравнение (7.23) иллюстрирует, что поверхность Безье получается сопряжени-
ем п + 1 кривых Безье, каждая из которых определяется задающими точками Р, 0,
Р,д, Pj2,..., Р, т, сопрягаемыми функциями Д „(н). Можно показать, что та же по-
верхность Безье получается при сопряжении т + 1 кривых Безье, определяемых
задающими точками POj, Р1у, Р2 , ... , PBJ. и функциями Bjm(v). Итак, поверх-
ность Безье получается, если задающие точки кривой Безье заменить кривыми
Безье.
Займемся исследованием свойств поверхности Безье. Сначала нужно показать,
что четыре угловые задающие точки задающего многогранника лежат на по-
верхности Безье. Для этого мы подставим граничные значения параметров и и v
в уравнение (7.22). Подстановка и = 0 и v = 0 дает:
Ц 7И
Р(0,0) = £Х
i=0 >«0
7И
Рь>^п(0)Ву,т(0) = 1 ЕР^Ву.ДО) В<п(0) =
i=o|_;=o
(7.24)
Равенство (7.24) показывает, что задающая точка Роо лежит на поверхности и
юответствует значениям параметра и = 0, v = 0. Та же процедура позволяет про-
юрить, лежат ли остальные угловые задающие точки (Ри0, Ро,™ Р„,т) на поверх-
юсти.
3 дополнение к этому мы можем показать, что граничные кривые поверхности
эезье также являются кривыми Безье, определяемыми соответствующим коли-
(еством задающих точек. Подставим и = 0 в уравнение (7.22), чтобы получить
'равнение одной из граничных кривых.
пт т п ( »7 ।
р(о^) = Е1р,.>в;.п(О)вЛи(п) = £ £p, J . н'(1-кГ' Bjjn(v) =
-=°>=0 ;M>L>=0 kv Ju=o (7.25)
= £Ро.>Л.Л&)-
Сравнение (7.25) говорит нам о том, что граничная кривая, соответствующая
начению параметра и = 0, является кривой Безье с задающими точками Роо,
*o i,.... РОт. Аналогичным образом можно показать, что оставшиеся три гранич-
ые кривые также являются кривыми Безье, а их задающие точки являются
райними вершинами задающего многогранника. Поскольку вектор касательной
а конце кривой Безье определяется соседней с концом задающей точкой, векто-
ы касательных в направлении v в точках Роо и Ро„, определяют точки Р01
Po^n-i соответственно. Следовательно, Р01 и РОт_( играют ту же роль, что и
t,(0,0) и Рг,(0,1) для бикубического лоскута. Если с этой точки зрения подойти
поверхности Безье степени 3 по и и v (см. рис. 7.4), можно сделать следующее
гверждение. Задающая точка Pt0 играет ту же роль, что и Ри (0,0) для бикубиче-
сого лоскута, Р2>0 — ту же, что Р„(1,0), Pj 3 — ту же, что Ри(0,1), Р23 — ту же, что
и(1,1), P0,i — ту же, что Р„(0,0), Р0 2 — ту же, что P„(0,1), Р31 — ту же, что Pt,(l,0),
з,2 ~ ту же, что Рр(1,1). Следовательно, эти восемь задающих точек вместе с че-
ярьмя угловыми задающими точками определяют граничные кривые поверхно-
'и. Оставшиеся четыре задающие точки Р,„ Р21, Р12, Р22 определяют форму
1утренней области поверхности подобно векторам кручения бикубического
эскута.
1ы уже отмечали, что степень поверхности Безье определяется количеством за-
1ющих точек. Уравнения поверхностей высоких степеней страдают теми же не-
Достатками, что и уравнения кривых высоких степеней, поэтому при моделиро-
вании поверхностей обычно используются поверхности Безье степени 3 по и и v,
точно так же как при моделировании кривых использовались кривые Безье сте-
пени 3. При необходимости смоделировать сложную поверхность приходится
создавать несколько поверхностей Безье третьей степени и соединять их друг с
другом. Поверхности должны соединяться таким образом, чтобы обеспечивалась
непрерывность на границе, по которой осуществляется соединение. Это достига-
ется наложением ограничений иа задающие точки, расположенные слева и спра-
ва от границы. Ограничение состоит в том, что эти точки должны лежать на пря-
мой линии, проходящей через задающею точку, лежавшую на общей границе
(рис. 7.5). Если это требование выполняется, первая производная оказывается
непрерывной во всех точках границы [72, 138, 46|.
7.5.1. Вычисление поверхности Безье
Координаты х, у и z точки поверхности Безье, соответствующей значениям пара-
метров и = и0 и v = v0, вычисляются по формуле:
п т
Р(«о>»о ) = X ЕРы В,.„(«о ). (7.26)
i=0 У=0
Перепишем уравнение (7.26), раскрыв сумму по i:
п т
Р(«о-^о) = Е Ep,.,A„(uo )Bh m(u0) =
j-0 ;=o
ni ni
= £Po.A.m(M Bo,,(«o)+ ZPi.,B,.m(^o) ^.„(«0 )+••• +
J=0
(7.27)
J=0
m
B„.„(«o)-
В уравнении (7.27) сумма E7=oPojB;.„,(^o) вычисляется при помощи алгоритма
де Кастильо по задающим точкам Ро у. Алгоритм де Кастильо описан в приложе-
нии Е. Тем же методом вычисляются и все остальные суммы. Если обозначить
их символами Со, Q, ... , С„, то уравнение (7.27) можно будет переписать так:
P(«o,»o ) ~ С0В0,„(и0 ) + С|В1п(и0 )+...+С„Впп(и0 ) —
= Zc,.b,.„(Uo).
1=0
(7.28)
Выражение (7.28) также может быть вычислено по алгоритму де Кастильо для
задающих точек С,.
7.5.2. Дифференцирование поверхности Безье
В системах геометрического моделирования часто возникает потребность в вы-
числении вектора нормали в произвольной точке поверхности. Например, для
отображения затушеванного изображения поверхности необходимо определять
угол между падающим светом и нормалью к поверхности в каждой ее точке. Век-
торы нормали также используются для вычисления положения фрезы при обра-
ботке поверхности станком с ЧПУ.
Итак, нам нужно уметь вычислять производные
SP(u,n) dP(u,v)
ди dv
в любой точке поверхности, поскольку вектор нормали определяется произведе-
нием этих частных производных. Вычислить производную по и для поверхности
Безье в точках и - и0 и v = v0 можно так, как показано ниже. Производная по v
вычисляется аналогичным образом.
Дифференцируя выражение (7.23) по и, получим
du |_j=o
d Г£р1-.л1>(«)Ът.т(^
J=0
ди du
(7.29)
du
du
Перепишем коэффициент перед BOm(v) в уравнении (7.29), используя результат
из раздела 6.4.1 в следующем виде:
л Г п 1 •
-Г ЕЗД.» =1
J-0
1=0
n-f
г
(7.30)
du\_to
где aj0 =Pi+10 -P.o,
Правую часть выражения (7.30) можно вычислить для произвольного значения
«о по алгоритму де Кастильо (см. раздел 6.4.1). Тем же путем осуществляется
вычисление коэффициентов B).m(f), B2m(v), ..., Bmm(v) для и0. Если обозначить
полученные значения коэффициентов символами Со, Сь ..., С„, выражение (7.29)
можно будет переписать в виде
ЗР(и и} т
~~ =С0В0т(п) + С1В1.И(п)+ ... +CmBra.m(0 = £С;Вм(п). (7.31)
u'(l-u)n-,"'ajX),
Выражение (7.31) вычисляется также по алгоритму де Кастильо по задающим
точкам С,-.
7.6. В-сплайновая поверхность
Подобно тому как от уравнения кривой Безье мы перешли к уравнению поверх-
ности Безье, мы можем перейти и от уравнения В-сплайна к уравнению В-сплай-
новой поверхности:
п т
P(u,v) = YYp.jNijXu')Njj(v') (S*-1 ^u<sn^,tIA <?m+1), (7.32)
i=a j=o
где Pj j — задающие точки, расположенные в вершинах задающего многогранни-
ка, как и для поверхности Безье, a N^u) и A^z(r) — функции сопряжения, ис-
пользуемые для построения В-сплайнов. Эти функции сопряжения определяют-
ся узловыми значениями s0, st) ..., sn+t и t0, tb ..., соответственно. Диапазоны
параметров используются в определении В-сплайна, поскольку функции сопря-
жения N^u) и Nji(v) определены только на этих интервалах, что уже демонст-
рировалось в главе 6. Это верно как для периодических узлов, так и для непе-
риодических. Мы будем рассматривать только непериодические узлы по тем же
причинам, что и раньше. В этом случае функции сопряжения В-сплайна будут
совпадать с функциями сопряжения поверхности Безье, если k = n + l, I = т+ 1.
Поэтому можно утверждать, что поверхность Безье является лишь частным слу-
чаем В-сплайновой поверхности, а уравнение (7.32) описывает как поверхности
Безье, так и В-сплайновые. Чаще всего порядки k и I принимаются равными 4,
поскольку степени уравнений, описывающих поверхности, не должны превы-
шать 3.
В-сплайновая поверхность с непериодическими узлами обладает свойствами, на-
поминающими поверхность Безье (например, четыре угла задающего многогран-
ника лежат на поверхности, а граничные кривые представляют собой В-сплайны,
определяемые соответствующими подмножествами задающих точек). Покажем,
что значению параметра и - 0 соответствует граничная кривая, являющаяся В-
сплайном. Подстановка и = 0 в уравнение (7.32) дает1
П1
p(o,o = Z £р.Л..Д«)
;=oLi=O Ju=O
^./(^) = Ера;^.;(г).
>'0
(7.33)
В соответствии с формулой (7.33), граничная кривая при и = 0 является В-сплай-
ном с задающими точками Роо, Рол,.... РОт. Аналогичным образом можно пока-
зать, что и остальные граничные кривые являются В-сплайнами, а их задающие
точки являются крайними вершинами задающего многогранника.
7.6.1. Вычисление В-сплайновой поверхности
Координаты х, у и z точки на В-сплайновой поверхности, определяемой значе-
ниями параметров и = и0, v = t)0, вычисляются по формуле
я т
P(u0,v0 ) = Х^Р^и0)Njd(u0). (7.34)
1=0 у=0
Выражение (7.34) можно переписать, раскрыв суммирование по г:
1 При выводе (7.33) использовался тот факт, что | V” ?Р,7У, t(«)l„=n = Р0-
P(u0,v0) = XPo.j^jj(Po) M>,*(“o) +
(7.35)
m
>0
+ £Р.Ль/(со) МД«0)+- + £рпЛ;^о) Ч^("о)-
Ь=0
Сумма }Г”Г0 P0.j-,Nj,j (ио ) может быть вычислена при помощи алгоритма Кок-
са—де Бура по задающим точкам POj и узловым точкам параметра v (см. прило-
жение Ж). Обозначим эту сумму символом Со. Все прочие суммы вычисляются
аналогичным образом и обозначаются Сь ..., С„. После этого становится возмож-
ным записать уравнение в форме
P(“o.fо ) = СоМ).*(“о ) + Ci М.*(мо )+•••+ C„Nn k{u0 ). (7.36)
Выражение (7.36) также вычисляется при помощи алгоритма Кокса—де Бура по
задающим точкам С, и узловым значениям и.
7.6.2. Дифференцирование В-сплайновой поверхности
По причинам, изложенным в разделе 7.5.2, достаточно часто возникает необхо-
димость вычисления производных вида
dP(u,v) SP(u,v)
ди ’ dv
в произвольной точке поверхности. Вычислить производную по и для В-сплай-
новой поверхности в точках и = uQ и v = v0 можно так, как показано ниже. Произ-
водная по v вычисляется аналогичным образом.
Раскроем выражение (7.32), записав в явном виде сумму по j:
P(u,v) = iP^N^fu) N0J(v)+ YPi.iNiAu>) Aru(0+- +
J=0
_i=0
(7.37)
+ SP..AOO ^./(0-
j=o
Дифференцируя выражение (7.37) по и, получим:
SP(u,v) d Га 1
-----=— 2AoM.t(“) N0J(v) +
J=o
du du
d n
du Li-o
d [ ”
-j- Ер,,л,л(«)
du |_f=o
(7.38)
Коэффициент перед Nol(v) в формуле (7.38) представляет собой производную
В-сплайна с задающими точками Р,о и может быть вычислен для произвольного
значения п0 на основе соображений, изложенных в разделе 6.5.3. Обозначим зна-
чение этого коэффициента символом Со. Аналогичным образом вычисляются
коэффициенты перед N2j(v), .... Nmj(v). Их мы обозначим Сь С2, ..., Ст.
После этого выражение (7.38) можно будет записать так:
cPfw ZA ,п
~ ~ =CoNol(v)+ClNlJ(.v)+... + CmNmJ(v) = XCjNjjW). (7.39)
Выражение (7.39) мы вычислим также при помощи алгоритма Кокса—де Бура
по задающим точкам С, и узловым значениям v.
7.7. Поверхность NURBS
Перейдя к однородным координатам задающих точек, из уравнения В-сплайна
мы получили уравнение NURBS-кривой. Точно так же уравнение поверхности
NURBS получается из В-сплайновой поверхности:
р(“^) = --------------- (s*-i - г/-1 v < tm+l ), (7.40)
1=0 j=o
где P,j — векторы задающих точек с компонентами х, у и z, a — однородные
координаты задающих точек. Обратите внимание, что узловые значения и диа-
пазоны значений параметров совпадают с указанными в формуле (7.32).
Уравнение (7.40) становится уравнением В-сплайновой поверхности при h,j = 1.
Покажите самостоятельно, что при /г,у = 1 знаменатель (7.40) тождественно равен
единице. Следовательно, уравнение В-сплайновой поверхности является част-
ным случаем уравнения NURBS-поверхности. Поверхность NURBS к тому же
позволяет точно описать квадратичные поверхности, такие как цилиндр, конус,
сфера, параболоид и гиперболоид. Эти поверхности называются квадратичными,
потому что их уравнения имеют степень 2 по и и v. Уравнение NURBS-поверх-
ности часто используется для внутреннего представления квадратичных поверх-
ностей в системах геометрического моделирования.
Проиллюстрируем использование уравнений NURBS-поверхности в системах
объемного моделирования на нескольких примерах. Первый пример: поверх-
ность, полученная трансляцией кривой (рис. 7.6). Предположим, что трансли-
руемая кривая задана NURBS-уравнением. Это предположение не накладывает
никаких ограничений, поскольку уравнение любой кривой из рассмотренных
нами может быть преобразовано к форме NURBS. Пусть порядок этой кривой I,
узловые значения tp (р = 0, 1. ...j т + /), задающие точки Ру (т + 1 штук).
th^N^v)
Р(0 = -------- (tw < v < ). (7.41)
;=0
Граничная кривая поверхности NURBS представляет собой NURBS-кривую с
соответствующими задающими точками, которые являются крайними вершинами
задающего многогранника поверхности. Порядок и узловые значения граничной
кривой совпадают с теми же характеристиками поверхности в соответствующем
направлении. Мы уже показали, что этим свойством обладают В-сплайновые по-
верхности. Следовательно, задающие точки, порядок и узловые значения поверх-
ности в одном из направлений, совпадающем с направлением изменения пара-
метра кривой, получаются из характеристик транслируемой кривой, поскольку
она является одной из граничных кривых. В частности, задающими точками на
одном из краев поверхности будут точки Р, (рис. 7.6). Далее, порядок поверхно-
сти в направлении v будет равен I, а узловые значения будут равны tp (если на-
правления параметров выбрать так, как показано на рис. 7.6).
Рис. 7.6. Поверхность трансляции
Однако нам нужна информация о характеристиках поверхности в направле-
нии и. Предполагается, что направление и совпадает с направлением трансляции
(рис. 7.6), а значит, в этом направлении достаточно линейного уравнения. Сле-
довательно, порядок NURBS-кривой в этом направлении будет равен 2 и задаю-
щих точек тоже будет две. Узловые значения в направлении и будут равны О, О,
1,1, а наборов узловых точек будет два. Один набор, как уже отмечалось, получа-
ется из а второй набор получается трансляцией Ру на расстояние d в направ-
лении трансляции. Однородные координаты для обоих наборов будут совпадать
с hj транслируемой кривой. Итак, координаты х, у и z задающих точек Р,-у и одно-
родные координаты hy описываются следующими выражениями:
Ро, =Рр
Рм=Ру+</а; (7.42)
hoj =htj =hjt
где d — расстояние трансляции, а а — единичный вектор в направлении трансля-
ции.
Уравнение NURBS-поверхности может быть записано так, как показано ниже.
Вычисление осуществляется подстановкой нужных значений параметров:
1 т
Р(К1))=«^------------------(0^1,tz_. (7.43)
Y/LKiNiA“)Njj(v)
i~0 j=0
Обратите внимание, что Njj(v) в уравнении (7.43) определяется узловыми значе-
ниями tp.
NURBS-уравнение (7.43) может использоваться для представления любой по-
верхности, полученной трансляцией кривой. Например, это NURBS-уравнение
может быть применено для описания цилиндрической поверхности, полученной
трансляцией полуокружности, лежащей в плоскости ху, вдоль оси z (рис. 7.7).
Сначала нам нужно задать NURBS-представление полуокружности. Воспользу-
емся результатами примера 6.6. Задающие точки будут иметь следующие коор-
динаты: Ро =(1,0,0), h0 =1; Р, =(1,1,0), Л, =±; Р2 =(0,1,0), h2 =1; Р3 =(-1,1,0), h3 =-L-, Р4 =(-1,0,0), h4 =1.
порядок кривой должен быть равен 3, а ее узловые значения равны 0, 0, 0, 1, 1, 2,
2, 2. Координаты задающих точек цилиндрической поверхности будут такими:
Ро.о =Ро> Р|,о = Ро + Нк, h00 = й10 =1;
Род = Р[, Р1л = Р( + Нк, h01 = hlt = —j=',
Ро2 = P?> P],2 =®*2 + Hk, h02 = hl2 =1;
P03 =Рз> Pj.3 =Рз + Hk, h03 = hi3
Рол =^*4> P|,4 = P4 + Hk, hM =hlA =1,
где Poo, Po>1, P02, Po,3 и P0>4 обозначают задающие точки нижней дуги, a Р10, Pj b
Pi,2» Р1,з и Pi 4 — задающие точки верхней дуги; k — единичный вектор в направ-
лении оси z. NURBS-уравнение цилиндрической поверхности получается под-
становкой P,j и hjj в уравнение (7.43) с учетом того, что I = 3 и т = 4. Узловые
значения в направлении v равны 0, 0, 0, 1, 1, 2, 2, 2, а в направлении и они равны
О, 0, 1, 1.
Рис. 7.7. Трансляция полуокружности
Рассмотрим другой пример — поверхность вращения. Пусть вращаемая кривая
лежит в плоскости xz, ось вращения совпадает с осью z, а направление кривой
совпадает с направлением параметра v создаваемой поверхности (рис 7.8).
Предположим, что мы имеем дело с NURBS-кривой порядка I с узловыми значе-
ниями tp (р = О, 1,.... т + Г) и задающими точками Ру(ти + 1 штук) и hj (однород-
ные координаты задающих точек). Можно предположить, что каждая задающая
точка Ру разделится на девять задающих точек, определяющих круговое попереч-
ное сечение (рис. 7.8).
Подробное описание этого метода приводится в работе [126]. Девять задающих
точек поверхности имеют следующие координаты:
P<V ~Рр
=р<м+*J = P;+*Д
P2J = Pl.j - Xj i = P,; - xJ (i - j), h2J = hj;
p3j = P2J -x,i = Py -Xy (2i - j), h3j =
=p3.j -*J=P, "4»> Kj =hJ’
P5J = p4j -Xу j = Py -Xy (2i + j), h5j
p6j = P5.j + Xy i = Py -Xy (i + j), h6j = Лу;
p7> = P6J + Xj i = P; -Xj i, Л7у = Лу •
Pbj ~ Poj = Pj • h8J = hj.
Уравнение поверхности может быть записано в виде
8 rn
₽(«.») = (0 < n < 4, tz_, < v < tm+i ). (7.44)
1=0 j=O
Обратите внимание, что порядок поверхности в направлении и равен 3, потому
что степени 2 достаточно для представления окружности. Узловые значения Nj,
получаются из NURBS-представления вращаемой кривой, а узловые значения
ДГ3 следуют из узловых значений представления полуокружности: 0, 0, 0, 1, 1, 2,
2, 3, 3, 4, 4, 4.
Чтобы вычислить координаты х, у и z точки на NURBS-поверхности, мы должны
подставить соответствующие ей значения параметров и = и0 и v = v0 в уравне-
ние (7.44). Тогда мы сможем заметить, что числитель и знаменатель в этом выра-
жении имеют тот же вид, что и в уравнении В-сплайновой поверхности. Поэтому
мы можем воспользоваться методом для вычисления В-сплайновых поверхно-
стей, правда, с небольшим изменением для учета однородных координат: при
вычислении числителя hj jPjj подставляется вместо Р, а при вычислении знаме-
нателя hjj подставляется вместо Р, ?.
Кроме того, можно вычислить производные NURBS-поверхности, применив мето-
ды, использованные для вычисления В-сплайновой поверхности и ее производных.
Проверку этого утверждения предоставляем читателю в качестве упражнения.
7.8. Интерполяционная поверхность
Мы уже рассматривали проблему создания кривой, проходящей через заданные
точки, — интерполяционной кривой. Часто возникает необходимость построе-
ния поверхности, проходящей через заданные точки. Особенно часто это требу-
ется при создании геометрической модели по существующей физической. Суще-
ствует множество методов интерполяции точек данных; эти методы основаны на
различных уравнениях интерполяционных поверхностей. В этом разделе мы вы-
ведем уравнение В-сплайновой поверхности, проходящей через заданные точки.
Обозначим точки (р = 0, 1,..., п; q = 0, 1,..., тп) в соответствии с рис. 7.9. По-
скольку эти точки накладывают (и + 1)х (m+ 1) ограничений, можно выбрать лю-
бую В-сплайновую поверхность с числом задающих точек не менее
(n+ 1)x(ztz+ 1). Для простоты мы рассмотрим В-сплайновую поверхность, число
задающих точек которой в точности равно указанному произведению.
н m
P(MlI)) = £ <7'45>
i=0 }=0
где Р,j — задающие точки. Пусть каждой заданной точке Q/v/ соответствуют зна-
чения параметров ир и vqx, тогда
п гп
QP9 = Z ) (7.46)
i=0 ;=0
Значение up может быть получено методом, описанным в разделе 6.7.2 из узловых значе-
ний, определенных в процессе интерполяции точек Qo.,, Qi.,,.... Q„., В-сплайном. Точно
так же и vq получается из узловых значений после интерполяции Qp,o. Qp.i» —> Qp.m-
Можно переписать выражение (7.46), обозначив символом С,(г,у):
QM = £сл^)МЖ)-
(7.47)
Рис. 7.9. Интерполяция заданных точек
Подстановка значений q = О...т в выражение (7.47) дает
Q„.o =ZC,(Co)N,.t(Mp);
i=0
Qp.i = Ec>(ci)M.*(“P);
i=0
(7.48)
QP.,„ =Zcf(^m«P);
1=0
Подставив значения p = O...n в первую строку выражения (7.48), мы получим за-
дающие точки С,(п0) (г = 0, 1.п) В-сплайна, интерполирующего точки QoiO, Q( 0,
Q20... Q^o, — первой горизонтальной кривой на рис. 7.10. Аналогично, С,(с,)
(г = 0, 1, ..., п) — задающие точки В-сплайна, интерполирующего точки Qoл, Qf f,
Q2.i1 —1 Qu.b — второй горизонтальной кривой на том же рисунке, и т. д. Эти за-
дающие точки интерполяционного В-сплайна получаются методом, описанным в
разделе 6.7.2.
Теперь вычислим задающие точки Ру по С,(п9) (q = 0, 1.тп). Для этого запи-
шем определение С,(п9) еще раз:
= (7-49>
;=о
Если теперь подставить значения q = 0...т в формулу (7.49), мы обнаружим, что
Ру — задающие точки В-сплайна, интерполирующего точки C,(n0), С/гД ....
Cj(fm). В частности, точки POj — это задающие точки В-сплайна, интерполирую-
щего С0(го), Co(i)j).С0(пт), крайние слева точки на рис. 7.10.
Приведем краткое описание процедуры вывода значений Ру-:
□ заданные точки интерполируются В-сплайном в одном направлении
(рис. 7.10); •
□ задающие точки В-сплайнов, полученных на первом этапе, интерполируются
в поперечном направлении: берутся г-е задающие точки всех В-сплайнов из
первого этапа и интерполируются В-сплайном. Задающие точки нового В-
сплайна будут Р,о, P/.i, Р/,2. Р.т- Повторив эту процедуру для всех i от О
до п, мы получим все задающие точки Ру.
Рис. 7.10. Точки C,(vQ), получаемые интерполяцией в направлении и
Получив все задающие точки интерполяционной поверхности, мы должны опре-
делить порядки k и I и узловые значения в направлениях пип соответственно.
Чаще всего используются поверхности степени 3 по и и v, поэтому обычно бе-
рутся значения k = I = 4. Мы знаем, что узловые значения получаются в процессе
вывода интерполяционной кривой (см. раздел 6.7.2). Таким образом мы получа-
ем тп + 1 наборов узловых значений в направлении и от всех интерполяционных
кривых с рис. 7.10. Из этих наборов можно получить один путем усреднения.
Другими словами, i-e узловое значение получается усреднением г-х узловых зна-
чений из каждого из т + 1 наборов. Узловые значения в направлении v получа-
ются аналогичным образом.
7.9. Пересечение поверхностей
В этом разделе мы займемся вычислением кривых пересечения поверхностей.
Из-за внутренних ограничений численных методов мы будем искать точки на
кривых пересечения. Мы уже говорили, что кривые пересечения поверхностей
нужны нам для реализации булевских операций. Кривые пересечения требуют-
ся также для реализации отсечения поверхностей другими поверхностями в сис-
темах поверхностного моделирования. Мы кратко изложим основные идеи,
лежащие в основе алгоритмов для расчета кривых пересечения поверхностей, за-
данных параметрическими уравнениями. Мы рассматриваем только парамет-
рические уравнения, поскольку именно они чаще всего используются для пред-
ставления поверхностей.
Методы расчета кривых пересечения поверхностей могут быть разделены на два
класса. Методы первого класса состоят в численном решении приведенного
ниже нелинейного уравнения:
P(zz,c)-Q(s,i) = O, (7.50)
где Р(п,п) и Q(s,£) — параметрические уравнения пересекающихся поверхностей.
Уравнение (7.50) распадается на три скалярных уравнения с четырьмя неизвест-
ными: и, v, s и t. Решение этой системы требует присвоения произвольного значе-
ния одному из параметров. При этом получаются значения параметров, соответ-
вующие точке на кривой пересечения. Изменение выбранного произвольного
ачения дает все остальные точки кривой пересечения. Недостаток этого мето-
в том, что его сходимость зависит от начальных приближений неизвестных в
равнении (7.50) [49]. Более того, он не всегда позволяет найти все кривые пере-
чения. Другими словами, при больших интервалах изменения произвольно за-
(ваемого параметра некоторые кривые могут быть потеряны полностью, а неко-
|рые — частично.
етоды из второй категории основаны на теории последовательного деления [37].
аждая поверхность последовательно делится на множество частей до тех пор,
жа каждая из них не будет представлять собой нечто близкое к плоскому четы-
:хугольнику. Затем четырехугольники одной поверхности проверяются на пе-
хечение с четырехугольниками другой поверхности. В результате получаются
1ры пересекающихся четырехугольников, а точки прямых, по которым они пе-
юекаются, дают хорошее начальное приближение для уравнения (7.50). Одна-
) может оказаться непросто проверять пары четырехугольников в правильной
эследовательности так, чтобы точки пересечения образовывали кривые. Для
юодоления этой проблемы был предложен альтернативный подход [124, 90].
методе Пенга из всех четырехугольников пересекающихся поверхностей выби-
1ется лишь одна пересекающаяся пара, которая дает первый сегмент кривой пе-
юечения. Один из концов этого сегмента берется в качестве начальной точки,
г которой производится поиск следующей точки пересечения. Другими сле-
ши, ищется новая пара четырехугольников, которая даст соседний сегмент
эивой пересечения, одним из концов которого будет начальная точка поиска,
ересечение новой пары четырехугольников даст две точки, одна из которых бе-
?тся в качестве нового конца кривой, от которого начинается поиск следующей
ары четырехугольников. Пенг хранил четырехугольники в квадрантном дереве1
quadtree), предложенном Саметом [135] для повышения эффективности поиска
эседней пары. Процедура поиска продолжается до тех пор, пока не будет до-
гигнута одна из границ поверхности, после чего поиск начинается с другого кон-
а первого сегмента. Точные координаты точек пересечения получаются реше-
ием уравнения (7.50) с использованием концов сегментов в качестве начально-
) приближения. Эта процедура повторяется со всеми начальными сегментами
о тех пор, пока не будут найдены все кривые. В приложении К мы расскажем,
аким образом следует искать все сегменты кривых пересечения.
Методы, основанные на теории последовательного деления, требуют большего
бъема вычислений по сравнению с методами первого класса, но зато они реже
ропускают кривые пересечения. В приложении К мы рассмотрим расчет пере-
ценил NURBS-поверхностей по методу Пенга.
(опросы и задачи
- Коническая поверхность получается вращением отрезка, соединяющего точ-
ки (2, 0, 0) и (1, 2, 0) вокруг оси у на 180°.
Квадрантное дерево представляет собой двумерный аналог октантного дерева. Прямо-
угольник, описывающий исходный объект, последовательно делится на четыре части до
тех пор, пока не будет достигнуто нужное разрешение.
1) Получите параметрическое уравнение конической поверхности. Предпо-
ложите, что изменение параметра и перемещает точку по окружности на
плоскости, перпендикулярной оси у, а параметр v изменяет положение ок-
ружности относительно этой оси.
2) Аппроксимируйте коническую поверхность бикубическим лоскутом. Дру-
гими словами, вы должны вывести матрицу геометрических коэффицен-
тов для формулы (7.18).
3) Вычислите координаты точки бикубического лоскута, соответствующей
значениям параметров и = 0,5 и v = 0,5, и сравните ее с результатом вычис-
ления по точному параметрическому уравнению.
2. Представьте поверхность, изображенную на приведенном ниже рисунке, би-
линейной поверхностью.
1) Определите Pi(s) и P2(s), описывающие окружность при изменении s от 0
до 1.
2) Представьте коническую поверхность функцией r(s,f), осуществляющей ли-
нейное сопряжение Pi(s) и P2(s). Пусть параметр t также меняется от 0 до 1.
3) Подставьте значение t = 0,5 в функцию r{s,t) и объясните, что при этом по-
лучается.
3. Аппроксимируйте поверхность, ограниченную тремя дугами (см. рисунок),
при помощи лоскута Куна.
(-1, 0, 0)
(1,0,0)1
х
Центры всех дуг расположены в начале координат. Вы можете разделить ок-
ружность, лежащую в плоскости ху, в точке (0, 1, 0), чтобы получить четыре
граничные кривые. Уравнения граничных кривых следует записывать акку-
ратно, чтобы их направление соответствовало принятому при выводе уравне-
ния лоскута Куна.
4. Цилиндрическая поверхность получается сдвигом дуги, лежащей в плоскости
ху, вдоль оси z на 4 единицы (см. рисунок). Радиус дуги в четверть окружно-
сти равен 1, а ее центр находится в точке с координатами (0, 0, 0). Выполните
следующие действия.
г
1) Выведите точное параметрическое уравнение цилиндрической поверхно-
сти. Определите параметры и и v так, чтобы они давали всю поверхность
при изменении от 0 до 1.
2) Аппроксимируйте цилиндрическую поверхность лоскутом Куна.
3) Аппроксимируйте цилиндрическую поверхность бикубическим лоскутом.
4) Аппроксимируйте цилиндрическую поверхность лоскутом Ферпосона.
5) Сравните поверхности из предыдущих пунктов с точной поверхностью в
средней точке параметров ими.
5. Представьте цилиндрическую поверхность из пункта 4 в форме NURBS. Вы
должны определить узловые значения и порядки в направлениях и и v, а так-
же координаты задающих точек (в том числе однородные).
6. Представьте цилиндрическую поверхность из пункта 4 уравнением Безье.
1) Аппроксимируйте четверть окружности кривой Безье, определяемой тре-
мя задающими точками.
2) Определите задающие точки поверхности Безье.
3) Сравните координаты точки, соответствующей средним значениям пара-
метров, с результатами из пункта 4.
Глава 8
Метод конечных элементов
В современном проектировании широко используются различные программные
пакеты автоматизированного конструирования (computer-aided engineering —
САЕ), позволяющие оценивать проекты на каждом этапе процесса разработки.
Средства САЕ позволяют анализировать кинематику или динамику поведения
проектируемого агрегата. К этой категории относятся такие пакеты, как ADAMS
и DADS (см. главу 2). С точки зрения этих пакетов каждый компонент агрегата
рассматривается как тело с сосредоточенной массой. В некоторых случаях сред-
ства САЕ позволяют определить распределение напряжений или температур в
механических компонентах, рассчитанных на физическую или тепловую нагруз-
ку. Возможно также проведение вибрационного анализа компонента, на который
будет воздействовать динамическая нагрузка. Перечисленные задачи решаются
при помощи средств анализа методом конечных элементов. Примерами коммер-
ческих программ конечноэлементного анализа являются NASTRAN и ANSYS
(см. главу 2).
На заре своего существования метод конечных элементов применялся главным
образом в строительной механике. Словосочетание конечный элемент (finite ele-
ment) появилось в статье Клофа [36], где предлагалось применять новый метод
для анализа напряжений в плоскостях. Многие коммерческие пакеты, основан-
ные на методе конечных элементов, изначально предназначались для решения
строительных задач. Однако вскоре стало ясно, что методы конечных элементов
имеют более широкую область применения: задачи теплопереноса, распределе-
ния электростатического потенциала, механики жидкостей, вибрационного ана-
лиза и многие другие. С ростом вычислительных возможностей компьютеров
расширился диапазон и возросла сложность задач, доступных решению методом
конечных элементов. Применение метода конечных элементов к дверной ручке
холодильника для расчета распределения температуры при заполнении формы
для литья под давлением жидкой пластмассой демонстрирует рис. 8.1. В качест-
ве примеров программ для решения задач механики жидкостей методом конеч-
ных элементов можно привести пакеты C-MOLD и MOLDFLOW, предназна-
ченные для моделирования течения жидкого пластика в форме для литья под
давлением.
Главное отличие метода конечных элементов от динамического или кинематиче-
ского анализа заключается в том, что в первом область задачи рассматривается
как непрерывное пространство (континуум), а во втором — как набор дискрет-
ных (сосредоточенных) элементов. В этой главе мы изучим основные концепции
средств анализа методом конечных элементов. Мы не станем уделять внимание
средствам кинематического или динамического анализа, поскольку программы
этого типа просты для понимания и для работы с ними вполне достаточно руко-
водства пользователя.
Рис. 8.1. Распределение температуры, полученное
методом конечных элементов
8.1. Введение в метод конечных элементов
В реальных конструкциях почти всегда присутствуют сложные формы, состоя-
щие к тому же из различных материалов. В качестве примера рассмотрим зада-
чи. представленные на рис. 8.2. Рассчитать распределение напряжений в крон-
штейне (рис. 8.2, а) при помощи аналитических методов крайне сложно. Если же
кронштейн изготовлен из композитного материала со сложными свойствами, за-
дача становится практически неразрешимой. Непреодолимые затруднения воз-
никают и при попытке вывести аналитическое выражение для распределения
температур в объекте, изображенном на рис. 8.2, б.
Метод конечных элементов, по всей видимости, является наиболее популярным
численным методом решения таких задач Универсальность этого метода удов-
летворяет требованиям современных сложных систем конструирования, для ко-
торых обычно отсутствуют замкнутые решения уравнений равновесия. Анализ
методом конечных элементов начинается с аппроксимации исследуемой области
(области задачи) и делении ее на ячейки сетки. На рис. 8.3, а по углам каждой
ячейки находятся узлы (черные точки). Такие ячейки и называются конеч-
ными элементами. На рис. 8.3, а, б представлены аппроксимации объектов с
рис. 8.2, а, б наборами конечных элементов (треугольных и четырехугольных).
б
Рис. 8.3. Аппроксимация объектов конечными элементами
В этом примере мы аппроксимировали исходный объект треугольниками н че-
тырехугольниками, однако возможны и конечные элементы других типов. Вы-
бор элементов определяется областью задачи, ее типом, а также конкретным па-
кетом анализа. Выбор подходящих элементов с нужным количеством узлов из
библиотеки доступных элементов является одним из наиболее важных решений,
которые приходится принимать пользователю пакета конечноэлементного ана-
лиза. Конструктору также приходится задавать полное количество элементов
(другими словами, их размер). Общее правило состоит в том, что чем больше ко-
личество узлов и элементов (в й-версии1) или чем выше степень функции фор-
1 Классическая форма метода конечных элементов называется h-версией. В качестве функ-
ции формы в этой версии используются кусочные полиномы фиксированных степеней, а
повышение точности достигается уменьшением размеров ячеек. В р-версии используется
фиксированная сетка, а точность повышается благодаря увеличению степени функции
формы. Подробнее см. в работах [103. 148].
мы1 (в р-версии), тем точнее оказывается решение, но тем дороже оно стоит с
вычислительной точки зрения. Различные виды конечных элементов рассматри-
ваются в разделе 8.3. Другая проблема — построение сетки, особенно для объек-
та сложной геометрии. Создание трехмерных сеток конечных элементов обычно
представляет собой трудоемкий и кропотливый процесс. Сейчас ведутся актив-
ные разработки систем автоматизированного построения сеток, которые могли
бы подключаться к системам геометрического моделирования. Такие системы
позволили бы полностью интегрировать средства САМ и САЕ. Краткий обзор на
данную тему дается в разделе 8.4.
После аппроксимации исходного объекта конечными элементами с должным ко-
личеством узлов каждому узлу сопоставляется неизвестная величина, которая
ищется в процессе решения задачи. Например, для рис. 8.3, а неизвестными
были бы смещения узлов по координатам х и у. Отсюда следует, что у каждого
узла будет две степени свободы, а у задачи в целом будет 2п степеней свободы,
если число узлов равно п. В разделе 8.2 мы покажем, что смещение в любой точ-
ке конечного элемента выводится из смещений его узлов при помощи функций
формы, поэтому неизвестными могут быть только смещения узлов. Функции
формы служат лишь для того, чтобы вычислять значения неизвестных внутри
элемента по заданным значениям на его узлах2. После вычисления смещений
программа может перейти к расчету деформаций как частных производных от
функции смещения, а по деформациям рассчитываются напряжения.
Аппроксимировав область задачи набором дискретных конечных элементов, мы
должны задать характеристики материала и граничные условия для каждого
элемента. Указав различные характеристики для разных элементов, мы можем
анализировать поведение объекта, состоящего из разных материалов. Граничные
условия (смещение, внешняя сила или температура) обычно задаются на внеш-
ней границе объекта. Эти условия должны быть выражены в виде значений сме-
щения, силы или температуры в граничных узлах некоторых конечных эле-
ментов. После задания граничных условий для всех внешних узлов программа
конечноэлементного анализа формирует систему уравнений, связывающую гра-
ничные условия с неизвестными (смещениями или температурой в узлах или
коэффициентами функции формы в р-версии), после чего решает эту систему
относительно неизвестных. Процесс формирования и решения системы уравне-
ний рассматривается в разделе 8.2.
После нахождения значений неизвестных пользователь получает возможность
рассчитать значение любого параметра в любой точке любого конечного элемен-
та по той же функции формы, которая использовалась при построении системы
уравнений. Выходные данные программы анализа методом конечных элементов
обычно представляются в числовой форме. В задачах механики твердых тел
выходными данными являются смещения и напряжения. В задачах на тепло-
1 Функции формы — независимые полиномы, определяющие аппроксимацию перемен-
ной, относительно которой решается задача.
2 В р-версии функция формы представляет собой полином высокого порядка, а коэффи-
циенты этого полинома также считаются неизвестными, которые ищутся в процессе ре-
шения задачи.
перенос выходными данными являются температуры и тепловые потоки через
конкретные. элементы. Однако по числовым данным пользователю бывает за-
труднительно получить общее представление о поведении соответствующих па-
раметров. Графические изображения обычно более информативны, поскольку
дают возможность изучить поведение параметров на всей области задачи. Ана-
лиз поведения параметров может производиться при помощи постпроцессора,
который строит кривые и контурные графики переменных по данным програм-
мы конечноэлементного анализа. Для задач строительной механики возможно
отображение деформированных тел вместе с недеформированными. В этой об-
ласти для систем автоматизированного конструирования очень важными стано-
вятся функции компьютерной графики.
Мы завершим вводный раздел обсуждением ограничений метода конечных эле-
ментов. Многие конструкторы страдают чрезмерной верой в мощь этого метода,
не имея представления о его ограничениях; они принимают неправильные ре-
зультаты без тени сомнения. К преимуществам метода конечных элементов от-
носится возможность работы с телами произвольной геометрии и неоднородны-
ми материалами. Однако суть метода состоит в делении области задачи на набор
конечных элементов и поиске наилучшего решения, непрерывного «внутри» эле-
ментов, но имеющего возможность претерпевать скачки на их границах. Напри-
мер, деформация на границе конечных элементов кронштейна (рис. 8.3, а), мо-
жет испытывать скачок, невозможный с точки зрения физики. Величина такого
скачка часто служит мерой точности решения, полученного методом конечных
элементов. Неточности такого рода зависят от количества элементов, их размера
и степени функции формы, используемой внутри каждого из элементов.
8.2. Формулировка метода
конечных элементов
Как уже отмечалось, программы анализа методом конечных элементов формиру-
ют системы уравнений с неизвестными, учитывая заданные граничные условия.
Затем система уравнений решается относительное неизвестных, а по найденным
решениям рассчитываются значения характеристик внутри элементов. В этом
разделе мы рассмотрим процедуру построения системы уравнений в классиче-
ском варианте метода конечных элементов (A-версия). Чтобы вывести уравне-
ния для задач строительной механики, мы воспользуемся принципом виртуаль-
ных перемещений. Мы будем следовать схеме именования переменных,
принятой в работе [10], чтобы заинтересовавшийся читатель мог с легкостью
найти в ней ответы на свои вопросы. Для вывода системы уравнений из основ-
ных дифференциальных уравнений используется иная процедура, описанная в
приложении Л.
Рассмотрим трехмерный объект произвольной формы, находящийся в равновес-
ном состоянии под воздействием некоторой нагрузки (рис. 8.4). Силы трения,
действующие на поверхность, обозначим f5, массовые силы — fв, а сосредоточен-
ные внешние силы — F'. В общем случае эти силы раскладываются на компонен-
ты, параллельные осям координат:
Рис. 8.4. Трехмерный объект с внешними силами
Обозначим смещения произвольной точки объекта (X, Y, Z) по сравнению с кон-
фигурацией в отсутствие нагрузки символом U. Тогда
UT = [U(X,Y,Z) V(X.Y.Z) W(X,Y,Z)], (8.2)
где индекс 1 означает транспонирование. Смещения U приведут к возникнове-
нию деформаций
Е = [еах eit Ezz Yxr Yrz Yzx 1 (8-3)
и соответствующих напряжений
Т = [ТА'А tit Tzz Txr Trz Tzx ]• (8-4)
Наша задача состоит в том, чтобы рассчитать U, £, т в точке (X, У, Z) по задан-
ным внешним силам. Возможно, вы знакомы со следующим подходом к этой за-
даче: основные дифференциальные уравнения равновесия записываются путем
наложения условия равновесия на элементы объекта, после чего эти уравнения
решаются с учетом граничных условий и условий совместности.
Существует равноправный подход к описанию равновесия объекта — принцип
виртуальных перемещений. Согласно этому принципу, равновесие объекта тре-
бует, чтобы для любых совместных малых виртуальных смещений, удовлетво-
ряющих существенным граничным условиям, полная внутренняя виртуальная
работа была равна полной внешней виртуальной работе. Отсюда уравнение рав-
новесия может быть записано следующим образом:
£ётт dV = JUTfBJV + JU<' f5J5 + £U'TF'. (8.5)
i
Левая часть уравнения (8.5) описывает виртуальную внутреннюю работу, вы-
полняемую реальными напряжениями на виртуальных деформациях, вызванных
виртуальными смещениями U. В этом выражении
Е =1ел'а- е1т ezz Yxr Yrz Yzx I- (8-6)
Слагаемые в правой части выражения (8.5) описывают внешнюю работу, выпол-
няемую реальными силами fc, fs nF' на виртуальных перемещениях U, где
U1 =[t7(X,y,Z) V(X,Y,Z) Z(X,Y,Z)]. (8.7)
Верхний индекс S у вектора U означает виртуальное смещение на поверхности,
а верхний индекс i — смещение в точке приложения сосредоточенных сил F'.
Уравнение (8.5) включает также требования на совместимость и конститутив-
ность непрерывных функций смещений, которые удовлетворяют граничным
условиям. Напряжения вычисляются через деформации по соответствующим
материальным уравнениям. Поэтому принцип виртуальных перемещений вклю-
чает все требования, которым должно удовлетворять решение задачи строитель-
ной механики.
Посмотрим теперь, как из уравнения (8.5) получаются уравнения метода конеч-
ных элементов. Начнем с аппроксимации объекта, изображенного на рис. 8.4,
сеткой конечных элементов. Элементы соединяются друг с другом в узловых
точках, которые находятся на их границах. Смещение в любой точке с координа-
тами (х, у, z) в локальной системе координат элемента считается функцией сме-
щений в узловых точках1. То есть для элемента т высказывается предположе-
ние, что
u<"')(x,i/,z) = H<“)(x,z/,z)U, (8.8)
где Н<га> — интерполяционная матрица смещений, a U — вектор смещений на
всех узлах. Если общее количество узлов равно N, вектор U запишется следую-
щим образом:
0т=[н1 v1 wt и2 v2 w2 ... uN vN wN ]. (8.9)
Это выражение можно переписать так:
uT=KA и2 из ... (/„], (8.10)
где Uj может задавать смещение в любом направлении, а п соответствует обще-
му количеству степеней свободы. Далее мы будем использовать это выражение
для U.
Хотя в уравнении (8.10) перечисляются смещения всех узлов, а следовательно,
эти смещения входят и в выражение (8.8), для каждого конкретного элемента
смещения внутри него определяются только смещениями в его собственных уз-
лах. В уравнение же (8.8) все узлы вошли потому, что это облегчает процесс объ-
единения матриц отдельных элементов в матрицу структуры в целом, как будет
показано ниже.
Уравнение (8.8) позволяет вычислить деформации:
E(ra)(x,j/,z) = B<"')(x,z/,z)U. (8.11)
Строки матрицы деформаций-смещений В*"'* из уравнения (8.11) получаются
дифференцированием и объединением строк матрицы Н<га). Производные мат-
риц H‘M) и В<га) рассматриваются в примере 8.1.
1 В р-версии смещение включает две составляющие. Первая определяется смещениями уз-
лов, как и в (8.8), зато вторая описывает «иерархическое» смещение, выражаемое поли-
номом произвольной степени. Подробнее ор-всрсип конечпоэлементного анализа можно
прочитать в работах [103, 148].
Теперь мы можем записать и выражения для напряжений внутри каждого эле-
мента:
т(га) =С(га)Е(т)+т/(га>, (8.12)
гдеС(т> — матрица упругости элемента т, а т/<га) — начальное напряжение внут-
ри элемента. Матрица упругости, которая связывает напряжения с деформация-
ми, подробно изучается в учебниках по основам сопротивления материалов [26].
В Ьтруктуре, состоящей из разных материалов, для каждого элемента можно за-
дать свою собственную матрицу упругости. Кроме того, матрица упругости по-
зволяет учесть изотропию или анизотропию свойств материала.
Перед тем как подставить выражения (8.8), (8.11) и (8.12) в формулу принципа
виртуальных смещений, мы перепишем уравнение (8.5) в виде суммы интегра-
лов по объемам и поверхностям отдельных элементов:
У [ ^s(m)TT<m)dV(m) = У f u<ra)TfB(ra>6/V(ra> +
т т (8.13)
+ u5(m)Tf5<"Wra> +Хи-Тр‘,
т i
где т изменяется от 1 до полного количества элементов в системе.
Подставляя выражения (8.8), (8.11) и (8.12) в (8.13), будем предполагать, что
виртуальные смещения в элементе й("° связаны с виртуальными узловыми сме-
щениями U той же матрицей Н(га) из (8.8). Эта подстановка даст следующее вы-
ражение:
uT[XJv(m)B("‘)lc(m)B<"')</v<ra)]u=uT н(и)Т fB(ra)jv(ra>| +
га LI ™ v J (8.14)
+ IУ [ (m)H5(ra)Tf5(ra>J5(",)| -Jy f (m)B(n)TT/(ra>JV("'>! +F ,
I m Jim J
где поверхностные интерполяционные матрицы смещений Н5(га> получаются из
объемных интерполяционных матриц смещений Н<га) подстановкой координат
поверхности элемента. F — вектор внешних сосредоточенных сил, действующих
на узловые точки. Компоненты вектора F соответствуют компонентам смещений
вектора U. Обратите внимание, что в уравнении (8.14) вектор U вынесен за знак
суммирования, потому что он не зависит от рассматриваемого элемента.
Чтобы выражение (8.14) было верным для произвольного виртуального смеще-
ния (а это и есть условие равновесия), должно выполняться следующее равенство:
и = У f
т
-У f 1т.В(п)Гт/(и)б/К(га) +F.
гл
У[ В('л)ГС<я’)В(”')</У(га) 1
- т
+Ц^н5(га)Г f5(ra)dS(ra) -
т
(8.15)
Будем отныне обозначать смещения в узлах просто буквой U. Перепишем урав-
нение (8.15) в виде
KU=R,
(8.16)
где
K = Efv(m>в<m,Tc<"‘,в'"'>^<"',•. (8.17)
т
R=RB+R5-Rz +RC; (8.18)
Kb (8.19)
m
Rs =ZJ5WH5(ra)Tf5(ra)J5(ra); (8.20)
in
К/ =хив(га)тг/(и)^(м); (8.21)
m
RC=F. (8.22)
Обратите внимание, что суммирование интегралов по объемам отдельных эле-
ментов в формуле (8.17) выражает тот факт, что матрица жесткости набора эле-
ментов как целого получается сложением матриц жесткости элементов К(га).
Аналогичным образом, вектор RB объемной силы, действующей на все тело, по-
лучается суммированием векторов объемных сил, действующих на отдельные
элементы. Тем ке путем вычисляются и векторы прочих сил.
Выражение (8.16) описывает статическое равновесие. Если приложенные силы
изменяются во времени, это выражение применимо к любому конкретному мо-
менту. Однако при быстром приложении нагрузки необходимо учитывать силы
инерции. По принципу Даламбера силы инерции отдельных элементов могут
быть добавлены к массовым силам. Если предположить, что ускорение в любой
точке элемента связано с ускорениями в узловых точках матрицей Н*"0 подобно
смещениям, вклад массовых сил в вектор нагрузки R будет выражаться так:
RB = Х£(»>н<га)Г -p<ra)H<'")U]JV(m>, (8.23)
m
где U — ускорения узловых точек, а р(,п) — массовая плотность элемента т. Сла-
гаемое fВ(га> в выражении (8.23) больше не включает никаких сил инерции.
Подстановка (8.23) вместо (8.19) в (8.15) дает новое уравнение равновесия:
MU + KU=R, (8.24)
где М — матрица масс, определяемая следующим образом:
м = р<"')Н<га)ТН("') dV{m\ (8.25)
т
Обратите внимание, что U и R в уравнении (8.24) являются функциями време-
ни.
Демпфирующие силы могут быть учтены как дополнительный вклад в массовые
силы, что позволяет описать эффект демпфирования (затухания). Уравне-
ние (8.23) при этом принимает новый вид
RB -р<га)Н("')й-к<га)Н(га)й]б/У<га), (8.26)
т
где U — вектор скоростей узловых точек, а к<га) — демпфирующий коэффициент
для элемента тп.
Уравнение равновесия приобретает вид
MU + CU + KU = R, (8.27)
где С — матрица демпфирования, структура которой описывается выражением
с = ЕU к<т)Н(т)’' H<m)dVim) (8.28)
til
На практике матрицу С обычно конструируют из массовой матрицы и матрицы
жесткости на основании экспериментальных данных по демпфированию в мате-
риале, потому что определить параметры демпфирования отдельных элементов
достаточно сложно.
Приведенный ниже пример иллюстрирует изложенную процедуру вывода сис-
темных уравнений.
Пример 8.1
Вывести и решить системные уравнения для пластины, нагруженной так, как по-
казано на рис. 8.5, а, используя двухэлементную модель (рис. 8.5, б). Модуль
Юнга и коэффициент Пуассона материала, из которого изготовлена пластина,
равны Е и v соответственно. Толщина пластины постоянна и равна 1 см. Считай-
те, что нагрузка Ру прикладывается постепенно, благодаря чему силами инерции
можно пренебречь.
Рис. 8.5. Анализируемая структура
Решение
На первом этапе необходимо построить векторы Н(га) и В(га) для т = 1, 2, соот-
ветствующие смещениям U1 =[Ut U2 U3 Ut U5 U6 U7 U8 ]. Чтобы вы-
вести матрицу H(,) произвольного элемента, следует рассмотреть треугольный
элемент (рис. 8.6). Смещения внутри треугольного элемента с тремя узлами мо-
гут считаться линейными. Следовательно, выражения для смещений внутри ка-
ждого элемента в направлениях х и у будут иметь следующий вид1:
и = СЦ + а2х + а3у; (8.29)
v =р| +р2х + рзу. (8.30)
Мы можем по той же формуле выразить смещение каждого из узлов:
и, =а, + а2х, 4-азУр г, =pt +р2х| +P33/t;
и2 = +а2х2 +а3у2, v2 = р, +р2х2 + рзу2;
u3 = <Xj + а2х3 + а3у3, г3 = Р, +р2х3 + Р3у3.
1 Функции а, + а2.г + а3у и Pt + Р2х + Р3у играют роль интерполяционных функций.
Рис. 8.6. Треугольный элемент с тремя узлами
Одновременное решение этих уравнений позволяет определить константы а„ р ,•
через н„ х„ у,. Таким образом получаются следующие выражения для а„ р, *:
at и । + а2и2 + 1 2а btut + b2u2 + Ь3и3 (X *> > 2 2а ctu} + с2и2 + с3и3 €Х о , 3 2а _ а,у, + a2v2 + a3v3 111 2а Z>,p, + b2v2 + b3v3 2а c,t>, +с2г2 4- С3У3 3 2а
где а, =х2у3 -х3у2, bt =у2 -у3,сх =х3 -х,\ а2 =x3yt -xty3, b2 =у3 -yt,c2 =.rj -x3; а3 =Х1У2 ~Х2У\' =У> ~ У 2>c3 =-T'2 —-l|.
И 2a = a{ + a2 + a3.
Подстановка значений xt, х2, х3, yt, у2, у3 для элемента 1 в эти уравнения дает
1 После того, как выражения для а, и Р, будут подставлены обратно в уравнения (8.29)
и (8.30). смещения и и v можно будет записать в форме н=Д(л i/)wj + В2(х,у)и>
+В3(х,у)и3, v = ВДл-.у)»! + B2(x,y)v2 + В<(.г,у)г3. Функции В,(х, у), В2(х, у) н В3(х, у)
называются функциями формы.
U =Щ +
1 1
---u, +—u2
10 1 10 2
1
4"1
1 >
+ 7“з у;
4 )
( 1 1
V =V. +---V. +—v2
1 I 10 1 10
1 I
х+ “7^ +7&з У-
14 4 J
(8.31)
1
4 1
Уравнение (8.31) можно переписать в матричной форме:
1
10
1
-у
4
'P
u2
U3
u.
1
10
1
—у
4
P
P
P
P
. (8.32)
Аналогичным образом получается выражение для смещений в
элементе с номе-
мы воспользуемся соотношениями между смещениями и деформациями для
двумерного случая:
О
О
О
О
О
О
О
О
ди dv dv ди
дх ду дх ду
Таким способом из выражений (8.32) и (8.33) получаются функции E(i)(x,y,z),
£i2)(x'y,z):
(О
1
10
1
10
Е(1> =
еи
Ухи
U2
U3
ua
4
1
10
1
10
u5
U6
P
p8.
0
О
О
О
О
О
Е
О
1
4
1
о
о
О
о
4
2
4
о
о
= B(I)U; (8.34)
о
о
о
1
10
о
о
о о
1 1
10 4
=в(2)и.
(8.35)
Us
Соотношение между деформациями и напряжениями для однородной изотроп-
ной пластины выглядит так:
(8.36)
Предполагается, что изначально структура не была напряжена.
Матрица жесткости для каждого элемента получается подстановкой результа-
тов (8.34)-(8.36) в уравнение (8.17). Рассматриваемые элементы сделаны из
одинакового материала, поэтому выражение для С(т) из (8.36) может использо-
ваться для них обоих. (В приведенном ниже выводе интеграл по объему преоб-
разуется к интегралу по поверхности благодаря тому, что пластина имеет еди-
ничную толщину.)
К(|) = [ (I.B(')rC(,)B(,)JV(,) = [ (1)в(,)Гс(,)в(1)«м(|) =
Jv(”
= Г10В(|)ГС(|)В(|)| 4-—=
Jo 10 J
Е
1-v2
10
0
1
0
J1
4
1
10
0 0 0 0 0 0 0-00 4 1 1 — -ООО 10 4 т 1 V 0 v 1 0 о о L 2 J X
4
1
10
о
1
4
0 0 0 0 0
0 0—00 |4-—x]dx =
4 I 10 J
10
1 1-У 100 + 32 1 + г 1 1-У 1 -У V п п
80 100 80 32 40
1 + У ~80 1 1-ц 16 + 200 У ~40 1 -У ~ 200 1-у 80 16 0 0
1 "100 V 40 1 Too 0 0 У 40 0 0
20£ 1-У 1-У о 1-у 1-у 0 о о ; (8.37)
1-о2 80 200 200 80
1-у 32 1-у 80 0 1-у 80 1-у 32 0 1 16 0 0
V ~40 1 ”16 V 40 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 ♦ 0 0 0 0
к<2) = f (Я b(2>tc<2)b(2>jv<2) =
= [ 2) Bf2)TC<2)B(2> JA(2) =
J4<2)
= [,0B(2/c<2)B(2)AxdFr =
Jo 10
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 1-У 32 0 1 16 0 1-у 80 1—у 32 1-у 80
_ 20£ 0 0 0 V 40 0 V ”40 1 16
0 0 0 У 1 0 1 У (8.38)
1-о2 40 100 100 40
0 0 1-У w 0 0 1-у 200 1-У 80 1—у 200
0 0 1-у 32 V 40 1 100 1-у 80 1 , 1-У 100 ‘ 32 1 + У 80
0 0 1-у 80 16 V 40 1-у 200 1 + а ~80” 1 1-У 16 + 200.
Матрица жесткости структуры как целого получается объединением уравне-
ний (8.37) и (8.38).
1 1-и 1 + О 1_ 1 -V 1 — V у о 0
100+ 32 80 100 80 32 40
1+к 1 1-р V _ i V 1 -р £ Q о
80 16 + 200 40 200 80 16
1_ V j 1 ~р 0 0 1+г 1-г 1-0
100 ~40 100 + 32 80 32 80
1 -V 1-Р Q 1 1 ~г 1 +V 0 _ V _ £
к- 20£ ~80 200 16 200 80 40 16 (8.39)
1-г2 1-0 1-р () 1 + г 1 1-р о 1^ Р
32 80 юо+ 32 100 40
V 1+О о 0 1 1-0 1-V 1 -V
~40 16 80 16 + 200 80 200
Л л 1-р V 1 1-р 1 1-г 1+г
и и 32 40 100 80 100 32 80
о л 1 — У JL V 1 — р 14-Р 1,1-0
и 80 16 40 200 80 16 200.
Вектор нагрузки R совпадает с вектором R,., потому что на узлы действуют толь-
ко сосредоточенные силы. Отсюда
Л.
0
(8.40)
0
Л
где Ру — известная внешняя сила, a Fix, Fty, F3x и F3l/ — неизвестные силы реакции
опоры.
Теперь нужно найти
ниже уравнения:
точек из приведенного
смещения узловых
неизвестные
Л. ^12 ^13 • ^17 Лл ’
^21 ^22 ^23 /г27 ^28 t/2
U3 0
и. 0
^3,
- • и« г*.
^71 ^72 ^73 • ^77 *78 и. 0
.^81 ^82 kKi • ^87 *88. U*. Л.
(8.41)
где элементы матрицы жесткости из уравнения (8.39) обозначены k,j.
Вы можете самостоятельно убедиться в том, что матрица жесткости в уравне
нии (8.39) вырожденка, а потому уравнение (8.41) решить невозможно. Анало-
гичная ситуация возникает при решении дифференциальных уравнений, кото-
рые не дают единственного решения без граничных условий. Так, решение (8.41)
можно получить, если учесть в этом уравнении граничные условия:
*11 *12 *13 • *17 *18 ’0 рх
*21 *22 *23 *27 *28 0 U3 ut 0 fl, 0 0 А (8.42)
*71 _*81 *72 *82 *73 *83 • *77 • *87 8о 00 0 ^7 р8\ Ру 0 Л.
Уравнение (8.42) может быть разделено на два независимых матричных урав-
нения:
*33 *34 *37
*43 *44 *47
*73 *74 *77
_*вз *84 *87
*13 *14 *17
*23 *24 *27
*53 *54 *57
_*вз *64 *67
*38 *48 *78 *88 _ из~ р и7 р*. = 0 ' 0 0 -р. ; (8.43)
*18 up ’V
*28 *58 и. и7 = Ру А (8.44)
*68. Us. А.
Мы можем решить уравнение (8.43) относительно неизвестных узловых смеще-
ний U3, Uit U7, U6 и подставить найденные значения в уравнение (8.44), после
чего определить неизвестные силы реакции опоры Fix, Fly, F3x и F3y. Большая
часть программ, реализующих мегод конечных элементов, действует именно
в этой последовательности.
Определив смещения узлов, мы можем рассчитать деформации и напряжения
в элементах по приведенным выше уравнениям. Отсюда мы можем сделать вы-
вод, что смещения играют достаточно важную роль в анализе структуры. Это
одна из причин, по которым формулировка метода конечных элементов, предло-
женная в этом разделе, считается основанной на смещениях {displacement-based
formulation).
8.3. Моделирование конечных элементов
Анализ методом конечных элементов является мощнейшей технологией, позво-
ляющей моделировать распределение напряжений, температур, потоки жид-
костей и распространение электромагнитных полей, однако до сих пор нерешен-
ной остается проблема подготовки данных для проведения анализа: выбор
геометрии, построение сетки конечных элементов, добавление граничных усло-
вий и нагрузок, задание свойств материалов и выбор типа анализа (статический
или динамический, линейный или нелинейный, анализ деформаций, напряже-
ний и т. д.). Действия, относящиеся к подготовке данных, обобщенно называют
моделированием конечных элементов (finite-element modeling). Выполняются эти
действия чаще всего препроцессором, рассчитанным на работу с какой-либо кон-
кретной программой анализа методом конечных элементов (finite-element
analysis — FEA).
Работа с препроцессором начинается с выбора геометрии объекта или области
задачи. Традиционные системы FEA обладают лишь зачатками функций моде-
лирования конечных элементов, тогда как большинство современных систем
либо снабжаются расширенными средствами моделирования, либо позволяют
обмениваться данными с системами геометрического моделирования (а иногда
предлагают пользователю и то, и другое вместе) [117]. Системы, рассчитанные
на подготовку геометрической модели в системах автоматизированной подготов-
ки чертежей, либо работают непосредственно с данными CAD, либо преобразу-
ют и импортируют их. Вариант «поверх CAD» (direct on CAD) становится в по-
следнее время все более популярным, поскольку он устраняет преобразования
(которые могут повлечь потерю данных) и сокращает длительность цикла «про-
ектирование — анализ — изменение». Более того, использование CAD упрощает
моделирование и дает возможность работать с более сложными функциями соз-
дания и изменения геометрических форм. Современные гибридные системы мо-
делирования (интегрирующие объемное, поверхностное и каркасное моделиро-
вание* с параметрическим и объектно-ориентированным подходами) позволяют
создать практически любую нужную для анализа геометрию. Большинство сис-
тем FEA могут также импортировать геометрические данные либо через проме-
жуточные файлы стандартных форматов (типа IGES1 2), либо непосредственно из
конкретных CAD. Однако использование геометрических моделей, подготовлен-
ных в CAD, не всегда оказывается простым делом. Модель, которую конструк-
тор сочтет идеальной, может на самом деле содержать недопустимые в FEA эле-
менты. Особенно это касается построения сеток. Некоторые системы уже
предлагают функции проверки импортированных моделей. Более того, даже
если построенная в CAD модель свободна от недостатков, она может быть черес-
чур подробной. Например, такие характерные детали, как фаски, в некоторых
случаях вполне могут быть исключены из модели для анализа методом конеч-
ных элементов. Подобные решения принимаются конструктором исходя из ожи-
даемого размера ячеек сетки, а также из интуитивных предположений о важно-
сти отдельных участков объекта. Некоторые программы обладают функциями
удаления элементов (defeaturing), то есть временного скрытия деталей, не
влияющих на точность анализа. Абстрагирование является основной причиной
различий между моделями одного и того же объекта, используемыми проекти-
ровщиками и аналитиками. Изменения, предлагаемые одними из них, не могут
непосредственно воплощаться в модели других. В настоящее время ведутся
исследования возможности автоматического абстрагирования объемных моде-
лей [3].
1 Немногообразные системы моделирования поддерживают интеграцию объемных, по-
верхностных и каркасных моделей в наиболее общем виде.
2 Описан в главе 14.
Следующий шаг — создание ячеек сетки и распределение узлов. Когда каждой
ячейке сопоставляются узлы, она становится конечным элементом. Построение
сетки является важнейшим и сложнейшим этапом моделирования. Для упроще-
ния этой задачи практически все системы на сегодняшний день предлагают те
или иные функции автоматизации. Наиболее типично использование тетраэдри-
ческих элементов для объемных тел и четырехугольных или треугольных эле-
ментов для трехмерных поверхностей, оболочек и двухмерных объектов. Многие
системы предоставляют пользователям возможность изменять параметры авто-
матически формируемых сеток, в частности плотность ячеек. Кроме того, в та-
ких системах обычно имеются функции ручного локального редактирования, по-
зволяющие уточнить сетку в критических областях. Многие системы связывают
сетку с геометрической моделью, так что изменение последней автоматически
влечет за собой изменение первой.
От сложности сетки зависит размер глобальной матрицы жесткости, численная
сложность задачи и объем требуемых вычислительных ресурсов. Точность реше-
ния можно повысить увеличением количества ячеек или использованием функ-
ций формы более высоких порядков. Конечные элементы должны удовлетворять
определенным требованиям. Во-первых, размерность элементов должна совпа-
дать с размерностью области задачи. Для одномерных задач используются одно-
мерные элементы, для двумерных — двумерные, и т. д. Во-вторых, конечные эле-
менты должны поддерживаться выбранной программой FEA. Другими словами,
программа должна уметь рассчитывать вклад конкретного элемента в матрицу
жесткости. Все элементы, поддерживаемые пакетом анализа, составляют его биб-
лиотеку (element library). Чем больше элементов в библиотеке, тем большее число
задач может решать программа. Наиболее типичные конечные элементы, под-
держиваемые большинством программ анализа, демонстрирует рис. 8.7. Обрати-
те внимание, что одна и та же ячейка может становиться элементами разных ти-
пов в зависимости от количества узлов на ее границах. Наконец, в зонах, где
ожидаются резкие изменения неизвестных (напряжения, например, сосредо-
точиваются в окрестностях отверстий), плотность узлов и ячеек должна быть
выше, чем в областях с плавным изменением параметров.
Другой подход к решению проблем формирования сетки предлагает р-версия ко-
нечноэлементного анализа. P-версия использует простые сетки, формируемые
автоматическими методами, но зато в этой версии может изменяться степень
функции формы (также автоматически). Существует достаточно много про-
грамм FEA, поддерживающих р-версию анализа, но только две программы были
разработаны специально для этой версии: Pro/MECHANICA фирмы РТС и
PolyFEM фирмы CADSL Преимущества этого подхода не ограничиваются про-
стотой сеток. P-версия позволяет задавать конкретные ограничения на точность,
а также лучше аппроксимировать геометрические модели из программ CAD.
Низкий уровень точности позволяет конструктору быстро получить результаты
анализа на предварительном этапе разработки.
За выбором элементов следует задание типа анализа (статический или динами-
ческий, линейный или нелинейный, анализ деформаций, напряжений и т. д., как
уже отмечалось). С каждым узлом связываются неизвестные или степени свобо-
ды. К неизвестным относятся смещения, повороты, температура, тепловые пото-
ки и т. п. Затем задаются граничные условия. Для непрерывных границ объекта
известными могут быть смещения, внешние силы и температура. Эти сведения
должны быть выражены в виде значений соответствующих параметров в кон-
кретных граничных узлах. Иногда требуется формирование конечных элементов
без граничных условий. Если необходимо учесть точечные воздействия, в соот-
ветствующих точках должны располагаться узлы. Большинство систем анализа,
интегрированных с CAD, дают пользователю возможность задавать граничные
условия непосредственно на геометрической, модели, после чего эти гранич-
ные условия преобразуются к эквивалентным условиям на узлах системы. На-
грузки и граничные условия задаются множеством способов, что позволяет
решать задачи самого широкого круга и моделировать реальные условия доста-
точно точно.
Элементы типа балки и фермы
2 узла (линейный) 3 узла (квадратичный) 4 узла
(кубический)
Треугольные элементы
Квадратные элементы
4 узла (линейный) 8 узлов 12 узлов (кубический)
(квадратичный)
Призматические элементы
Гексаэдральные элементы
7 узлов (линейный)
8 узлов (линейный) 20 узлов
(квадратичный)
Рис. 8.7. Типы конечных элементов разных размерностей
Для каждого элемента обязательно задание свойств материала. Обычно эти па-
раметры включают модуль Юнга и коэффициент Пуассона (для задач строи-
тельной механики). Толщина оболочек и пластин рассматривается скорее как
свойство материала, чем как геометрический параметр, что позволяет избежать
перехода к трем измерениям. Для задач других типов могут быть заданы тепло-
емкость или вязкость. Разные элементы могут иметь разные свойства, благодаря
чему пользователь может анализировать составной объект, о чем уже говорилось
выше. Основные сложности в описании составных объектов возникают при за-
дании интерфейсов.
Полностью определенная конечноэлементная модель со всеми параметрами пе-
редается программе анализа. Решенная задача подготавливается к исследованию
постпроцессором. Большинство пакетов позволяют вычислять различные пара-
метры, выводить их в виде таблиц или графиков. Чаще всего требуется вывод
данных о деформациях, напряжениях и изменении формы. Для этой цели тради-
ционно используются контурные графики, на которых распределение парамет-
ров кодируется различными цветами непосредственно на изображении объекта.
Большинство пакетов уже ушли довольно далеко от столь примитивной графи-
ки. Пользователь современной системы может выводить на экран изоповерхно-
сти (поверхности с постоянными значениями какого-либо параметра) или попе-
речные сечения. Для динамического анализа удобно наличие средств анимации,
позволяющих проводить нелинейный анализ временной эволюции систем. Все
более возрастает потребность в выводе графиков и роликов в форматах, пригод-
ных для использования в других программах, документах, презентациях и Сети.
8.4. Автоматическое построение сетки
Построение сетки подразумевает определение положения узлов и элементов, а
также автоматическую нумерацию узлов и элементов с минимальным объемом
вводимых пользователем данных. Предполагается, что методы полностью авто-
матического формирования сетки (fully automatic mesh generation) требуют толь-
ко задания геометрической модели (геометрии и топологии) объекта, подлежа-
щего разбиению на элементы, свойств сетки, таких как плотность ячеек и типы
элементов, а также граничных условий, включающих внешние нагрузки. Мето-
ды, не входящие в эту категорию, могут требовать ввода дополнительных дан-
ных, в частности разбиения объекта на несколько частей. Такие методы считаются
полуавтоматическими. В этом разделе мы кратко расскажем о методах форми-
рования сеток, используя схему их классификации, предложенную Хо-Ли [70].
В отдельных местах мы будем воспроизводить его дословно и приводить иллю-
страции без изменений.
8.4.1. Соединение узлов
Чрезвычайно популярный подход к проблеме построения сетки состоит в соеди-
нении узлов. Популярность этого подхода объясняется простотой его концеп-
ции. Метод делится на две основные фазы: создание узлов (рис. 8.8, а) и по-
строение элементов (рис. 8.8, б).
а б
Рис. 8.8. Соединение узлов
Создание узлов
В опубликованных работах, посвященных задаче создания узлов, можно найти
следующие методы.
□ Метод Кавендиша [29]. По этому методу работа начинается с задания гранич-
ных узлов вручную. Затем программа осуществляет автоматическое создание
внутренних узлов с учетом требований к плотности ячеек. Объект делится на
участки, размер которых соответствует размеру элементов. В участке i созда-
ется квадратная сетка масштаба г(г). Одиночная сетка, построенная в предпо-
ложении, что плотность конечной сетки должна быть постоянной, изображе-
на на рис. 8.9. В каждом квадрате сетки случайным образом создастся один
внутренний узел. Это может быть реализовано выбором двух случайных чи-
сел от 0 до 1 и расчетом координат точки по соответствующим осям квадрат-
ной ячейки. Если узел попадает внутрь объекта, а расстояние от него до гра-
ничных и автоматически созданных на предыдущих шагах алгоритма узлов
оказывается большим г(г), этот узел считается принятым. В противном слу-
чае случайным образом выбирается следующий узел, который проходит ту же
проверку. Если за фиксированное количество попыток (например, пять) при-
нять узел не удается, квадратная ячейка сетки просто пропускается, и про-
грамма переходит к следующей ячейке. Этот метод может быть расширен до
трех измерений простым переходом от плоской квадратной сетки к простран-
ственной кубической.
Рис. 8.9. Создание узлов по методу Кавендиша
□ Метод Шимады 1141]. Этот метод требует представления внутренней области
объекта заполненной пузырьками (рис. 8.10). Центральные точки пузырьков
становятся узлами. Размер пузырька определяется температурным распреде-
лением, соответствующим заданной плотности сетки. Положения пузырьков
определяются условиями равновесия с учетом всех сил реакции, действую-
щих между ними.
Рис. 8.10. Создание узлов методом Шимады
Построение элементов
На этом этапе осуществляется соединение узлов, в результате чего получаются
элементы, которые не должны перекрываться, но должны покрывать всю пло-
щадь объекта. Мы рассмотрим метод Ли, который может давать четырехуголь-
ные элементы. Однако наиболее популярным методом соединения узлов является
метод триангуляции Делоне. В нижеследующем рассмотрении мы будем учиты-
вать только те элементы, у которых узлы находятся в вершинах. Если задача тре-
бует использования элементов с промежуточными узлами, их легко можно по-
строить по элементам с узлами в вершинах. Поэтому мы не будем исследовать
промежуточные узлы во всех описываемых ниже методах.
□ Метод Ли [98]. Согласно этому методу, на объект накладывается квадратная
сетка, размер ячеек которой соответствует ожидаемому размеру элементов.
Затем узлы, полученные на предыдущем этапе, связываются с ячейками этой
сетки. Ячейки и соответствующие им узлы перебираются по столбцам слева
направо и сверху вниз. Внутри ячейки узлы упорядочиваются по возраста-
нию абсцисс. Узлы с одинаковыми абсциссами сортируются по возрастанию
ординат. Узлы перебираются последовательно, причем из соседних узлов вы-
бираются такие, с которыми данный узел образует «хороший» четырехуголь-
ник. Если же четырехугольник оказывается «плохим», вместо него формиру-
ется треугольник.
□ Триангуляция Делоне [155]. Это, пожалуй, наиболее популярный метод фор-
мирования треугольников путем соединения узлов, поскольку он максимизи-
рует сумму наименьших углов во всех формируемых треугольниках. Иначе
говоря, данный метод триангуляции ориентирован на то, чтобы по возможно-
сти избегать формирования узких треугольников.
Триангуляция Делоне обычно начинается с диаграммы Вороного или полигонов
Дирихле [57]. Диаграмма Вороного (Voronoi diagram') множества Nточек Р, (i = 1,
2,..., TV) состоит из N многоугольников (многогранников, если задача решается в
трех измерениях) Ц, центры которых находятся в точках Р„ причем многоуголь-
ники эти представляют собой геометрическое место точек, для которых данный
узел i является ближайшим. Математическая запись этого утверждения относи-
тельно многоугольника Ц выглядит следующим образом:
V, ={x:|x-Pj <|x-Pj V/* i}. (8.45)
Многоугольник (многогранник) Ц является выпуклым. Он ограничивается пря-
мыми (плоскостями), проходящими через середины отрезков, соединяющих
узел Pj с его соседями, и перпендикулярными этим отрезкам. Такое разбие-
ние двумерного или трехмерного пространства называется полигонами Дирихле
{Dirichlet tesselation). Каждый многоугольник (многогранник) Вороного связан с
одним определенным узлом. Построив диаграмму Вороного, мы можем перейти
к созданию треугольных (тетраэдрических) элементов, соединяя точки соседних
многоугольников (многогранников) Вороного. Диаграмму Вороного и результат
триангуляции для десяти узлов на плоскости демонстрирует рис. 8.11.
Рис. 8.11. Диаграмма Вороного и триангуляция Делоне
Триангуляция Делоне может производиться непосредственно на наборе точек
(узлов) с использованием алгоритма двухмерной триангуляции Ватсона [155|
без предварительного построения диаграммы Вороного. Согласно этому алго-
ритму, три точки, не лежащие на одной прямой, объединяются в треугольник,
если окружность, проведенная через эти точки (описанная окружность для буду-
щего треугольника), не захватывает никаких других точек. Алгоритм реализует-
ся следующим образом. Сначала строится треугольник Го, внутри которого нахо-
дятся все узлы. Вершинами этого треугольника могут быть и точки, не
являющиеся узлами. Затем осуществляется перебор узлов из полного их множе-
ства, и для каждого узла ищутся треугольники, такие, что описанная вокруг них
окружность захватывает данный узел. Эти треугольники (называемые пересечен-
ными) в дальнейшем не рассматриваются. На рис. 8.12, б они обозначены зна-
ком X. Затем вместо них строятся новые треугольники, образуемые соединени-
ем добавленного узла с вершинами пересеченных треугольников (рис. 8.12, в).
Рис. 8.12. Алгоритм триангуляции Ватсона
г
На заключительном этапе удаляются треугольники, полученные соединением
узлов с дополнительными точками, введенными на первом этапе для построения
треугольника Го. Эта процедура легко обобщается на трехмерное пространство
путем перехода к использованию описанных сфер для четырех узлов вместо
окружностей для трех узлов [30]. Однако в трехмерном случае триангуляция
Делоне может давать очень узкие тетраэдры, тогда как в двухмерном случае ал-
горитм обеспечивает в некотором смысле оптимальную триангуляцию данного
набора точек.
8.4.2. Топологическое разбиение
Метод топологического разбиения (topology decomposition approach) для двумер-
ного случая был разработан Ворденвебером [160]. Согласно этому методу объект
аппроксимируется многоугольником, который, в свою очередь, разбивается на
множество крупных элементов (gross elements) соединением его вершин до по-
лучения треугольников (рис. 8.13, а). Затем крупные элементы разбиваются на
более мелкие до тех пор, пока не будет достигнута желаемая плотность ячеек
сетки (рис. 8.13, б). Размеры и форма элементов в данном алгоритме не могут
быть заданы пользователем, поскольку крупные элементы зависят только от ис-
ходной топологии объекта, в частности от распределения вершин. Вершины, от-
носящиеся к одному крупному элементу, могут быть найдены методом триангу-
ляции Делоне, описанным в предыдущем разделе.
Рис. 8.13. Топологическое разбиение
Для формирования набора треугольников по исходным вершинам Ворденвебер
разработал операторы, аналогичные операторам Эйлера, применяемым в объем-
ном моделировании. Первый оператор Ворденвебера ОР; применяется к объекту
для удаления имеющихся в нем отверстий (рис. 8.14). Затем по вершинам объек-
та строятся треугольники, которые отделяются от объекта рекурсивным приме-
нением оператора ОРЬ пока вершин не останется всего три. Последний тре-
угольник строится оператором ОР2.
После преобразования объекта в набор крупных треугольников осуществляется
их детализация, позволяющая достичь требуемой плотности сетки. Детализация
может быть проведена тремя методами (рис. 8.15). На рис. 8.15, а показан метод,
применяемый в том случае, если два узких треугольника имеют общую длинную
сторону. На общей стороне создается еще один узел, после чего соседние тре-
угольники делятся на части путем соединения их вершин с новым узлом. На
рис. 8.15, б показано, как большой треугольник делится путем добавления ново-
го узла в его центре тяжести. В результате деления перечисленными двумя мето-
дами может получиться так, что узкие треугольники, уже отвечающие требова-
ниям к плотности сетки, будут иметь общую сторону (рис. 8.15, в). В этом случае
качество сетки может быть повышено благодаря использованию второй диагона-
ли четырехугольника, образуемого вершинами двух исходных треугольников.
Учтите, что результат анализа методом конечных элементов может быть недос-
таточно точным, если в сетке будет слишком много узких треугольников.
Рис. 8.15. Методы улучшения треугольников
Метод топологического разбиения может быть обобщен на трехмерный случай
Объект аппроксимируется многогранником, который разбивается на тетраэдри-
ческие элементы путем последовательного соединения вершин. Затем тетраэд-
рические элементы измельчаются делением на более мелкие тетраэдрические
элементы. By и Томасма [159] предложили операторы, аналогичные операторам
Ворденвебера, для облегчения процесса построения тетраэдрических элементов.
Эти операторы, действие которых демонстрируется на рис. 8.16, используются в
следующем порядке. Сначала оператор Т3 применяется к самому объекту для
устранения отверстий в нем (рис. 8.16, в). Обратите внимание, что эта операция
приводит к появлению двух побочных тетраэдров. Затем от объекта отделяются
выпуклые углы, в которых смыкаются три ребра (такие углы называются выпук-
лыми трехвалентными вершинами). Это делает оператор Т( (рис. 8.16, а). Опера-
тор Tt применяется рекурсивно до тех пор, пока не останется ни одной выпуклой
трехвалентной вершины. Если ни одна из вершин не является выпуклой трехва-
лентной, применяется оператор Т2, выделяющий из объекта тетраэдр (рис. 8.16, б).
После его применения образуются новые выпуклые трехвалентные вершины,
поэтому снова применяется оператор Т(. Процедура продолжается до тех пор,
пока от объекта не останется один тетраэдр.
Оператор Т1
a
Оператор Т2
б
Оператор Т3
в
Рис. 8.16. Операторы топологического разбиения для трехмерного случая
8.4.3. Геометрическое разбиение
Методы геометрического разбиения {geometry decomposition approach) делятся на
рекурсивные и итеративные. Мы расскажем только о рекурсивных методах, по-
скольку они могут использоваться и в трехмерном случае.
Метод рекурсивного геометрического разбиения состоит в построении треуголь-
ных или четырехугольных элементов на плоскости. Сначала исходный объект
разбивается на выпуклые части вручную или автоматически. Автоматическое
разбиение объекта на выпуклые части описано в работе Байката [27]. На грани-
цах выпуклых частей ставятся узлы в соответствии с требуемой плотностью ко-
нечной сетки. Затем каждая выпуклая часть делится пополам приблизительно
посередине «длинной оси» (рис. 8.17), после чего на этой оси также ставятся уз-
ловые точки. Производится рекурсивное деление обеих половинок до тех пор,
пока они не станут четырехугольниками или треугольниками. В некоторых ва-
риантах метода деление производится до тех пор, пока в остатке не получатся
шестиугольники или восьмиугольники, которые разбиваются на треугольные
или четырехугольные элементы в соответствии с заранее заготовленными схема-
ми. В этом случае элементы могут получиться более одинаковыми. Построение
сетки рекурсивным методом иллюстрирует рис. 8.18.
Рис. 8.17. Деление по линии
Рис. 8.18. Пример построения сетки рекурсивным методом
Описанный метод может быть обобщен на трехмерный случай. Объект делится
на два объемных тела по плоскости лучшего сечения до тех пор, пока все подобъ-
екты не превратятся в тетраэдры. В отличие от двумерного случая, где в резуль-
тате рекурсивного деления может получиться четырехугольник, в трехмерном
случае невозможно получение шестигранников непосредственно в результате
рекурсивного деления. Однако при желании можно разбить каждый тетраэдр на
четыре шестигранника (кирпичика).
8.4.4. Решеточные методы
Решеточные методы (grid-based approaches) основаны на том, что решетка вы-
глядит подобно сетке и может быть преобразована в последнюю при условии,
что ячейки сетки вдоль границ объекта будут превращены в элементы. В общем
случае более мелкая решетка дает сетку лучшего качества, поскольку в такой ре-
шетке доминируют внутренние ячейки правильной формы. Разновидности ре-
шеточных методов отличаются друг от друга главным образом методом создания
граничных элементов.
По всей видимости, первым решеточным методом был метод Такера и его кол-
лег [150]. Согласно этому методу на объект накладывается треугольная решетка,
причем все точки решетки, оказывающиеся вне объекта, удаляются, в результате
чего получается зигзагообразная граница. Точки на этой границе перемещаются
на границу объекта, что дает готовую сетку. Кикучи [84] расширил этот метод
для создания сеток, состоящих главным образом из четырехугольников, однако
содержащих некоторое количество треугольников. Он использовал прямоуголь-
ную решетку (рис. 8.19). Одним из недостатков обоих методов является исчезно-
вение мелких деталей, размеры которых сравнимы с расстоянием между линия-
ми решетки. В других методах точки на границе решетки не перемещаются на
элементы. By и Томасма [159] предложили операторы, аналогичные операторам
Ворденвебера, для облегчения процесса построения тетраэдрических элементов.
Эти операторы, действие которых демонстрируется на рис. 8.16, используются в
следующем порядке. Сначала оператор Т3 применяется к самому объекту для
устранения отверстий в нем (рис. 8.16, в). Обратите внимание, что эта операция
приводит к появлению двух побочных тетраэдров. Затем от объекта отделяются
выпуклые углы, в которых смыкаются три ребра (такие углы называются выпук-
лыми трехвалентными вершинами). Это делает оператор Tt (рис. 8.16, а). Опера-
тор Т( применяется рекурсивно до тех пор, пока не останется ни одной выпуклой
трехвалентной вершины. Если ни одна из вершин не является выпуклой трехва-
лентной, применяется оператор Т2, выделяющий из объекта тетраэдр (рис. 8.16, б).
После его применения образуются новые выпуклые трехвалентные вершины,
поэтому снова применяется оператор Ть Процедура продолжается до тех пор,
пока от объекта не останется один тетраэдр.
а
Оператор Т2
б
Рис. 8.16. Операторы топологического разбиения для трехмерного случая
8.4.3. Геометрическое разбиение
Методы геометрического разбиения {geometry decomposition approach) делятся на
рекурсивные и итеративные. Мы расскажем только о рекурсивных методах, по-
скольку они могут использоваться и в трехмерном случае.
Метод рекурсивного геометрического разбиения состоит в построении треуголь-
ных или четырехугольных элементов на плоскости. Сначала исходный объект
разбивается на выпуклые части вручную или автоматически. Автоматическое
разбиение объекта на выпуклые части описано в работе Байката [27]. На грани-
цах выпуклых частей ставятся узлы в соответствии с требуемой плотностью ко-
нечной сетки. Затем каждая выпуклая часть делится пополам приблизительно
посередине «длинной оси» (рис. 8.17), после чего на этой оси также ставятся уз-
ловые точки. Производится рекурсивное деление обеих половинок до тех пор,
пока они не станут четырехугольниками или треугольниками. В некоторых ва-
риантах метода деление производится до тех пор, пока в остатке не получатся
шестиугольники или восьмиугольники, которые разбиваются на треугольные
или четырехугольные элементы в соответствии с заранее заготовленными схема-
ми. В этом случае элементы могут получиться более одинаковыми. Построение
сетки рекурсивным методом иллюстрирует рис. 8.18.
Линия возможного деления
Рис. 8.18. Пример построения сетки рекурсивным методом
Описанный метод может быть обобщен на трехмерный случай. Объект делится
на два объемных тела по плоскости лучшего сечения до тех пор, пока все подобъ-
екты не превратятся в тетраэдры. В отличие от двумерного случая, где в резуль-
тате рекурсивного деления может получиться четырехугольник, в трехмерном
случае невозможно получение шестигранников непосредственно в результате
рекурсивного деления. Однако при желании можно разбить каждый тетраэдр па
четыре шестигранника (кирпичика).
8.4.4. Решеточные методы
Решеточные методы (grid-based approaches} основаны на том, что решетка вы-
глядит подобно сетке и может быть преобразована в последнюю при условии,
что ячейки сетки вдоль границ объекта будут превращены в элементы. В общем
случае более мелкая решетка дает сетку лучшего качества, поскольку в такой ре-
шетке доминируют внутренние ячейки правильной формы. Разновидности ре-
шеточных методов отличаются друг от друга главным образом методом создания
граничных элементов.
По всей видимости, первым решеточным методом был метод Такера и его кол-
лег (150]. Согласно этому методу на объект накладывается треугольная решетка,
причем все точки решетки, оказывающиеся вне объекта, удаляются, в результате
чего получается зигзагообразная граница. Точки на этой границе перемещаются
на границу объекта, что дает готовую сетку. Кикучи (84] расширил этот метод
для создания сеток, состоящих главным образом из четырехугольников, однако
содержащих некоторое количество треугольников. Он использовал прямоуголь-
ную решетку (рис. 8.19). Одним из недостатков обоих методов является исчезно-
вение мелких деталей, размеры которых сравнимы с расстоянием между линия-
ми решетки. В других методах точки на границе решетки не перемещаются на
границу объекта. Вместо этого между зигзагообразной границей решетки и гра-
ницей объекта создаются треугольные элементы, для чего используется алго-
ритм триангуляции.
Рис. 8.19. Решеточный метод: прямоугольная решетка
Йерри и Шипхард [164] для создания сеток воспользовались квадрантным дере-
вом. Квадрантное дерево представляет собой двумерный аналог октантного, о кото-
ром говорилось в главе 5. Это дерево позволяет представить двумерный объект
(рис. 8.20, а) в виде набора квадрантов различного размера путем рекурсивного
деления исходного квадранта, содержащего данный объект. Процесс деления
объекта иллюстрирует рис. 8.20, б, а квадрантное дерево, описывающее процесс
деления, изображено на рис. 8.20, в. Сетка строится следующим образом.
о Узел с потомками
| | Пустой узел
в
Ц Узел с материалом
Рис. 8.20. Представление объекта в виде квадрантного дерева
1. Создается исходный (корневой) квадрант, содержащий объект целиком внут-
ри себя. Этот квадрант делится на четыре квадранта путем деления каждой
его стороны пополам. Затем квадранты классифицируются по положению от-
носительно объекта. Если квадрант не лежит целиком внутри или снаружи
объекта, он делится дальше. Процесс деления продолжается до тех пор, пока
не будет удовлетворено требование к плотности сетки, после чего берутся
квадранты, либо лежащие целиком внутри объекта, либо имеющие с ним об-
щие точки. Если рассматриваются квадранты, имеющие с объектом общие
точки, их приходится модифицировать таким образом, чтобы они содержали
только внутренние части объекта. Объект, состоящий из квадрантов, лежа-
щих целиком внутри него, а также модифицированных квадрантов, имеющих
с ним общие точки, будет выглядеть так, как показано на рис. 8.21, а.
а б в
Рис. 8.21. Построение сетки при помощи квадрантного дерева
2. Каждый модифицированный квадрант делится на треугольные элементы в со-
ответствии с предварительно заготовленными схемами в зависимости от его
формы. Квадранты, лежащие полностью внутри объекта, также делятся на части
для обеспечения согласования с соседними ячейками. Два соседних элемента
называются согласующимися, если у них имеется целое общее ребро (в трех-
мерном случае — общая грань). Полученная этим методом сетка изображена
на рис. 8.21, б.
3. Положения узлов корректируются так, чтобы улучшить форму ячеек. Резуль-
тат сглаживания сетки демонстрирует рис. 8.21, в. Метод сглаживания будет
описан позже.
Описанный метод был расширен на три измерения при помощи октантного
дерева. Частично заполненные октанты модифицируются таким образом, чтобы
лежать целиком внутри объекта, после чего разбиваются на тетраэдры, точно так
же, как в двумерном случае квадранты разбивались на треугольники. Тетраэдры
должны быть согласованы с соседними октантами и удовлетворять требованию
к плотности ячеек. С учетом всех возможных случаев для этого требуется чрез-
вычайно сложный алгоритм. Вообще говоря, разбиение модифицированного
квадранта в двумерном случае — тоже непростая задача.
Джан и Ли [82] предложили новый метод, согласно которому нужно начинать
с треугольного корня (или тетраэдрического в трехмерном случае). Это позволя-
ет избежать описанных выше затруднений. В этом случае квадрантное дерево
будет аппроксимацией объекта треугольниками, а октантное дерево — тетраэдра-
ми. Деление треугольного корня на четыре маленьких треугольника показывает
рис. 8.22, а, а деление тетраэдрического корня на восемь тетраэдров — рис. 8.22,6.
а б
Рис. 8.22. Деление треугольников и тетраэдров
8.4.5. Отображаемые элементы
Метод отображаемых элементов (mapped, element approach) используется в
большинстве коммерческих генераторов сеток. Этот метод требует деления объ-
екта на области со специфической топологией. В двух измерениях области могут
иметь три или четыре стороны, в трех измерениях области являются чем-то вро-
де коробок. В каждой области сетка строится автоматически путем отображения
данной области на регуляризованную область (правильный треугольник или квад-
рат в двумерном случае и куб в трехмерном). Регуляризованная область делится на
части с учетом ожидаемой плотности сетки, после чего отображается обратно на ис-
ходную область. Полная сетка получается слиянием сеток отдельных областей. На
границах соседних областей количество узлов должно быть одинаковым, чтобы сет-
ка получилась согласованной. Выполнение этого требования может обеспечиваться
как вручную, так и алгоритмически в процессе построения сеток соседних областей.
Методов отображения существует достаточно много. Приведем в качестве при-
мера два типичных метода: трапсфинитное отображение и изопараметрическое
отображение.
Трансфинитное отображение
Трансфинитное отображение (Iransfinite mapping) позволяет отображать облас-
ти (с тремя или четырьмя сторонами в двумерном случае или коробочного типа
в трехмерном) на регуляризованную область без всяких геометрических погреш-
ностей. Другими словами, точки, находящиеся на границе исходной области,
всегда отображаются на границу регуляризованной области.
Четырехстороннюю область (рис. 8.23, а) легко отобразить на единичный квад-
рат в пространстве параметров uv (рис. 23, б) методом, который уже использо-
вался при выводе уравнения лоскута Куна в главе 7. Отображение четырехсто-
ронней области на регуляризованную выражается формулой
P(w,&) = (1-и)Р&(&) +wPf (») + (!-&)Q0(«) + &Q1(w)-
-(l-w)(l-v)P00 -и(1-»)Р10 -(l-u)vPM -uvPlA, (8.46)
(0 <u <1, 0 <v <1).
Затем на параметрическую область накладывается решетка (см. рис. 23, б), и ко-
ординаты и и v точек решетки подставляются в уравнение (8.46), с тем чтобы по-
лучить координаты точек узлов. Значения и на можно подобрать таким образом,
что плотность ячеек в одних участках области будет больше или меньше, чем
в других.
Рис. 8.24. Отображение трехсторонней области
Область с тремя сторонами столь же легко разбить на сетку из треугольных эле-
ментов, используя трилинейную интерполяционную функцию, чему посвящена
работа [8]. Трехсторонняя область на рис. 8.24 (а) может быть отображена на па-
раметрическую область с рис. 8.24 (б) функцией
P(u,v,w) = - ---1 I-----1--------f-
2[ 1-v 1-v 1-w 1-w (847)
-®/(0)-Ug(0)-rA(0)l.
i-u 1-и
Параметрическая область задания уравнения (8.47) описывается следующим
уравнением:
u + v + w = 1, 0<и<1, 0<а<1, 0<®;<1. (8.48)
В этом случае параметрическая область может быть поделена на ячейки задани-
ем набора последовательных значений и и v от 0 до 1 и вычислением соответст-
вующих значений w для каждой пары и и v.
Трансфинитное отображение трехмерной области выводится тем же образом,
что и отображение четырехсторонней плоской области. Единственное отличие
состоит в том, что сопрягать приходится шесть уравнений граничных поверхно-
стей, а не два уравнения граничных кривых [166].
Изопараметрическое отображение
Изопараметрическое отображение (isoparametric mapping) — это частный случай
трансфинитного отображения. При этом отображении только отдельные точки
на границе исходной области (а не вся граница) попадают в соответствующие
точки на границе регуляризованной области (единичного квадрата или куба в
параметрическом пространстве, рис. 8.25). Другими словами, соответствие гра-
ниц обеспечивается только в конечном числе точек. Уравнение отображения,
таким образом, выводится путем замены точных уравнений граничных кривых в
уравнении (8.46) на уравнения кривых, интерполирующих заданные точки. Точ-
но так же и уравнения поверхностей заменяются на уравнения интерполяцион-
ных поверхностей. Если для каждой граничной кривой задаются две точки
(рис. 8.25, а), в уравнение (8.46) подставляются линейные интерполяционные
уравнения. Для трех точек потребуются квадратичные интерполяционные функ-
ции (рис. 8.25, б), а для четырех — кубические (рис. 8.25, в).
Параметрическое
пространство
Линейное
преобразование
Квадратичное
преобразование
в
Рис. 8.25. Изопараметрическое отображение
8.4.6. Повышение качества сетки
Некоторые методы построения сеток, в особенности группа методов топологи-
ческого разбиения, не способны дать достаточно хорошую сетку для проведения
анализа методом конечных элементов. Поэтому применяют трехэтапный метод
улучшения качества сетки.
1. Если построенные элементы относятся не к тому типу, который требовался
пользователю, эти элементы разбиваются на элементы нужного типа.
2. Если размер элементов не соответствует нужному распределению плотности
ячеек, они разбиваются на более мелкие.
3. Если форма элементов недостаточно хороша, применяют методы сглажива-
ния сетки.
Преобразование элементов
Если генератор сетки построил элементы, тип которых не соответствует требова-
ниям, эти элементы могут быть преобразованы к нужному типу. Четырехуголь-
ники и кирпичики легко преобразуются к треугольникам и тетраэдрам хорошей
формы (рис. 8.26). Треугольники и тетраэдры с той же легкостью разбиваются
на четырехугольники и кирпичики (рис. 8.27). Однако в последнем случае эле-
менты могут иметь не слишком хорошую форму, потому что углы около доба-
вочных узлов обязательно будут большими. Сетка треугольников может быть
преобразована к сетке четырехугольников простым объединением пар соседних
треугольников в четырехугольник [64].
Рис. 8.26. Преобразование четырехугольника и кубика в треугольники и тетраэдры
Рис. 8.27. Преобразование треугольника и тетраэдра в четырехугольники и кубики
Детализация сетки
При детализации сетки некоторые ее элементы разбиваются на более мелкие, то-
гда как другие элементы могут оставаться нетронутыми. Отсюда может возник-
нуть проблема нарушения согласованности соседних узлов (рис. 8.28, а). Вспом-
ните, что соседние элементы называются согласованными {conforming), если у
них имеется целая общая сторона или грань. В треугольной сетке согласован-
ность треугольников обеспечивается бисекцией длинной стороны большего тре-
угольника. Для четырехугольных элементов решение этой задачи отнюдь не про-
сто. Изменение сетки для достижения соответствия четырехугольных элементов
с рис. 8.28, а иллюстрирует рис. 8.28, б.
Рис. 8.28. Несогласованная сетка и ее модификация
Сглаживание сетки
Достаточно часто элементы, построенные автоматическим генератором сетки,
получаются «неказистыми», с острыми углами и сильно отличающимися сторо-
нами. Про такие элементы говорят, что они имеют «плохую» форму. В этом слу-
чае требуется применение метода сглаживания сетки. Наиболее популярен метод
сглаживания Лапласа {Laplacian smoothing), согласно которому узлы перемеща-
ются таким образом, что каждый внутренний узел оказывается в центре тяжести
тела, образованного связанными с ним соседями. Перемещение обычно осущест-
вляется итерационным путем. Однако в некоторых случаях метод Лапласа не ра-
ботает или работает недостаточно хорошо. В 1976 г. Германн предложил следую-
щую формулу, по которой и осуществляется перемещение узлов:
• 1 N
Р< =-------£ (Ри, + Р„/ - Л). (8.49)
где N — число элементов около узла i, a w — весовой коэффициент от 0 до 1. Со-
седние узлы P„j, Рп1 и Рпк определяются согласно рис. 8.29. При w = 0 форму-
ла (8.49) выражает метод сглаживания Лапласа, а при w = 1 — метод изопарамет-
рического сглаживания.
Рис. 8.29. Соседние узлы внутреннего узла с номером i
8.5. Пример анализа по методу конечных
элементов
В этом разделе мы демонстрируем построение сетки конечных элементов и вы-
полнение анализа корпуса сотового телефона из главы 1. Мы будем использо-
вать коммерческую программу конечноэлементного моделирования Pro/MESH
и коммерческую программу анализа ANSYS. В разделе 8.3 мы описали общую
процедуру подготовки и анализа, которая иллюстрируется диаграммой на
рис. 8.30. Здесь мы приводим подробное описание каждого этапа этой схемы.
Предполагается, что геометрическая модель детали (рис. 8.31, а), уже построена.
1. Упрощение геометрии детали. Перед тем как строить сетку конечных элемен-
тов для проектируемой детали, мы должны внимательно изучить ее и опреде-
лить, нельзя ли ее упростить. Во многих случаях перенос всех подробностей
геометрической модели в аналитическую нежелателен, потому что мелкие де-
тали приводят к формированию большого количества маленьких ячеек, что в
конечном итоге увеличивает время вычислений1. Поэтому мы можем попы-
таться упростить геометрию детали методом удаления элементов, не сущест-
венных для анализа, таких как закругления, фаски и небольшие отверстия.
Далее, детали часто преобразуются к оболочкам, элементы которых являются
оболочками, а не объемными телами. В нашем примере тем не менее будут
использоваться объемные элементы. Аналитическую модель детали после
удаления узких канавок в верхней части передней панели и закруглений меж-
ду отверстиями демонстрирует рис. 8.31, а.
Рис. 8.30. Диаграмма этапов работы
1 Этих проблем можно избежать, если использовать р-версию коиечноэлемептпого анали-
за, в которой граница может достаточно хорошо аппроксимироваться крупными элемен-
тами при условии достаточно высокого порядка функций формы.
а б
Рис. 8.31. Геометрия детали: а — исходная; б — после упрощения
2. Задание материалов. Перед выполнением анализа необходимо определить
свойства материалов (рис. 8.32).
3. Добавление системы координат. Системы координат используются для зада-
ния компонент векторов нагрузок и ограничений. Мы можем выбрать для
этого декартову, цилиндрическую или сферическую систему координат
(рис. 8.33).
MATERIAL HANDPHONE
This file му be edited using available editor.
Just type on the necessary lines appropriate values
after the “““ sign. Comments are not permitted on
lines containing Mterlal properties names.
VOUNG.NODULUS - 2.00M00e>01
POISSOH.RATIO - h.50M10e-ri
SHEAR_NDDULUS
MASS.tENSlTV
THERNAL_EXPAMSIOH_COEFFICIENT
THERH_EXPANSION_REF_TEM>ERATURE -
STRUCTURALDAHPINGCDEFFIСIEHT
STRESS_LINIT_FOR_TENSIOH
STRESS~L1NIT_FOR_COHPRESSION
STRESSJL1MI OoR_SI*EAR
THERHAL_CONDUCTIUITV
EN1SSIUITV
SPECIF1C_NERT
HARDNESS
CONDITION
INIT1ALDEH0 V FACTOR
EM)_TABLE
PRO UNIT MASS
PRO~UNIT^LENGTH
Рис. 8.32. Задание свойств материалов
Рис. 8.33. Добавление системы
координат
4. Наложение ограничений. Модель готова для задания нагрузок и наложения
ограничений. Сначала мы накладываем ограничения на смещения: задняя по-
верхность должна иметь нулевые смещения по всем шести степеням свободы
(вращательным и трансляционным). Эти ограничения обозначены маркера-
ми х на задней панели (рис. 8.34).
.» >r .• t.
Рис. 8.34. Задание граничных условий
Система Pro/MESH позволяет задавать следующие типы ограничений и на-
грузок: давление, силу, момент количества движения, смещение, давление на
ребро, температуру, ускорение, угловую скорость и суммарную силу (рис. 8.35).
Ограничения на смещение бывают пяти видов (рис. 8.36):
О 3components (3 компоненты) — трансляционное смещение точек, ребер и
граней;
О Immovable {Неподвижный) — нулевое смещение точки, ребра или грани по
трем трансляционным степеням свободы;
О bcomponents (6 компонент) — трансляции и повороты точек, ребер и граней;
О Fixed (Закрепленный) — нулевое смещение точки, ребра или грани по всем
шести степеням свободы;
О Along Surf (Вдоль поверхности) — узлы на выбранной плоскости или цилиндре
могут перемещаться только вдоль выбранной поверхности. Узлы на цилин-
дре могут иметь дополнительное ограничение: перемещаться с изменени-
ем только координаты по продольной оси или только азимутального угла.
Рис. 8.35. Меню выбора структурных
нагрузок и ограничений
Рис. 8.36. Меню задания
ограничений на смещения
5. Добавление области. Теперь мы должны определить область приложения на-
грузки. В нашем примере нагрузка будет прикладываться в том месте, где
откидная крышка соединяется с корпусом телефона. Эта область является ча-
стью лицевой поверхности, поэтому мы должны задать часть этой поверх-
ности. Область определяется кривыми, которые строятся непосредственно на
поверхности детали.
6. Приложение нагрузок (случай 1). Первая ситуация состоит в том, что крышка
полностью открывается и прижимается вниз. Чтобы смоделировать эту си-
туацию, мы приложим направленную вверх силу к верхней половине петель
и направленную вниз силу в узкой контактной области, где опускающаяся
крышка касается корпуса телефона (рис. 8.37). Суммарная нагрузка состав-
ляет 0,1 Н в направлении х и -0,2 Н в направлении z в контактной области и
0,2 Н в направлении z в области шарниров. Система самостоятельно рассчи-
тывает распределенную нагрузку при указании суммарной силы, действую-
щей на какой-либо участок (рис. 8.37).
7. Приложение нагрузок (случай 2). Вторая ситуация состоит в том, что крышка
открывается и поворачивается. Мы имитируем эту ситуацию заданием на-
грузки, изображенной на рис. 8.38. В этом случае величины действующих сил
одинаковы и равны 0,2 Н, но направления их действия противоположны.
Рис. 8.37. Нагрузки и граничные
условия для первой ситуации
Рис. 8.38. Нагрузки и граничные
условия для второй ситуации
8. Оценка сетки. Теперь система может построить сетку конечных элементов
(рис. 8.39). Размер элементов может быть задан двумя способами. Глобаль-
ные параметры сетки — это максимальный и минимальный размер элемента
во всей модели. Локальные параметры сетки — максимальный и минималь-
ный размер элемента на ребре, поверхности или в окрестности точки. На
практике удобно бывает построить сетку без задания конкретных значений
параметров и изучить результат, который может послужить хорошей отправ-
ной точкой. Затем при необходимости можно присвоить параметрам нужные
значения и повторить процесс построения.
Система Pro/MESH позволяет использовать элементы двух типов:
О трехмерные тетраэдрические элементы для моделирования объемных пли
толстых компонентов;
О плоские треугольные и квадратные элементы оболочек для моделирования
тонких компонентов.
Как уже отмечалось, в настоящем примере мы будем использовать объемные
(тетраэдрические элементы), чтобы не тратить время на преобразование объ-
емной модели к оболочке перед построением сетки.
Изучив сетку и оценив ее качество, мы можем решить повысить его в отдель-
ных участках. Мы можем указать дополнительные параметры сетки и выпол-
нить построение снова. Для получения приемлемой сетки обычно требуется
несколько итераций.
9. Перестроение сетки. Количество ячеек на рис. 8.39 слишком велико: их около
70 000, что затрудняет анализ и требует слишком больших ресурсов. Нужно
уменьшить количество ячеек. Для этого мы увеличим локальный минималь-
ный размер элемента в тех частях, которые не влияют на качество анализа.
Последовательными приближениями мы уменьшили количество ячеек до 20 000
(рис. 8.40).
Рис. 8.39. Исходная сетка построена
Рис. 8.40. Новая сетка
10. Вывод данных системы моделирования. Если мы планируем выполнять анализ
методом конечных элементов в другой программе, мы должны создать выход-
ной файл с данными о сетке, который будет содержать:
О элементы и узлы сетки в формате, совместимом с конкретной программой
анализа;
О все ограничения, наложенные па модель;
О параметры всех использованных материалов.
В нашем примере мы создадим выходной файл для ANSYS.
11. Решение и оценка результатов. Выходной файл системы моделирования счи-
тывается программой ANSYS. после чего выполняется анализ методом конеч-
ных элементов. После выполнения анализа можно изучить его результаты —
распределения напряжений и смещений (рис. 8.41). Результаты совпадают с
нашими интуитивными предположениями о том, что напряжения будут мак-
симальны в области крепления крышки к корпусу.
а
б
Рис. 8.41. Результаты анализа: а — распределение напряжений для случая 1;
б — для случая 2
Вопросы и задачи
1. Представьте, что вы должны спроектировать и выпустить подвесной кронштейн.
Сначала вам нужно построить модель, рассчитать распределение смещений и
напряжений, проанализировать эффективность модели и оптимизировать ее
форму. Для этого можно воспользоваться средствами моделирования и ана-
лиза методом конечных элементов. При помощи коммерческого программно-
го пакета типа NASTRAN или ANSYS решите следующие задачи’.
1) В препроцессоре или программе конечноэлементного моделирования по-
стройте исходную модель изображенного на следующем рисунке подвес-
ного кронштейна и задайте параметры материалов: толщина 10 мм; модуль
Юнга Е = 2,07x10” Н/м2; плотность р = 7,8х10"6 кг/мм3; коэффициент Пу-
ассона |i = 0,3.
подшипник)
•Все размеры указаны в мм
2) Запустите программу анализа и получите решение для исходной модели
с учетом изображенной на рисунке нагрузки. (Совет: рассчитайте нагруз-
ку, создаваемую подшипником, по формуле BP = F/td, где F = 5000 Н. Для
боковых элементов задайте значение 0,001.)
3) При помощи постпроцессора получите графики распределения смещений
и напряжений.
2. Проанализируйте распределение температуры в окне с неизолированной тя-
нутой металлической рамой в зимний день. При помощи коммерческого па-
кета конечноэлементного моделирования постройте модель и сетку из
элементов, пригодных для анализа распределения температур. Для построе-
ния модели вы можете воспользоваться плоскими примитивами, объединяя
их при помощи булевских операций. Модель состоит из различных материа-
лов, поэтому вы должны создавать ячейки с разными свойствами.
(Предположение: окно считается бесконечно длинным. Модель должна пред-
ставлять собой полосу единичной толщины.)
Поперечное сечение окна и все его размеры приведены на рисунке. Размеры
указаны в дюймах.
1 Чертежи к задачам этой главы взяты из книги Введение в ANSYS Rev. 5.0А, том 2: реше-
ния задач. Перепечатано с разрешения ANSYS, Inc. (Canonsburg, РА).
Адиабатическое условие
(нет теплопереноса
через край)
Стекло
Полости
Алюминий
Адиабатическое условие
(нет теплопереноса
через край)
* g
Бетон
lilili
3. Получите решение для окна из задачи 2, к которому приложена нагрузка в со-
ответствии с приведенным ниже рисунком. Постройте распределение темпе-
ратуры.
Внешняя атмосфера
• Температура = 0°F
Коэффициент теплопереноса = 0,0347 BTU/hr-ir^-’F
Внешние
Внутренние
конвективные
поверхности
поверхности
Внутренняя атмосфера
Температура = 70°F
Коэффициент теплопереноса = 0,0139
4. Постройте модель втулки, показанной на рисунке, и выполните статический
анализ методом конечных элементов. Модель можно построить из трех при-
митивов, например цилиндра, призмы и кирпича, соединив их двумя булев-
скими операциями. Все размеры указаны в дюймах.
О радиус цилиндра: 0,55;
О длина цилиндра: 2,0;
О сила: 100 фунтов.
Глава 9
Оптимизация
Оптимизация, как мы говорили в главе 1, — это один из этапов процесса разра-
ботки, то есть часть жизненного цикла продукта, а потому технологии оптимиза-
ции также относят к средствам автоматизированного проектирования. В прин-
ципе, весь процесс проектирования можно считать оптимизацией, потому что в
этом процессе создается несколько альтернативных проектов, из которых выби-
рается один лучший. Это утверждение становится верным, если понимать слово
«оптимизация» в очень широком смысле. Однако обычно под оптимизацией по-
нимается не выбор одной из нескольких альтернатив (таких, например, как за-
клепка, болт и скоба), а скорее, выбор оптимального размера одной из них (на-
пример, заклепки). Понимаемая в этом смысле оптимизация уже является
частью процесса проектирования, а не самим этим процессом.
9.1. Постановка задачи
Оптимизация конструкции требует ее параметризации, дающей возможность
рассматривать альтернативные конструкции, изменяя значения параметров. На-
пример, при разработке цилиндрического сосуда для хранения газов под давле-
нием параметрами были бы средний диаметр, толщина, высота и используемый
материал. Различные наборы значений параметров будут давать разные сосуды.
В зависимости от ситуации .некоторые параметры могут не иметь степеней сво-
боды из-за ограничений. Например, у нас может быть только один материал, так
что для оптимизации сосуда остались бы только средний диаметр, толщина и
высота. Мерой качества сосуда может быть максимально допустимое давление,
поделенное на вес. Средний диаметр, толщина и высота будут варьируемыми
параметрами конструкции. Можно попытаться найти оптимальное сочетание па-
раметров, которое приведет к максимальному значению показателя качества.
Показатель качества может быть выражен в виде функции параметров, если мы
воспользуемся знаниями, полученными при изучении сопротивления материа-
лов. Оптимизируемые параметры называются переменными оптимизации {opti-
mization variables'), а показатель качества, вычисляемый по этим переменным,
называется целевой функцией {objective function). Очевидно, что переменные оп-
тимизации и целевая функция выбираются конструктором в соответствии с тем,
для чего предназначается его творение.
Оптимизацию конструкции можно описать на математическом языке. Обозна-
чив переменные оптимизации символом X (n-мерный вектор, компонентами ко-
торого являются переменные оптимизации), а целевую функцию символом Г(Х),
мы можем записать задачу просто: минимизировать (максимизировать) F(X).
Однако реальный процесс оптимизации от этого не упростится. Очень редко по-
казатель качества задачи может быть выражен одной-единственной целевой
функцией. Чаще всего приходится выбирать между разными показателями или
строить объединенный показатель с какими-либо весовыми коэффициентами.
Этот процесс называется построением сложной целевой функции (composite
objective function). Мы можем использовать некоторые показатели качества как
ограничения. Например, вместо того чтобы максимизировать допустимое давле-
ние на единицу веса и внутренний объем сосуда одновременно, мы можем огра-
ничить объем некоторым минимальным значением, а максимальности потребо-
вать только от давления на единицу веса. В этом случае ограничения придется
каким-то образом включить в математическую формулировку задачи (ниже мы
покажем, как это делается).
Можно ожидать, что в большинстве случаев переменные оптимизации будут иметь
ограниченную область определения. Например, высота сосуда не может превы-
шать определенного значения из-за ограниченности высоты помещения. Поэто-
му вектор X должен удовлетворять определенным требованиям. Компонентами
вектора, разумеется, являются переменные оптимизации. Проект, удовлетворяю-
щий всем требованиям, называется приемлемым (feasible design или acceptable
design). Ограничение, задающее верхнюю или нижнюю границы области опре-
деления переменной оптимизации, называется ограничением области (regional
constraint или side constraint). Ограничение, выведенное из явного рассмотрения
функционального требования или показателя качества, называется функцио-
нальным, или поведенческим, ограничением (functional, behavior constraint).
С учетом ограничений простая задача оптимизации может быть записана сле-
дующим образом: найти
X’ е Rn, такой что F(X*) = minF(X) (9.1)
при условии, что
Х,<Х*<Х„; (9.2)
G,(X*)>0 i = l, 2.m; (9.3)
Н,(Х*) = 0 j = 1,2,. ..q, (9.4)
где т — количество ограничений-неравенств, a q — количество ограничений-ра-
венств. Знак неравенства в формуле (9.3) может быть заменен на противопо-
ложный, если условия G, выражены через отрицания. Символ R" обозначает про-
странство конструкций, получаемое варьированием всех переменных оптимизации.
Ограничения области, наложенные на переменные оптимизации, записаны в
уравнении (9.2), где Х; и Хи — нижний и верхний пределы переменных опти-
мизации соответственно. Обратите внимание, что функциональные ограничения
могут быть записаны как в виде равенств, так и в виде неравенств ((9.3) и (9.4)).
Задача оптимизации, выраженная через максимизацию целевой функции, легко
преобразуется к задаче минимизации инвертированием или отрицанием исход-
ной целевой функции.
Целевая функция F(X) в формуле (9.1) может быть интерпретирована как урав-
нение поверхности размерности п в пространстве п + 1 переменных. Для задач с
двумя переменными оптимизации такую поверхность легко представить в обыч-
ном трехмерном пространстве. Координата z точки поверхности — это значение
целевой функции, соответствующее координатам х и у, подставленным вместо
параметров. Процесс оптимизации можно, таким образом, сравнить с восхожде-
нием на гору в плотном тумане [ 149]. Альпинист может определить свою высоту
при помощи альтиметра и смотреть вокруг себя, выбирая направление подъема
или спуска, но не может обнаружить хребты и провалы, затрудняющие продви-
жение по маршруту. Ему приходится следить и за тем, чтобы не свалиться в про-
пасть, что эквивалентно нарушению ограничений в формулах (9.2)-(9.4).
9.2. Ограничения
Большинство задач оптимизации ставятся вместе с ограничениями, о чем гово-
рилось в предыдущем разделе. Ограничения могут быть трех типов. Ограниче-
ния первого типа задают область определения переменных оптимизации. Эти ог-
раничения легко выполнить, потребовав, чтобы в процессе поиска переменные
не выходили за установленные рамки. Ограничения второго типа — равенства —
сокращают размерность пространства решений. Лучшим методом обработки этих
ограничений является исключение переменных алгебраическим путем. Однако
метод исключения переменных применим только до тех пор, пока уравнения ог-
раничений допускают решение относительно независимых переменных. При на-
личии нескольких ограничений процесс исключения может стать достаточно
громоздким. В некоторых случаях явное решение уравнений может оказаться
невозможным. Альтернативой является использование штрафных функций
(penalty function), о которых речь пойдет ниже [6].
К третьему типу относятся ограничения-неравенства. Стандартный подход к зада-
чам оптимизации с такими ограничениями состоит в том, чтобы изменить целевую
функцию для учета влияния этих ограничений. Целевая функция модифициру-
ется добавлением штрафной функции, увеличивающей ее на большую величину
при нарушении ограничений. Идея всех методов штрафных функций проста: при
нарушении ограничения к целевой функции добавляется бесконечно большое
число, в противном случае (ограничение не нарушено) целевая функция остает-
ся прежней. Следовательно, штрафную функцию Р(Х) можно определить так:
Р(Х) =
О,
+00,
Хе Rnf-
X*R”f,
(9.5)
где R" — подмножество R”, соответствующее только допустимым конструкциям,
то есть таким, которые удовлетворяют всем ограничениям. Теперь мы можем без
ограничений решать задачу минимизации дополненной целевой функции, или
функции спуска {descent function) D(X):
D(X) = F(X) + P(X).
(9-6)
Однако оптимизация без ограничений в данном случае невозможна (за исключе-
нием, быть может, некоторых тривиальных случаев) из-за разрывов в D(X) на
границе R”, а также бесконечности значений вне R”. Замена бесконечности на
«большой», но конечный штраф не упростила бы задачу, поскольку все равно ос-
тались бы численные трудности. Для решения этих проблем предложено было
использовать две штрафные функции: внутреннюю и внешнюю.
9.2.1. Внешние штрафные функции
Внешние штрафные функции используются для решения уравнения (9.1). Метод
подразумевает использование задач на минимизацию без ограничений, опти-
мальные решения которых стремятся к решению уравнения (9.1) извне области
допустимых конструкций. В последовательности задач на оптимизацию без ог-
раничений на каждое значение X £ Rj накладывается штраф, в результате чего
оптимальное значение стремится к области допустимого.
В качестве аппроксимации штрафной функции из уравнения (9.5) можно пред-
ложить приведенную ниже функцию, учитывающую ограничения в виде ра-
венств и неравенств:
5(Х) = £5>.|С,.(Х)Г +£|Я7(Х)|₽, (9.7)
где ‘ j [0, G,(X)>0; 8: =1 Л ’ (9.8) ‘ [1, G;(X)<0. V ’
Ограничения аир обычно имеют значения 1 и 2, а функции G, и Н, взяты из
уравнений (9.3) и (9.4). Обратите внимание, что
5(Х) = 0 Хе^; (9.9)
5(Х)>0 Х«еЯ;. (9.10)
Для произвольного положительного числа дополненная целевая функция мо-
жет быть определена как
(9-11)
Г>(Х,р) = Д(Х) + -5(Х).
Р
Заметьте, что D(X, р) = F(X) тогда и только тогда, когда X соответствует прием-
лемому проекту, в противном случае D(X, р) > F(X). Слагаемое 5(Х)/р аппрок-
симирует разрывную функцию Р(Х) из уравнения (9.5) при стремлении р —> 0.
Итак, метод внешней штрафной функции состоит в решении последовательно-
сти неограниченных задач на оптимизацию при k = 0, 1,2,...:
min£)(X,p4) = min F(X) + —
Р*
181.|С,.(Х)|°+Х|Я/Х)|₽
(9.12)
при строго уменьшающейся последовательности положительных чисел рк. Оп-
тимальные значения Хк для рк будут сходиться к настоящему оптимуму X* при
увеличении k и приближении рк к нулю. Эту сходимость мы подтвердим приве-
денным ниже примером.
Пример 9.1
Найти минимум функции F(x) = х2 (хе R) при условии х - 1 > 0. Оптималь-
ное решение очевидно: х’ = 1, поэтому нам нужно только показать, что решение,
полученное методом внешних штрафных функций, стремится к тому же числу.
Решение
Построим дополненную целевую функцию, используя выражение (9Л2) с а = 2.
Мы получим задачу оптимизации без ограничений:
minZ)(x,pt) = min
x2 + — 6(x-l)2
P*
Здесь 6 равно 1 при x < 1 и 0 для прочих х.
Для любого положительного р* функция D выпукла вниз (рис. 9.1) и ее мини-
мум находится в точке
Заметьте, что для любого положительного pt эта точка не удовлетворяет огра-
ничению исходной задачи, поскольку значение х оказывается меньше единицы.
При стремлении рк к нулю последовательность точек хк стремится к х = 1 извне
разрешенной области значений х. На практике описанная процедура выполня-
ется численным алгоритмом. Любой численный алгоритм останавливается при
удовлетворении некоторого критерия сходимости, поэтому решение, найденное
методом внешних штрафных функций, будет оптимальным, но не удовлетво-
ряющим ограничению исходной задачи. Это внутренняя проблема самого метода
внешних штрафных функций, который вообще действует только в том случае,
когда ограничения нарушаются (ведь штрафные функции являются внешними
по отношению к области допустимых значений).
Рис. 9.1. Дополненная целевая функция
9.2.2. Внутренние штрафные функции
Метод внутренних штрафных функций предполагает решение задач с ограниче-
ниями-неравенствами через последовательность задач оптимизации без ограни-
чений, решения которых строго удовлетворяют ограничениям, то есть находятся
внутри области допустимых значений. Это гарантируется барьерной функцией
(barrier function), которая устанавливает бесконечно большой штраф за пересече-
ние границы области допустимых значений изнутри. Поскольку алгоритм требу-
ет, чтобы внутренняя часть области допустимых значений была не пуста, он не
может использоваться для обработки ограничений-равенств1.
1 Если задача требует учета ограничений-равенств, пользуются методом смешанных
штрафных функций, согласно которому в дополненную целевую функцию добавляются
внешние штрафные функции для ограничений-равенств и внутренние штрафные функ-
ции для ограничений-неравенств.
Итак, рассмотрим задачу оптимизации
minf(X) (9.13)
при условиях
G,(X)>0 i = l,2...т. (9.14)
Хорошая барьерная функция, создающая «стены» на границах области допусти-
мых значений, имеет следующий вид:
«Х) = ^ <9Л5)
Заметьте, что значения В(Х) стремятся к плюс бесконечности при приближении
X к границе области изнутри, благодаря чему В(Х) и называется барьерной
функцией. Чтобы учесть все т ограничений (9.14), мы можем просто поставить в
формуле (9.15) знак суммирования по i. Как и для метода внешних штрафных
функций, дополненная целевая функция определяется выражением
D(Xp) = F(X) + pB(X), (9.16)
где р — положительное число. Метод внутренних штрафных функций требует
решения последовательности задач оптимизации без ограничений для
k = 0, 1,2,..., причем сами задачи даются формулой
minZ)(Xpt) = min F(X) + p4£
1
G,(X)
(9-17)
где последовательность положительных pt строго убывает. Оптимальные зна-
чения Хк для р* будут сходиться к реальным оптимальным значениям X' при
стремлении рк к нулю. Продемонстрируем эту сходимость на следующем примере.
Пример 9.2
Найти минимум функции
при условии, что х - 1 > 0. Оптимальное решение х' = 1, так что нам остается по-
казать, что промежуточные решения, полученные при помощи внутренних
штрафных функций, будут стремиться к этому числу.
Решение
Построим дополненную целевую функцию вида (9.17). Мы должны решить за-
дачу оптимизации без ограничений:
ч • Г1 1
minD(x,pt) = min -х + р*^~j •
Отсюда находим точку минимума функции D1:
и значение функции D в этой точке:
I
1 Чтобы получить значения хк, продифференцируем функцию D по х, приравняем произ-
водную нулю и решим получившееся уравнение относительно х.
Заметьте, что при положительных р<. оптимальная точка находится внутри об-
ласти допустимых значений исходной задачи, поскольку она больше единицы.
При стремлении р* к нулю точки xk стремятся к х = 1. Исходная и дополненная
целевые функции для некоторых значений р* приведены на рис. 9.2. Если опи-
санная процедура осуществляется численным алгоритмом, начальное значение
обязательно должно находиться внутри области допустимых решений.
Рис. 9.2. Дополненная целевая функция в методе внутренних штрафных функций
9.3. Методы поиска
Для поиска максимума или минимума целевой функции могут использоваться
различные методы. Эти методы могут быть сгруппированы в три больших класса
(рис. 9.3). Методы первого класса основываются на вычислениях, методы вто-
рого класса осуществляют направленный случайный поиск, а методы третьего
класса являются перечислительными [95]. На рис. 9.3 показаны только те мето-
ды поиска, которые эффективны при решении задач оптимизации по несколь-
ким переменным. Мы не стали указывать простейшие методы поиска, такие как
метод Фибоначчи и метод золотого сечения, потому что они применяются глав-
ным образом для одномерных задач.
Рис. 9.3. Классификация методов поиска
Вычислительные алгоритмы могут быть разделены на две группы. Методы пер-
вой группы получают оптимальное решение задачи в явном виде, тогда как мето-
ды второй группы подходят к нему косвенно, через решение системы нелиней-
ных уравнений, которые образуются при приравнивании нулю градиента
целевой функции. Прямые методы ищут решение, выбирая значения из про-
странства поиска и оценивая градиент в каждой новой точке. Эта процедура оп-
ределяет направление поиска. Идея та же, что при подъеме на холм: нужно най-
ти наилучшую точку, поднимаясь по самому крутому склону. Прямые методы
делятся на две категории (рис. 9.3). Методы первой категории используют саму
целевую функцию и ее первые производные
5F
dxf
Здесь F — целевая функция, а вектор переменных оптимизации X составлен из
компонент Xj. В качестве примеров методов из этой категории можно назвать метод
скорейшего спуска и метод сопряженных градиентов. Методы из второй катего-
рии используют матрицу Гессе, составленную из частных вторых производных
d2F
dXjdXj
помимо первых производных и значений самой функции. Ко второй категории
относится, в частности, метод Ньютона. Ниже мы обсудим идеи, на которых ос-
нованы прямые методы, применимые, вообще говоря, только к ограниченному
набору «хороших» задач. Подробные сведения о методах и решении задач опти-
мизации приводятся в учебниках [62, 119, 6, 131].
Прямые методы, основанные на градиентах, во многих случаях оказываются не-
применимы, поскольку они используют сведения о локальном поведении функ-
ции для перемещения в направлении скорейшего спуска. Направление скорей-
шего спуска противоположно локальному направлению градиента, поэтому
алгоритмы этого типа ведут себя плохо, если функция имеет трудносопостави-
мые масштабы по разным переменным или для нее неудачно заданы ограниче-
ния. Двумерная целевая функция, для которой алгоритм скорейшего спуска на-
чинает осциллировать и сходится достаточно медленно, представлена на рис. 9.4.
На рисунке показаны контуры постоянных значений целевой функции в дву-
мерном пространстве переменных оптимизации. Градиент перпендикулярен та-
кому контуру в любой его точке. В результате направление скорейшего спуска
на каждой итерации оказывается почти перпендикулярным направлению на ми-
нимум.
Рис. 9.4. Осциллирующее поведение алгоритма скорейшего спуска
Методы скорейшего спуска не учитывают вторые производные, то есть матрицу
Гессе целевой функции. Методы Ньютона и модифицированные методы Ньюто-
на, напротив, используют матрицу вторых производных в дополнение к градиен-
ту. Модифицированные методы Ньютона обеспечивают лучшую сходимость для
плохо обусловленных задач по сравнению с методами скорейшего спуска, однако
матрица Гессе в общем случае требует достаточно ресурсоемких вычислений.
В результате, хотя сходимость модифицированных методов Ньютона достаточно
высока, на практике они оказываются не слишком эффективны из-за высокой
стоимости каждой итерации. Эта проблема решается при помощи квазиньюто-
новских методов, использующих аппроксимацию матрицы Гессе (на самом деле
обратной к ней матрицы), которая строится по градиентам на каждой итерации.
Квазиньютоновские методы считаются одними из наиболее эффективных для
решения задач на оптимизацию без ограничений. В предыдущем разделе мы по-
казали, что задачи с ограничениями могут быть преобразованы к задачам без ог-
раничений. Поэтому квазиньютоновские методы могут использоваться и для ре-
шения задач с ограничениями.
Описанные выше методы в большинстве своем сходятся к локальному миниму-
му целевой функции. Если целевая функция не является выпуклой, нет никаких
гарантий, что найденный локальный минимум окажется глобальным. Целевая
функция одномерной задачи с несколькими локальными минимумами показана
на рис. 9.5. Методы перечисления (перебора) способны решить такую задачу, по-
скольку они сканируют всю область определения целевой функции и проверяют
каждую точку. Такие методы просты в реализации, но могут потребовать боль-
ших вычислений, а в большинстве задач пространство оптимизации оказывается
слишком большим, чтобы его можно было проверить целиком. Методы направ-
ленного случайного поиска и вероятностные методы проявляют себя лучше ме-
тодов перечисления в эффективности проверки пространства оптимизации. При
этом они просматривают все пространство, а потому с их помощью можно пы-
таться найти глобальный оптимум. Они хорошо распараллеливаются, что позво-
ляет сократить время вычислений несмотря на то, что по объему они превосходят
вычислительные методы. Наиболее популярными вероятностными алгоритмами
являются алгоритм модельной «закалки» и генетический алгоритм. Эти два ме-
тоды мы рассмотрим подробно, потому что они все шире используются для ре-
шения задач оптимизации во многих приложениях.
'IШЛ
X
Рис. 9.5. Пример нескольких локальных минимумов
9.4. Метод модельной закалки
У
Еще в 1953 году Метрополис с коллегами предложили алгоритм эффективного
моделирования эволюции системы к тепловому равновесию. Почти 30 лет по-
требовалось Керкпатрику, Гелатту и Веччи [85] и Церни [31], чтобы понять, что
между медленным охлаждением твердого тела и минимизацией функции стои-
мости комбинаторной задачи на оптимизацию существует глубокая аналогия,
а процесс оптимизации может осуществляться при помощи критерия Метропо-
лиса. Заменив потенциальную энергию системы на стоимость и реализовав алго-
ритм Метрополиса при постепенно понижающейся температуре, Керкпатрик
с коллегами смогли получить алгоритм комбинаторной оптимизации, который
они называли методом модельной закалки (simulated annealing). С тех пор иссле-
дования этого алгоритма и его приложений образовали отдельную область зна-
ния [97].
9.4.1. Комбинаторная оптимизация
В 50-х и 60-х гг. основные прорывы в исследованиях по оптимизации были
связаны с новыми алгоритмами поиска оптимумов функций непрерывно изме-
няющихся переменных. Во многих важных теоретических и практических задачах
приходится выбирать «лучшее» решение из большого набора возможных реше-
ний. Если переменные оптимизации могут принимать только некоторые дис-
кретные значения, задача оптимизации будет заключаться в том, чтобы найти
лучшую комбинацию этих значений. Такие задачи называются задачами комби-
наторной оптимизации (combinatorial optimization problems). Основные результа-
ты в исследованиях по комбинаторной оптимизации были получены в 70-х гг.
Для многих таких задач решение может рассматриваться как размещение набора
дискретных объектов в соответствии с заданными ограничениями. Поэтому
решение называется также конфигурацией (configuration). Набор всех решений
называется пространством решений. Наша задача — разработать эффективные
алгоритмы определения конфигурации, минимизирующей значение функции
стоимости или целевой функции. Примером комбинаторной задачи оптими-
зации является хорошо известная задача коммивояжера (traveling salesman
problem — TSP), которая состоит в определении обладающего минимальной стои-
мостью маршрута коммивояжера, проходящего через каждый город только один
раз и возвращающегося в точку отправления. В этом случае размещаемыми объ-
ектами являются города, а то, что каждый город нужно посетить ровно один раз,
является ограничением [158]. Эту проблему можно интерпретировать в терми-
нах обычной оптимизации. Посещаемые города — это переменные оптимизации,
причем дискретное значение переменной означает номер, под которым данный
город войдет в список посещенных. Упомянутое выше условие может быть вы-
полнено, если на дискретные значения, принимаемые переменными, наложить
некоторое ограничение.
В исследованиях комбинаторной оптимизации были достигнуты значительные
успехи. Однако для многих важных комбинаторных задач, встречающихся на
практике и классифицированных как NP-полные [52], эффективные алгоритмы
поиска оптимальных решений все еше неизвестны. NP-полными называются за-
дачи, решение которых с вычислительными затратами, описывающимися по-
линомиальной функцией характерного масштаба задачи, крайне маловероятно.
Вообще говоря, все известные алгоритмы решения таких задач требуют вычис-
лительных затрат, экспоненциально возрастающих с размером задачи. К тому же
эти алгоритмы находят обычно не истинно оптимальные решения, но лишь
близкие к ним [158].
Один из методов решения NP-полных задач состоит в использовании алгоритма
аппроксимации, позволяющего найти приближенное решение за разумное вре-
мя. Общая стратегия разработки алгоритмов аппроксимации состоит в последо-
вательном улучшении, основанном на методе проб и ошибок. Поиск начинается
с некоторой произвольной конфигурации и продолжается проверкой соседних с
ней конфигураций до тех пор, пока не будет найдена конфигурация с меньшей
стоимостью. Алгоритм завершает работу, если он больше не может найти сосед-
ней конфигурации более низкой стоимости. Эта стратегия кажется разумной, но
она имеет один серьезный недостаток: поиск решения оканчивается в ближай-
шем локальном минимуме (рис. 9.6). Решения, которые кажутся удачными по
сравнению с их близкими соседями, не обязательно являются наилучшими в
глобальном смысле. Стандартное итеративное улучшение позволяет лишь спус-
каться с холма, но не подниматься обратно, и потому не гарантирует хорошего
результата [158, 134].
Рис. 9.6. Пространство конфигураций с множеством локальных минимумов
Метод модельной закалки основан на аналогичной стратегии, но существенно
отличается от метода итеративного улучшения тем, что разрешает ограниченный
подъем «вверх» по поверхности функции стоимости. Благодаря этому оказыва-
ется возможным «выбраться» из локального минимума и спуститься в другой,
более глубокий [134].
9.4.2. Алгоритм
Статистическая механика изучает поведение сложных систем, состоящих из
большого числа взаимодействующих атомов, находящихся в тепловом равнове-
сии при конечных температурах. Исследователи обнаружили, что вероятность
обнаружить систему в некотором состоянии 5 равна , где E(S) — энергия
данного состояния, a kb — постоянная Больцмана. Таким образом, наиболее ве-
роятными в тепловом равновесии при любой температуре оказываются состоя-
ния атомов с минимальной энергией [158].
Аналогия между задачей комбинаторной оптимизации и определением основно-
го состояния физической системы со множеством взаимодействующих частиц
впервые была обнаружена Керкпатриком, Гелаттом и Веччи в 1983 г. [85] и, не-
зависимо от них, Церни [31]. Аналогия хорошо иллюстрируется табл. 9.1. Со-
стояния системы соответствуют конфигурациям задачи комбинаторной оптими-
зации. Основные состояния системы соответствуют оптимальным
конфигурациям, то есть таким конфигурациям, которые минимизируют функ-
цию стоимости. Наконец, задача определения оптимальной конфигурации соот-
ветствует задаче поиска основного состояния системы при низкой температуре.
Таблица 9.1. Аналогия между физической системой и задачей оптимизации
Физические системы Задачи оптимизации
Состояние Конфигурация
Энергия Функция стоимости
Основное состояние Оптимальное решение
Быстрая закалка Итеративное улучшение
Аккуратный отжиг Модельная закалка
В 1953 г. Метрополис [ИЗ] предложил процедуру вычислений, позволяющую
моделировать равновесное состояние системы многих тел при конечной темпе-
ратуре. Алгоритм Метрополиса показан в листинге 9.1. На каждом шаге случай-
ным образом выбирается небольшое возмущение текущей конфигурации, после
чего вычисляется изменение энергии системы А. Новая конфигурация принима-
ется с вероятностью 1, если А <0, и с вероятностью e~^/khT при А > 0. Для этого
выбрасывается случайное число от 0 до 1. Если оно оказывается меньшим е й/ ьТ,
новая конфигурация принимается. Это обеспечивает заданную вероятность при-
нятия.
Листинг 9.1. Алгоритм Метрополиса
begin
Выбрать случайную исходную конфигурацию S
repeat
S' произвольно выбранная конфигурация, соседняя с S:
Д := E(S') - E(S):
Prob : = mlnCl,е A/kT);
if random(O.l) £ Prob then S := S':
Until false:
end:
Описанную процедуру легко приспособить к решению задач комбинаторной оп-
тимизации. Для этого состояния физической системы заменяются конфигура-
циями задачи на оптимизацию, а энергия состояния заменяется функцией стои-
мости или целевой функцией для соответствующей конфигурации. После этого
процедура может использоваться для моделирования процесса оптимизации
комбинаторной задачи с заданной функцией стоимости.
Керкпатрик реализовал данный подход, рассматривая систему при постепенном
понижении «температуры». При каждой конкретной температуре система вы-
держивается до тех пор, пока она не достигнет теплового равновесия. Это обес-
печивается алгоритмом Метрополиса. Общий алгоритм метода модельной закал-
ки приведен в листинге 9.2. Обратите внимание, что в методе модельной закалки
постоянная Больцмана включена в температуру, (ак что температурой мы назы-
ваем их произведение. Температура в данном случае является только управляю-
щим параметром процедуры оптимизации.
Листинг 9.2. Алгоритм модельной закалки
begin
S начальное решение SO;
Т начальная температура ТО:
while (критерий завершения не выполнен) do
begin
while (равновесие не достигнуто) do
begin
S' произвольно выбранная конфигурация, соседняя с S;
Д E(S') - E(S):
Prob mind.e Д/kT);
if random(O.l) < Prob then S S';
end;
Изменить T:
end:
Вывести лучшее решение:
end:
На интуитивном уровне алгоритм модельной закалки можно воспринимать как
усовершенствованную версию алгоритма итеративного улучшения. Модельная
закалка добавляет элемент случайности в алгоритм итеративного улучшения и
разрешает изменения, ухудшающие текущее состояние системы, но дающие воз-
можность попасть в какой-нибудь другой минимум, более глубокий. Эти измене-
ния управляются температурой и становятся все менее вероятными по мере при-
ближения к окончанию процесса, потому что значение Т снижается (при
высоких температурах вероятность ухудшающего скачка велика).
Теоретический анализ показывает, что алгоритм модельной закалки сходится
к глобально оптимальному решению с вероятностью 1 при условии, что выпол-
няются некоторые ограничения на количество итераций при каждом значении
температуры и на изменение этой температуры от шага к шагу. Однако общего
принципа, по которому можно было бы ставить эти ограничения для конкрет-
ных задач, пока не существует. Поэтому большинство современных приложений
метода модельной закалки используют простой и эффективный подход Керкпат-
рика и других [85] в различных разновидностях.
Метод модельной закалки очень привлекателен, поскольку дает решения высо-
кого качества и в общем случае прост в реализации даже для тех, кто не имеет
хорошего представления о задаче. Однако модельная закалка является скорее
общим методом оптимизации, нежели конкретным, полностью определенным
алгоритмом. Применение метода к конкретной задаче требует аккуратности:
1. Нужно сформулировать задачу, точно описав различные конфигурации.
2. Требуется систематически порождать решения, соседние с текущим.
3. Нужно выбрать подходящую функцию стоимости.
4. Наконец, важно правильно определить график «закалки», то есть начальную
температуру, закон ее изменения, продолжительность выдержки при каждом
значении температуры и условие завершения работы алгоритма.
Г
9.4.3. Применения алгоритма модельной закалки
Недавние исследования продемонстрировали эффективность алгоритма модель-
ной закалки во многих задачах оптимизации, к числу которых относятся:
□ размещение и соединение компонентов СБИС;
□ разработка компоновочных планов;
□ маршрутизация и оптимизация маршрутов;
□ проектирование размещения;
□ двумерное уплотнение (компоновка);
□ разработка цифровых фильтров;
□ распознавание образов;
□ обработка изображений.
Мы рассмотрим два примера решения задач оптимизации при помощи алгорит-
ма модельной закалки.
Задача коммивояжера
Задача коммивояжера состоит в том, чтобы найти маршрут, проходящий ровно
один раз через каждый город из предложенного набора и возвращающийся в
конце концов в отправную точку. При этом стоимость маршрута должна быть
минимальной. Функция стоимости в общем случае связана с суммарной длиной
маршрута коммивояжера.
Поскольку метод модельной закалки требует порождения и оценки множества
конфигураций, необходимо наличие эффективных методов порождения сосед-
них конфигураций и их проверки. Модификация имеющегося маршрута (списка
городов в порядке их посещения) обычно осуществляется следующим образом:
□ выбирается произвольная часть текущего маршрута и внутри нее порядок
объезда городов меняется на противоположный;
□ либо выбранная часть перемещается в случайное место текущего маршрута.
Четыре конфигурации, полученные в процессе решения задачи коммивояжера
со 100 городами методом модельной закалки, показаны на рис. 9.7. Города распо-
ложены в вершинах правильной решетки. Начальная конфигурация на рис. 9.7, а
задается случайной последовательностью городов, далекой от оптимальной.
Конфигурация выглядит вполне хаотично, а стоимость объезда оказывается
велика. В процессе оптимизации получаются конфигурации (рис. 9.7, б, в), кото-
рые ближе к минимуму стоимости. Они становятся менее хаотичными и стои-
мость их уменьшается. Наконец, на рис. 9.7, г показана конфигурация с мини-
мальной стоимостью. Видно, что последовательность объезда городов в этой
конфигурации строго упорядочена [97]. Еще один пример задачи коммивояжера,
успешно решенной Керкпатриком и соавторами при помощи модельной закал-
ки, показан на рис. 9.8.
Рис. 9.7. Решение задачи коммивояжера для 100 городов
Рис. 9.8. Решение задачи коммивояжера для 400 городов, полученное
с помощью метода модельной закалки
Оптимальная компоновка
Задача оптимальной компоновки (optimal nesting) состоит в минимизации ис-
пользования исходных листов (заготовок) при производстве деталей различной
формы. Типичные ограничения задачи состоят в том, что формы не должны пе-
рекрываться, но при этом должны целиком располагаться внутри границ листа.
Если на листе имеются дефекты, эти дефекты должны исключаться из полезной
площади в процессе компоновки. Таким образом, функция стоимости может
быть записана в следующем виде:
F(5) = отходы + w х перекрытие.
Здесь S — текущая конфигурация компоновки, отходы — количество отходов
с одного листа (или листов), то есть разность площади исходного листа и площа-
ди уместившихся на нем деталей. Перекрытие — суммарная площадь перекры-
вающихся частей деталей, a w — весовой коэффициент. В процессе оптимизации
перекрытия не запрещаются, но большой весовой коэффициент исключает их в
конечной конфигурации. Заметьте, что здесь мы, по сути, используем внутрен-
нюю штрафную функцию из раздела 9.2.
Конфигурация S', соседняя с текущей конфигурацией S, может быть построена
небольшим возмущением текущей конфигурации. Например, можно случайным
образом выбрать одну деталь из всех размещенных на листе и немного изменить ее
положение и ориентацию. Изменение конфигурации с 5 на 5' называется пере-
мещением и выполняется в соответствии с алгоритмом Метрополиса (листинг 9.2).
Результаты размещения деталей на стальном листе для последовательного их из-
готовления демонстрирует рис. 9.9. Примеры размещения 36 выкроек на отрезе
постоянной ширины и на отрезе неправильной формы с внутренним дефектом
приведены на рис. 9.10 и рис. 9.11. Дефектная область показана на рис. 9.11 чер-
ным цветом, в данном случае это тонкая вертикальная полоска. Дефекты такого
типа часто возникают при отрезании заготовок для пошива одежды из кожи.
Доля отходов = 17,5%
Доля отходов = 28,4%
Рис. 9.9. Оптимальное размещение деталей для последовательной вырубки
Рис. 9.10. Размещение 36 выкроек на прямоугольном отрезе
Рис. 9.11. Размещение 36 выкроек на отрезе неправильной формы с внутренним дефектом
9.5. Генетические алгоритмы
Генетическими алгоритмами {genetic algorithms) называется группа адаптивных
методов, которые могут использоваться для решения задач поиска и оптимиза-
ции. Они происходят от тех же основ, что и естественная эволюция и генетика.
Популяции живых существ развиваются в течение многих поколений в соответ-
ствии с принципами естественного отбора и «выживания наиболее приспособ-
ленных». Имитируя этот процесс, генетические алгоритмы способны решать ре-
альные задачи, при условии, что те будут правильно закодированы [13].
Сила генетических алгоритмов в их устойчивости и в способности решать зада-
чи самых разных типов, в том числе и трудноразрешимые другими методами.
Хотя генетические алгоритмы не обязательно находят глобально-оптимальное
решение, они обычно «достаточно быстро» находят «достаточно хорошие» реше-
ния. Разумеется, специализированные методы, ориентированные на конкретные
задачи, по сравнению с генетическими алгоритмами почти наверняка дадут луч-
шую скорость и точность конечного результата. Превосходство генетических
алгоритмов проявляется в таких областях, где специализированных методов не
существует. Однако даже имеющиеся методы можно в некоторых случаях усо-
вершенствовать, «скрестив» их с генетическими алгоритмами [56].
Основные принципы генетических алгоритмов были заложены Холландом [71],
им посвящено достаточно много трудов. Эти алгоритмы имитируют то, чем обу-
словливается эволюция в живых популяциях. В природе выживают те, кто луч-
ше приспособлен к конкуренции за ограниченные ресурсы, поэтому адаптация к
изменяющейся конкурентной среде принципиально важна для выживания инди-
видуумов любого вида. Уникальные особенности индивидуума определяют его
жизнеспособность, но сами они, в свою очередь, определяются генами индиви-
дуума. Каждой особенности сопоставляется элемент наследственной информа-
ции — ген. Наборы генов, определяющих особенности организма, объединяются
в хромосомы. Процесс воспроизводства создает разнообразие в генофонде, а на-
чинается оно с рекомбинации хромосом родительских особей в момент объеди-
нения их половых клеток. Из исходных комбинаций генов создаются новые,
в результате чего получается новый генотип. Происходит обмен генами между
хромосомами, что дает хромосомы с новыми свойствами. Этот процесс называется
кроссовером (crossover). Таким образом осуществляется поиск наиболее правиль-
ной комбинации генов, по которой был бы построен более совершенный
организм. Отбор и кроссовер обеспечивают постоянную эволюцию генотипа и
приводят к рождению организмов, лучше приспособленных к выживанию.
В начале 70-х гг. Холланд предложил обозначать термином «генетические алгорит-
мы» программы, имитирующие природный эволюционный процесс. Генетические
алгоритмы работают с популяцией потенциальных решений задачи оптимизации
(или поиска). Решения представляются в закодированном виде, подобно тому
как в генетическом материале кодируется информация об особенностях индиви-
дуума. В генетических алгоритмах Холланда решения кодировались в виде по-
следовательностей битов двоичного алфавита. Как и в природе, механизмы отбора
обеспечивали выживание наиболее совершенных решений. Каждому решению
сопоставляется определенное значение «приспособленности», отражающее каче-
ство данного решения по сравнению с другими решениями той же популяции.
Чем больше значение приспособленности, тем больше шансы на выживание и
воспроизводство, и тем больший вклад вносит данный индивидуум в последую-
щее поколение. Рекомбинация генетического материала в генетических алгорит-
мах имитируется механизмом кроссовера, осуществляющим обмен участками
строк. Дополнительная операция, называемая мутацией, вызывает спорадиче-
ские случайные изменения битов строк. Мутация тоже существует в природе,
где она обеспечивает восстановление утраченного генетического материала [56].
9.5.1. Основные принципы
В литературе генетический алгоритм Холланда обычно называется простым ге-
нетическим алгоритмом (simple genetic algorithm — SGA). В основе SGA лежит
популяция двоичных строк. Каждая такая строка, состоящая из нулей и единиц,
кодирует решение задачи оптимизации. По сути, она эквивалентна конфигура-
ции в методе модельной закалки. Алгоритм начинает работу с определенного коли-
чества строк, которые называются популяцией первого поколения. При помощи
генетических операторов (мутации и кроссовера) алгоритм создает следующее
поколение из строк текущей популяции. Преимущество в воспроизводстве име-
ют более совершенные строки, так что в следующем поколении преобладает их
«потомство». Цикл воспроизводства повторяется до тех пор, пока не выполнится
заданный критерий завершения. Общую схему генетического алгоритма демон-
стрирует рис. 9.12. Подробное описание важных составляющих этой схемы дает-
ся в последующих разделах.
Механизм кодирования
Структура генетического алгоритма во многом определяется механизмом коди-
рования, используемым для представления переменных задачи оптимизации.
Эти переменные (называемые генами) объединяются вместе и образуют строку
значений (называемую хромосомой). Например, если мы должны найти макси-
мум функции трех переменных F(x, у, г), мы можем представить каждую пере-
менную 10-разрядным двоичным числом (при условии правильного выбора мас-
штаба). При этом хромосома будет содержать три гена, а ее длина будет равна 30
двоичным разрядам (битам).
5 4.85 13
♦ ♦ ♦
Параметр #1 Параметр #2 Параметр #3
X ♦ Z
1011 01111001011 01101
♦
101011110010101101
Рис. 9.12. Процесс кодирования переменных в хромосоме
В терминах генетики набор переменных, описываемых хромосомами, называется
генотипом. Генотип содержит информацию, по которой строится организм, обла-
дающий определенным набором свойств (фенотипом). Те же термины приме-
няются и в теории генетических алгоритмов. Например, в задаче конструирования
моста набор переменных, описывающих конкретный проект, является генотипом,
а готовая конструкция — фенотипом. Жизнеспособность индивидуума определяет-
ся характеристиками фенотипа, которые могут быть определены по генотипу (вы-
числены по имеющимся хромосомам при помощи функции приспособленности).
Переменные оптимизации представляются строкой или хромосомой, несмотря
на то что они могут принимать непрерывный ряд вещественных значений. Ши-
роко используется метод кодирования через целочисленное представление. Сна-
чала к переменным применяется линейное отображение на подмножество целых
чисел, после чего целое число кодируется фиксированным числом битов. Пред-
положим, например, что непрерывная переменная оптимизации определена на
отрезке [-1,28; 1,28]. Мы можем закодировать такую переменную с точностью до
двух знаков после запятой, умножив ее вещественное значение на 100 и отбро-
сив дробную часть результата. Таким образом, значение переменной будет ото-
бражено на целые числа от -128 до +128. Двоичное представление целого числа
вычислить очень легко (листинг 9.3) [33].
Листинг 9.3. Общий вид генетического алгоритма
BEGIN /* Генетический алгоритм */
Создать начальную популяцию;
Рассчитать приспособленность каждого индивидуума:
WHILE NOT расчет закончен 00
BEGIN /* порождение нового поколения */
FOR размер популяции/2 DD
BEGIN /* Цикл воспроизводства */
Выбрать двух индивидуумов из предыдущего поколения для размножения;
/* Преимущество у более приспособленных */
Рекомбинировать хромосомы индивидуумов:
Рассчитать приспособленность потомка:
Добавить потомка в новую популяцию;
END
IF популяция конвергировала THEN
расчет закончен :- TRUE.
END
END
Функция приспособленности
Для оценки приспособленности строк должна использоваться целевая (оптими-
зируемая) функция. Однако диапазон значений этой функции зависит от кон-
кретной задачи. Для обеспечения однородности алгоритма по отношению к раз-
личным задачам мы выбираем функцию пригодности, нормирующую целевую
функцию на удобный отрезок (0, 1]. Нормированное значение целевой функции
считается коэффициентом пригодности строки, который используется механиз-
мом отбора для сравнения строк, составляющих популяцию [33]. Целевая функ-
ция нормируется таким образом, что максимальная пригодность соответствует
оптимальной ситуации.
Механизм отбора
Процесс отбора является имитацией естественного отбора, имеющего место в при-
роде. Более приспособленные решения выживают, тогда как худшие исчезают.
В генетических алгоритмах более приспособленная строка получает большее ко-
личество потомков, в точности подобных ей самой, и потому получает больше
шансов на выживание в следующем поколении. В схеме пропорционального от-
бора строка, значение приспособленности которой совпадает со средним по по-
пуляции, получает одного потомка и участвует в процессе воспроизводства сле-
дующего поколения. Строка с большим значением приспособленности получает
больше одного потомка, тогда как строка с меньшим значением приспособлен-
ности получает меньше одного потомка. Поэтому более совершенные строки бо-
лее активно участвуют в воспроизводстве, тогда как вклад менее совершенных
оказывается меньшим. Рассмотрим, например, популяцию из четырех строк
(табл. 9.2).
Таблица 9.2. Параметры популяции
Строка Приспособленность (/J) Вероятность (j\/f = /;/290)
01101 169 0,58
11000 576 1,99
01000 64 0,22
10011 351 1,21
Итого 1160(7 = 1160/ 4 = 290) 4,0
В нашем примере вторая строка получит одного потомка, а вероятность полу-
чить второго будет равна 0,99. Четвертая строка также получит одного потомка,
а с вероятностью 0,22 — и второго. Итак, вторая и четвертая строки точно полу-
чают по одному потомку. Остается выбрать, какая именно получит двух остав-
шихся потомков. Мы выбираем первую строку (0,58) и вторую строку (0,99), по-
тому что вероятности у них больше, чем у третьей и четвертой строк (0,22 и 0,21
соответственно). Заметьте, что для второй и четвертой строк вероятности были
уменьшены на 1, потому что эти строки уже получили по одному потомку. Та-
ким путем создается новая популяция, в которой среднее значение приспособ-
ленности оказывается выше.
Воспроизводство
- На этапе воспроизводства из популяции выбираются индивидуумы, генетический
материал которых рекомбинируется, в результате чего получаются потомки, со-
ставляющие следующее поколение. Родительские особи выбираются из популя-
ции случайным образом. Поскольку более приспособленные особи имеют шанс
получить несколько потомков, у них больше шансов и на то, чтобы быть выбран-
ными для воспроизводства несколько раз, тогда как менее приспособленные мо-
гут не участвовать в воспроизводстве ни одного раза.
Хромосомы двух выбранных родительских особей рекомбинируются. Обычно
это осуществляется механизмами кроссовера и мутации. При кроссовере берут-
ся два индивидуума, хромосомы которых разрезаются на части в случайных мес-
тах, в результате чего получаются два «головных» сегмента и два «хвостовых»
сегмента. Затем «хвостовые» сегменты меняются местами, в результате чего по-
лучается две хромосомы нормальной длины (рис. 9.13). Это называется кроссо-
вером в одной точке {single-point crossover) [33]. В каждой из двух хромосом ока-
зываются гены обоих родителей.
Родитель! 11Ш111111ШШШ1
f 000000000000000000000
Поколение t
'“OJOJO
100111011111100111100
oooooooooooooooomn
Родитель 2>
111111111111111111111
000000000000000030000
Родитель N -1 ’
111111111111111100000
000000000000000011111
Родитель N
Рис. 9.13. Кроссовер
Кроссовер не всегда применяется ко всем парам размножающихся индиви-
дуумов. Пары выбираются случайно, причем вероятность кроссовера полагается
равной какому-либо числу от 0,6 до 1,0. Все случайные операции осуществля-
ются при помощи генератора случайных чисел. Кроссовер разрешается, если
выпавшее случайное число от 0 до 1 оказывается меньшим, чем выбранная веро-
ятность (имеющая значение от 0,6 до 1). Если кроссовера не происходит, по-
томство в точности копирует родителей. Это дает каждому индивидууму шанс
передать свои гены в последующие поколения без нарушений, вызванных крос-
совером.
Мутация применяется индивидуально к каждому потомку после кроссовера.
Оператор мутации случайным образом изменяет каждый ген с малой вероятно-
стью (обычно 0,001), причем 0 заменяется на 1 и наоборот. Реализуется это при
помощи генератора случайных чисел, так же как и при кроссовере. 9-й и 17-й
гены мутированной хромосомы показаны на рис. 9.14. В генетических алгорит-
мах мутация рассматривается как вторичный оператор, предназначенный для
возвращения утраченного генетического материала. Представьте, например, что
все строки популяции имеют в какой-то позиции значение 0, тогда как опти-
мальное решение должно в этой же позиции иметь значение 1. Только мутация,
но не кроссовер, может восстановить эту единицу.
Конвергенция
При правильной реализации генетического алгоритма популяция развивается
от поколения к поколению таким образом, что приспособленность лучшего и
среднего индивидуума в каждой популяции стремится к глобальному оптимуму.
Конвергенцией называется развитие в направлении возрастания однородности.
Считается, что по конкретному гену достигнута конвергенция, если он имеет
одно и то же значение у 95% индивидуумов популяции [56].
9.5.2. Реализация
Генетический алгоритм может использоваться для поиска оптимальных условий
литья детали под давлением. Рассмотрим изготовление верхней крышки сти-
ральной машины (рис. 9.15). Нам нужно найти оптимальную температуру фор-
мы, температуру расплава и время заполнения, которые дадут нам максималь-
ный индекс производительности, характеризующий качество детали. Для
простоты мы предположим, что индекс получается суммированием условий ли-
тья. Верхняя и нижняя границы областей определения переменных оптимиза-
ции даны в табл. 9.3.
Рис. 9.15. Тестовая модель
Положение отверстия
Таблица 9.3. Границы изменения параметров литья
Минимум Максимум Дискретизация
Температура расплава 220 260 32
Температура формы 50 70 32
Время заполнения 1 4 16
Теперь нам предстоит определить процедуру кодирования значений переменных
оптимизации. Как следует из табл. 9.3, мы разобьем весь диапазон изменения
температуры расплава на 32 отрезка, благодаря чему эта температура будет ко-
дироваться 5-разрядным числом. Температура формы и время заполнения будут
кодироваться 5- и 4-разрядиыми числами соответственно. Отсюда следует, что
хромосома в нашем примере будет представлена двоичной строкой из 14 разрядов.
Результаты оптимизации и график процесса конвергенции показаны на рис. 9.16.
Оптимальные значения параметров литья дает табл. 9.4. Обратите внимание, что
каждый индивидуум постепенно эволюционирует к максимально приспособлен-
ному. Мы рассматривали десять индивидуумов в каждом поколении. Использо-
валась коммерческая реализация генетического алгоритма GENESIS [58]. Пара-
метры запуска программы GENESIS приведены в табл. 9.5.
Таблица 9.4. Оптимальные параметры литья
- Температура расплава Температура формы Время заполнения Целевая функция
Результат 220,0 70,0 2,6 45,00
Таблица 9.5. Параметры запуска GENESIS
Размер популяции Вероятность кроссовера Вероятность мутации гена
10 0,6 0,001
Конвергенция генетического алгоритма
Рис. 9.16. Конвергенция индивидуумов
9.6. Структурная оптимизация
В этом разделе мы рассматриваем проблему применения технологий оптимиза-
ции к целям проектирования. Структурной оптимизацией (structural optimization)
называется автоматический синтез механических компонентов на основании их
структурных свойств. Другими словами, структурная оптимизация позволяет
автоматически получить такую конструкцию компонента, которая будет опти-
мальной со структурной точки зрения.
Структурная оптимизация подразумевает оптимизацию целевой функции
(обычно жесткости, возможностей производства, веса или стоимости) при вы-
полнении структурных и иных ограничений на конструкцию (расположение то-
чек опоры, ограничения на размер и вес, максимально допустимые напряжения,
максимально допустимый вес, минимальный теплоотвод и т. п.). Структурная
оптимизация требует (рис. 9.17) средств геометрического моделирования для
описания формы детали, средств структурного анализа для решения задачи,
а также алгоритма оптимизации для поиска оптимального решения.
Рис. 9.17. Составляющие структурной оптимизации [95]
Методы структурной оптимизации можно классифицировать по типам перемен-
ных оптимизации, описывающих геометрию конструкции. Целевая функция
и конструктивные ограничения должны записываться в виде функций этих
переменных. В зависимости от того, какими свойствами компонента управляют
конструктивные параметры в конкретной задаче оптимизации, она называется
оптимизацией размеров, формы или топологии. Таким образом, средства струк-
турной оптимизации последовательно изменяют размер, форму или топологию
конструкции до тех пор, пока она не достигнет оптимума (с учетом заданных
ограничений).
9.6.1. Оптимизация размеров
Оптимизация размеров (sizing optimization) — простейший из трех методов струк-
турной оптимизации, состоящий в изменении размеров конструкции при сохра-
нении ее формы и топологии. Следовательно, оптимизация состоит в определе-
нии значений конструктивных параметров, дающих оптимальное структурное
поведение конструкции. В первых реализациях данного метода использовались
простейшие методы параметризации геометрии детали и оптимизировались
только простейшие структуры, такие как фермы, рамы и пластины [86, 119, 61].
Структурная оптимизация ферм и рам подразумевает определение оптимально-
го поперечного сечения соответствующих элементов. Переменными оптимиза-
ции являются площади поперечного сечения элементов фермы или рамы. Для
простой фермы часто можно вывести аналитическое выражение, связывающее
переменные оптимизации со структурными свойствами. Большие фермы и рамы
анализируются методом конечных элементов. Согласно этому методу, речь о ко-
тором шла в главе 8, сложная структура делится на простые элементы, а резуль-
таты; полученные для каждого из них, объединяются вместе, давая результат для
структуры в целом.
Фермы и рамы можно оптимизировать, изменяя их конфигурацию. Оптималь-
ная конфигурация фермы может быть получена решением задачи оптимизации
для координат узловых точек (конечных точек составляющих фермы). В этом
случае переменными оптимизации становятся координаты узлов фермы. Топо-
логия (то есть связность) фермы фиксирована, поэтому нет необходимости из-
менять аналитическую модель при изменении переменных.
Еще один вариант проектирования состоит в выборе материалов с определенны-
ми свойствами. Выбор оптимального материала для каждого элемента из набора
доступных материалов — типичная комбинаторная задача оптимизации. Обычно
рассматривается комбинация всех трех типов размерных переменных. Пример
39-балочной фермы, конфигурация которой оптимизировалась вместе с попе-
речными сечениями балок [119], демонстрирует рис. 9.18. Исходная конфигу-
рация показана на рис. 9.18, а, а конечная конфигурация и поперечные сече-
ния — на рис. 9.18, б. Нагрузка прикладывается к узлам 13, 14 и 15. Значения на
рис. 9.18, б представляют собой оптимизированные площади поперечных сече-
ний соответствующих элементов.
В плоских структурах в качестве переменной оптимизации выбирается толщи-
на пластины. Такой выбор переменной делает эту задачу задачей оптимизации
размеров, потому что форма и топология пластины остаются постоянными. Ме-
няться может только толщина, которая считается постоянной в пределах одного
элемента, но может варьировать при переходе от одного к другому. Сетка,
построенная в предположении плавности изменения толщины, может оказаться
недостаточно точной
Рис. 9.18. Оптимизация конструкции фермы
9.6.2. Оптимизация формы
Оптимизация формы {shape optimization) подразумевает сохранение неизменной
топологии при изменении формы. Переменные оптимизации в этом случае зада-
ют форму конструкции. Заметьте, что побочным эффектом оптимизации формы
обычно является оптимизация размеров. Вообще говоря, оптимизация размеров
может считаться всего лишь частным случаем оптимизации формы.
Переменные оптимизации могут быть параметрами, определяющими какие-либо
особенности формы или ее важнейшие размеры. Например, переменной оптими-
зации может быть радиус круглого отверстия или длина стороны квадратного
отверстия в детали. Очевидно, что изменение этих параметров может значитель-
но изменить геометрию. Чаще всего при этом требуется перестроение сетки ко-
нечных элементов. Примеры оптимизации формы при помощи параметрических
переменных рассматриваются в работе [22]. При оптимизации формы перемен-
ными могут быть и параметры границ объемного тела. В частности, в качестве
переменных можно взять координаты узлов, расположенных на границе тела.
В этом случае основное требование к модели состоит в том, что она не должна
ухудшаться в процессе оптимизации. Это может потребовать регенерации сетки
конечных элементов на каждой итерации. Поэтому однозначное соответствие
между сеткой элементов и переменными оптимизации нежелательно. Исходная
форма реактивной штанги приведена на рис. 9.19, а. Координаты узлов на внеш-
ней границе считаются переменными оптимизации. Оптимизированная форма
показана на рис. 9.19, б. Заметьте, что вместе с формой изменилась и сетка ко-
нечных элементов [163].
a
б
Рис. 9.19. Оптимизация формы реактивной штанги
При оптимизации формы методом варьирования границ часто используется кон-
цепция элемента конструкции [73,25]. Элементами конструкции (design elements)
называются области, на которые делится структура. Границы каждой области за-
даются набором переменных оптимизации. Каждый элемент конструкции может
состоять из множества конечных элементов. Структуру, состоящую из трех эле-
ментов конструкции, границы которых задаются переменными оптимизации, де-
монстрирует рис. 9.20. Существует множество способов параметризации границ.
Бриабант и Флюэри [25] предложили представлять границы при помощи куби-
ческих сплайнов. По сути, они аппроксимировали исходную форму границ эле-
ментов конструкции кривыми Безье и В-сплайнами. Задающие точки кривых
и поверхностей служили переменными задачи структурной оптимизации. Пара-
метризованный В-сплайном элемент конструкции показан на рис. 9.21.
Рис. 9.20. Элемент конструкции
Рис. 9.21. Элемент конструкции, аппроксимированный В-сплайном
О Граничные задающие точки
• Внутренние задающие точки
□ Закрепленные задающие точки
9.6.3. Оптимизация топологии
Глобальная оптимизация обязательно включает и оптимизацию топологии, то есть
такие изменения, которые включают создание новых границ и удаление сущест-
вующих. Переменные топологической оптимизации {topology optimization) долж-
ны определять конкретную топологию детали. Оптимизация, следовательно,
заключается в определении значений переменных, соответствующих такой топо-
логии детали, которая делает поведение данной детали оптимальным по отноше-
нию к структуре.
Первые попытки сконструировать топологически оптимальные детали относи-
лись к проектированию фермоподобных (скелетообразных) структур. В этой об-
ласти были проведены достаточно подробные исследования. Обзор литературы,
посвященной оптимизации скелетообразных структур, дается Топпингом [154].
Наиболее широко используется подход базовой структуры {ground structure
approach), согласно которому пространство конструкции покрывается решеткой
узлов. В этих узлах прикладываются нагрузки и задаются ограничения. Базовая
структура получается путем соединения каждого узла со всеми остальными.
В фермоподобных структурах соединения называются элементами {member).
Цростой алгоритм поиска позволяет оптимизировать базовую структуру для по-
лучения минимального веса при условии, что нагрузка не превысит предел пла-
стичности. В процессе оптимизации лишние элементы базовой структуры удаля-
ются автоматически, когда площадь их поперечного сечения оказывается равной
нулю. Получившаяся в результате структура имеет оптимальную топологию. При
таком подходе оптимальная структура не обязательно будет единственной, хотя
оптимальное значение веса структуры, конечно, единственно. Если необходимо
учитывать ограничения на напряжения или смещения, приходится использовать
методы нелинейного программирования. Автоматическое удаление лишних эле-
ментов оказывается существенно затрудненным, так как напряжения в элемен-
тах резко возрастают при стремлении площади их поперечного сечения к нулю.
Другая проблема состоит в вырождении матрицы жесткости при удалении неко-
торых элементов. Впрочем, существует множество методов преодоления описан-
ных трудностей [ 154, 62].
На ранней стадии в изучении задач оптимизации топологии применялся струк-
турный анализ методом конечных элементов, после которого выполнялось уда-
ление элементов с достаточно низкими напряжениями. Этот подход оказался не-
удачным, потому что оказалось, что получающаяся в результате форма зависит
от начальной плотности сетки конечных элементов. Странг связал это поведение
с невыпуклой природой поставленной задачи. Кохн и Странг [89] отметили, что
исходная постановка задачи неудачна, и предложили ослабленную вариацион-
ную задачу, допускающую наличие композитов (пористых материалов), а не
только нулей и единиц (отверстий и материалов).
Бендсоу и Кикучи [17] предположили, что материал является пористым, и ре-
шили задачу оптимизации относительно степени пористости. Область конструк-
ции определялась ими как пространство, внутри которого должна поместиться
деталь. Область делится на сетку ячеек, к которым прикладываются нагрузки. За
целевую функцию в данном случае принимается средняя податливость структу-
ры, а ограничением является максимальный вес. Структурное поведение анали-
зируется методом конечных элементов. За исходную форму детали принимается
вся область конструкции. Моделируемый материал считается пористым, для чего
ему сопоставляется определенная микроструктура. Ячейка такой микрострукту-
ры показана на рис. 9.22, а. Предполагается, что материал состоит из бесконеч-
ного количества таких ячеек, бесконечно малых в этом пределе. Сузуки и Кику-
чи [147] предположили, что полость в ячейке имеет прямоугольную форму, при-
чем длины сторон прямоугольника равны а и Ь. Размеры полости внутри ячейки
определяют общую пористость материала или долю незаполненного объема в
нем. Каждый конечный элемент имеет фиксированное значение пористости, по-
этому для каждого элемента задаются только два числа а, и Ь„ где i — номер эле-
мента. Размеры полостей вместе с ориентацией ячеек 0, рассматриваются как пе-
ременные оптимизации. Определение угла ориентации ячеек иллюстрирует
рис. 9.22, б. Изменение размеров полости и угла ее ориентации влечет за собой
изменение свойств материала.
Рис. 9.22. Размеры и ориентация единичной ячейки
<
Для решения задачи оптимального распределения пористости использовался
алгоритм критерия оптимальности {optimality criteria algorithm) [17, 147]. Свой-
ства материала очевидным образом зависят от микроструктуры, а значит, и от
размера полости в каждой ячейке. Эти свойства являются непрерывными функ-
циями размеров полостей, в отличие от нулевых или ненулевых констант. Для
заданной степени пористости или заданных размеров полостей свойства мате-
риала можно определить методом усреднения {homogenization method). Типичное
соотношение между коэффициентом пористости и размером полости демонст-
рирует рис. 9.23. Для квадратной полости плотность единичной ячейки опреде-
лятся выражением (1 - а2). Для определения коэффициента при каждом зна-
чении размера полости необходимо выполнение анализа методом конечных
элементов по всей единичной ячейке. На практике для получения соотношения,
показанного на рис. 9.23, коэффициенты вычисляются для конечного коли-
чества значений размеров а, после чего функциональная связь определяется пу-
тем интерполяции полученных значений полиномами Лежандра. Таким образом,
определение соотношения требует многократного выполнения анализа методом
конечных элементов внутри единичной ячейки. Полученное соотношение будет
иным, если мы рассмотрим микроструктуру с другими геометрическими свойст-
вами. В процессе оптимизации свойства материала внутри каждого элемента
определяются описанным способом по соответствующим значениям а„ fe, и О,.
Алгоритм оптимизации приближается к оптимальному решению, увеличивая
размеры полостей в тех элементах, где материал нагружен недостаточно сильно,
и уменьшая размеры полостей там, где нагрузка слишком высока. Ориентация
полостей в единичных ячейках выбирается таким образом, чтобы жесткость ,
материала была максимальной. Процедура оптимизации микроструктуры пря-
моугольных полостей в консольной балке показана на рис. 9.24. Заметьте, что
если оптимизация начинается с более мелкой сетки, граница получается более
плавной.
Искусственный (43)
Приямоугальное отверстие
Сетке 20x20
Ранг 2
Сетка 20x20
Сетка 40x40 Сетка 40x40
Сетка 40x40
Сетка 80x80 Сетка 80x80 Сетка 80x80
Рис. 9.24. Оптимизация консольной балки с прямоугольной микроструктурой
Оптимизация топологии может выполняться с помощью генетического алгоритма.
Первые заслуги в этой области принадлежат Сандгрену и Йенсену [136], кото-
рые рассмотрели применение генетического алгоритма к оптимизации топологии
множества континуальных структур. Они минимизировали вес структур с учетом
требований на смещения и напряжения. Оптимальная топология (рис. 9.25, а),
была получена при помощи генетического алгоритма. На рис. 9.25, б, в, г по-
казаны оптимальные формы поперечного сечения балки для различных мате-
риалов. Оптимальную структуру велосипеда с соответствующим характером на-
грузки [95] показывает рис. 9.26. Результат удивителен тем, что оптимальная
структура очень похожа на раму настоящего велосипеда.
Рис. 9.25. Простая балка из одного сегмента (а) и оптимальное поперечное сечение для
пластика (б), алюминия (в) и стали (г)
Рис. 9.26. Рама велосипеда
Вопросы и задачи
1. Найти минимум функции F(x) = (х -1)2 (х е R) при условии, что х > 2
1) Ввести дополненную целевую функцию согласно формуле (9.11). Постро-
ить график у = F(x) на плоскости ху. Предположить, что а = 2
2) Определить минимум дополненной целевой функции в зависимости от р
и соответствующие значения х.
3) Показать, что минимум из предыдущего пункта стремится к реальному
минимуму, а соответствующее значение х стремится к х = 2 извне области
допустимых значений.
2. Найти минимум функции F(x) = х(х е R) при условии, что х - 2 > 0, исполь-
зуя метод внутренней штрафной функции.
3.
4.
5.
6.
1) Записать дополненную целевую функцию согласно формуле (9.16). В в
вести выражение зависимости минимума этой функции от рА.
2) Показать, что минимум из предыдущего пункта стремится к реальном
минимуму, а соответствующее значение х приближается к х = 2 изнутр
области допустимых значений.
Объяснить смысл термина «комбинаторная оптимизация».
Выбрать два типичных метода поиска, применимых к комбинаторной опт
мизации, из всех методов поиска, перечисленных на рис. 9.3.
Объяснить смысл термина «NP-полная задача».
Рассмотреть функцию /(х), определение которой приводится ниже.
f(*) =
( Л
I 2/
1
х —,
6
xU;
3
1 .2
- < х <
3 3
2
- <х.
3
7
1) Написать программу, вычисляющую минимум функции /(х) на отрез
[О, 1] методом модельной закалки. Соседнее решение можно строить щ
помощи генератора случайных чисел.
2) Распечатать вариацию значений х в процедуре оптимизации и показа!
что алгоритм способен «выбираться» из локальных минимумов и нах
дить глобальные.
Функция стоимости определяется выражением /(х) = log х. Переменная опт
мизации х может принимать одно из восьми значений на отрезке [0, 7] (
есть ее можно представить строкой из трех битов). Для исходной популяци
заданной согласно приведенной таблице, постройте популяцию, которая б
дет участвовать в воспроизводстве следующего поколения.
X Хромосома
1 001
7 111
3 011
5 101
8. Предложить вариант использования метода оптимизации топологии для ра
мещения ребер жесткости, которые применяются для укрепления структур
пластика, таких как, например, пластиковый корпус телевизора.
Глава 10
Интеграция CAD и САМ
Спроектированная деталь воплощается в готовый продукт средствами производ-
ства. Автоматизация производства обеспечивается соответствующим программ-
ным обеспечением (САМ software). Таких программных продуктов существует
достаточно много. В состав типичного пакета САМ входит система автомати-
зированной технологической подготовки производства (computer-aided process
planning — САРР), система числового управления (NC software), позволяющая
изготавливать деталь при помощи станков с ЧПУ, программы контроля и про-
граммы управления роботами, используемые, соответственно, на этапах провер-
ки и сборки.
Многие производители коммерческих систем CAD и САМ преувеличивают вы-
годы от их использования. Реальный выигрыш от этих систем гораздо меньше
рекламируемого из-за низкой степени их интеграции. Для повышения произво-
дительности и обеспечения выживания на глобальных рынках с постоянно воз-
растающей конкуренцией необходимо улучшение интеграции. Первоочередной
задачей является полная автоматизация технологической подготовки производ-
ства, потому что эта фаза связывает проектирование и производство. Именно
подготовка производства стала основным препятствием на пути к интеграции
CAD и САМ. Основные усилия исследователей были направлены на создание
систем автоматизированной подготовки производства, которые должны были
пытаться обеспечить взаимодействие инженеров-проектировщиков и инжене-
ров-технологов. В этой главе мы обсудим общие вопросы подготовки производ-
ства и, конкретно, средства САРР. Чтобы прояснить значение технологической
подготовки, мы начнем рассказ с рассмотрения производственного цикла одной
детали.
10.1. Производственный цикл детали
Все производство может быть поделено на дискретное и непрерывное. Под дис-
кретным производством понимается изготовление продукта, проходящего через
конечное число технологических и сборочных операций. Непрерывное производ-
ство подразумевает изготовление продукта, претерпевающего непрерывные из-
менения, например в ходе химических реакций, в результате которых заготовка
преобразуется в готовую деталь. Мы сосредоточим внимание на дискретном про-
изводстве, а конкретнее — на механообработке, которая является типичным ме-
тодом изготовления деталей. Главные этапы такого процесса приведены в схеме
на рис. 10.1.
10.2. Технологическая подготовка производства
эи±
Рис. 10.1. Главные этапы дискретного производства
Когда готовый проект передается в производственный отдел, инженер-технолог
преобразует описание деталей и устройств в технологические инструкции. Эти
инструкции подробно описывают процессы, необходимые для превращения не-
обработанных заготовок в готовые детали, а также последующие операции сбор-
ки этих деталей в конечный продукт. Процедура, таким образом, заключается в
сопоставлении требований к деталям и имеющихся производственных мощно-
стей. Инженер-технолог должен интерпретировать инженерно-техническую до-
кументацию, принимать решения о том, как разрезать листы и собирать детали,
определять порядок выполнения операций, выбирать инструмент, станки и кре-
пеж и решать другие подобные задачи. Эта задача значительно упрощается, если
у инженера уже есть готовый план для аналогичного продукта. Поэтому похожие
детали обычно группируются в семейства, что позволяет использовать концеп-
цию групповой обработки.
После завершения фазы технологической подготовки начинается реальное про-
изводство детали в соответствии с инструкциями, подготовленными на предыду-
щем этапе. Если для обработки детали используются станки с ЧПУ, оператор
станка должен написать соответствующую программу. Существует множество
программных средств, позволяющих создать программу для станка с ЧПУ непо-
средственно по базе данных системы автоматизированного проектирования. Го-
товые детали проверяются в соответствии с разработанными стандартами каче-
ства. Прошедшие проверку детали собираются, упаковываются, помечаются и
отправляются заказчикам.
Таким образом, интерфейсом между проектированием и производством оказыва-
ется технологическая подготовка. Интеграция средств проектирования и произ-
водства не будет завершена до тех пор, пока технологическая подготовка не бу-
дет автоматизирована. В последующих разделах мы рассмотрим этапы
технологической подготовки и возможности их автоматизации. В конце главы
мы поговорим о системах управления данными о продуктах (product data mana-
gement — PDM), потому что такие системы тоже служат передаче данных между
системами CAD и САМ.
10.2. Технологическая подготовка производства
Технологическая подготовка производства (process planning) заключается в выбо-
ре технологических процессов и их параметров, а также оборудования для прове-
дения этих процессов. Задача состоит в том, чтобы превратить заготовку в де-
Глава 10. Интеграция CAD и САМ
таль, изображенную на техническом чертеже. Альтернативное определение тех-
нологической подготовки гласит, что под этим термином подразумевается подго-
товка подробных технологических инструкций для станка или сборщика агрега-
та из деталей [32].
На выходе этапа технологической подготовки получается план, описывающий
последовательность технологических процессов или сборочных операций. План
производства иногда называется операционной картой, маршрутной картой или
сводкой планирования операций. В табл. 10.1 приведен план процесса производ-
ства детали, изображенной на рис. 10.2. Помимо выбора и упорядочения опера-
ций важную часть плана составляет выбор инструментов и крепежа. Выбор ин-
струмента включает также выбор станка, на котором этот инструмент будет
установлен. Крепежные устройства направляют инструмент или держат обраба-
тываемую деталь.
Рис. 10.2. Изготавливаемая деталь
План производства детали или агрегата зависит от множества факторов. К ним
относятся геометрия детали, требуемая точность и качество поверхности, коли-
чество деталей и используемый материал. Например, для изготовления очень
гладкой поверхности может потребоваться шлифовка, тогда как для более гру-
бой поверхности достаточно токарной обработки (при той же самой геометрии
детали). Небольшое количество деталей можно изготовить на станке, а большие
количества выгоднее штамповать на прессе. Выбор операций также во многом
определяется имеющимися средствами.
Таблица 10.1. Пример плана производства
Дата 10 февраля 1998 Инструменты и параметры 700 об/мин 0,15 мм/об 80°алмазный напильник T/F Гравировальный резец Резец для бороздки Резец для резьбы 200 об/мин Рычаг подачи установить по резьбе Шаг винта 1,5 мм Лерка М20х1,5 Напильник №3 Сверло, теплоотвод Резец для насечки
Название п । Ручка Размер 022x206 Инструкции Установить материал в патрон. Длина высту- пающей части 45 мм Обработать торец Внешний диаметр 021,8x25 Напильником снять фаску R2 Установить материал наоборот. Длина высту- пающей части 45 мм Обработать торец Сиять 30 мм до выступа Сформировать канавку 3xl,5xRl Однозаходпая резьба М20х1,5 Довести резьбу леркой Галтоваиис резьбы Сверление по центру 6О°х08 (приблизит.) Продвинуть заготовку Зажать 12 мм необработанного материала Пододвинуть бабку Сделать насечку 125 мм Очистить, снять заусенцы, проверить
Деталь № SNU-SM-001 Материал 6061-Т6 алюминий Время ра- боты, мин 0,5 0,5 сч 1Л X—* сч со со
Стандарт, настройка го ю СМ о СО о
Станок Токарный Токарный Токарный Токарный Токарный Токарный | Верстак
№ оп 010 020 030 040 050 090 070
I лава 10. Интеграция CAD и САМ
10.2.1. Неавтоматизированный подход
Традиционно планирование производства всегда выполнялось вручную. Теперь
это называется неавтоматизированным подходом. Состоит данный подход в том,
что опытный сотрудник, часто бывший оператор-станочник, изучает чертеж де-
тали и подготавливает инструкции по ее изготовлению, то есть план производст-
ва. В зависимости от цеха вырабатываемый им план может быть достаточно
сложным, а может быть простой совокупностью описаний отдельных операций.
В опытном производстве, где все операторы имеют высокую квалификацию и
могут работать с несколькими станками, а большинство деталей относятся к од-
ному и тому же типу, технологический план обычно становится не более чем по-
следовательностью операций обработки, а все подробности выполнения этих
операций определяются операторами самостоятельно. Однако если деталь долж-
на быть изготовлена на полностью автоматизированной производственной ли-
нии, технологический план будет содержать подробные сведения о каждой опе-
рации. Вне зависимости от сложности плана его подготовка очень сильно
зависит от знаний планировщика, имеющихся инструментов, материалов, стан-
дартных приемов и характерных масштабов стоимости. К сожалению, эти сведе-
ния обычно документируются недостаточно полно, а чаще всего хранятся ис-
ключительно в памяти технолога. Если память у него хорошая, он может
вспомнить план производства аналогичной детали и видоизменить его под но-
вую деталь. В некоторых компаниях планы классифицируются вручную и хра-
нятся в рабочих журналах.
В процессе разработки планов производства новых продуктов инженеры-техно-
логи чаще всего действуют примерно одинаково. Типичная последовательность
этапов планировки приведена ниже.
1. Изучение формы детали в целом. Технолог изучает инженерно-техническую
документацию, определяет общую структуру детали и потенциальные труд-
ности, которые могут возникнуть при ее производстве. Можно ли зажать эту
деталь в тиски, поместится ли она между губками? Не окажется ли, что она
слишком длинная и тонкая, и изогнется, когда ее зажмут? И так далее.
2. Определение оптимальной формы заготовки, если она не задана в документа-
ции. По чертежу планировщик обычно с легкостью определяет очертания де-
тали. Это помогает ему выбрать форму заготовки, из которой данная деталь
может быть изготовлена с минимальным объемом отходов. Размеры заготов-
ки обычно на четверть дюйма превышают размеры готовой детали.
3. Определение базовых поверхностей и конфигураций. Инженер-технолог опре-
деляет минимальное количество конфигураций, необходимых для получения
базовых поверхностей механической обработкой. Затем он записывает опера-
ции для каждой конфигурации.
4. Определение элементов детали. Инженер-технолог выделяет элементы дета-
ли, то есть геометрические формы, которые должны быть вырезаны на заго-
товке, из которой будет сделана деталь. Форма элементов определяет форму
инструментов и траекторию их перемещения при обработке заготовки. Ха-
рактерные элементы (и субэлементы), получаемые механической обработкой,
изображены на рис. 10.3 и рис. 10.4 соответственно.
10.2. Технологическая подготовка произвол
Глухое отверстие
Глухой Паз
Сквозной паз Обработка по радиусу
Открытый паз
Уступ
Угол
Рис. 10.3. Элементы, получаемые машинной обработкой
Расточка
Сквозное отвестие с резьбой
Расточка
Конический зенкер
Конический зенкер
Рис. 10.4. Субэлементы, получаемые машинной обработкой
лава 10. Интеграция CAD и САМ
5. Группировка элементов по конфигурациям. Инженер-технолог группирует
элементы таким образом, что каждая группа формируется в рамках одной
и той же конфигурации. Некоторые детали могут быть произведены в кон-
фигурациях, определенных ранее для базовых поверхностей, другие могут
потребовать задания новых конфигураций. Затем формируется список опе-
раций по изготовлению элементов детали для каждой конфигурации.
6. Упорядочение операций. Внутри каждой конфигурации порядок операций по
производству соответствующих базовых поверхностей и элементов определя-
ется взаимозависимостями этих операций и их взаимным влиянием.
7. Выбор инструментов для каждой операции. Технолог старается по возможно-
сти использовать один и тот же инструмент для нескольких операций. Ему
приходится учитывать время на смену инструмента и время на обработку.
8. Выбор или проектирование зажимов для каждой конфигурации. Этот этап пла-
нирования сильно зависит от опыта технолога, потому что количество стан-
дартных зажимов и крепежных приспособлений невелико. Правильный
выбор зажимов очень важен для достижения высокого качества продукта.
9. Итоговая проверка плана. Инженер-технолог проверяет осуществимость кон-
кретных конфигураций, вероятность создания помех инструментам крепеж-
ными приспособлениями и т. д.
10. Уточнение плана производства. Технолог добавляет в план подробности по
изготовлению отдельных элементов, выбирает скорость подачи и обработки,
оценивает затраты и время изготовления и т. д.
11. Подготовка документации. Готовый технологический план производства от-
дается главному технологу.
Рассмотрим процесс подготовки плана производства на примере.
Пример 10.1
Подготовить план производства детали (рис. 10.5). Использовать нарезанные за-
готовки и обычные инструменты.
Решение
Деталь представляет собой тело вращения, поэтому для ее изготовления естест-
венно использовать токарный станок. Базовые поверхности S1 и S2 (рис 10.6)
могут быть обработаны в одной конфигурации. Однако всего потребуется как
минимум два этапа, поскольку нужно нарезать резьбу. Элементы S1, S2, S3, S4 и
S5 могут быть изготовлены в одной конфигурации, a S6 и S7 — в другой. Кроме
того, отверстия S8 просверлить на токарном станке нельзя, поэтому нам придет-
ся добавить еще одну конфигурацию для сверлильного станка. Отсюда следует,
что деталь может быть изготовлена посредством приведенной ниже последова-
тельности операций.
10.2. Технологическая подготовка производства
SUZ
Рис. 10.5. Чертеж детали, подлежащей изготовлению
□ Конфигурация 1. Зажать заготовку. Выточить S3 до диаметра 100 мм. Обрабо-
тать торец S1. Просверлить внутреннее отверстие S2. Расточить S4 и S5.
□ Конфигурация 2. Зажать заготовку в области S3. Выточить S6 до диаметра
50 мм. Подрезать шейку. Нарезать резьбу S6. Обработать торец S7.
□ Конфигурация 3. Закрепить деталь за элементы S1 и S2. Разметить 6 отвер-
стий S8. Наметить центры и просверлить отверстия S8.
Детализация плана, выбор инструментов и параметров для этой детали остаются
читателю в качестве самостоятельного упражнения.
Как видно из предшествующего примера, неавтоматизированный подход полно-
стью зависит от знаний конкретного технолога и определяется его субъективны-
ми суждениями, отражающими его предпочтения и опыт. Поэтому планы произ-
водства, подготовленные разными технологами, обычно отличаются друг от
друга, даже если детали абсолютно одинаковы. Кроме того, немеханизирован-
ный подход очень трудоемок, поглощает массу времени и весьма кропотлив. Из-
за этих недостатков компьютеризованные системы постепенно вытесняют неав-
томатизированный труд.
JUO
Глава 10. Интеграция CAD и САМ
S7
S3
Рис. 10.6. Элементы детали, получаемые машинной обработкой
10.2.2. Модифицированный подход
Модифицированный подход — это один из двух методов, используемых для раз-
работки систем автоматизированной технологической подготовки. Другой под-
ход называется генеративным (generative approach), речь о нем пойдет в следую-
щем разделе. Модифицированный подход (variant approach) называется так
потому, что он является модификацией неавтоматизированного подхода, суть
которой состоит в том, что технолог пользуется не только своей памятью, но
и памятью компьютера. Другими словами, рабочий журнал технолога хранится
в компьютерном файле. Типичный технологический план производства подоб-
ной летали может автоматически извлекаться из такого файла после описания
анализируемой детали в соответствии с определенной системой кодирования.
Выбранный план производства может редактироваться в интерактивном режи-
ме; в него вносятся поправки, соответствующие специфике конкретной детали.
Таким образом, модифицированный подход требует наличия базы данных со
стандартными планами производства для каждого семейства деталей. Такой
план должен содержать все инструкции, которые будут входить в план произ-
водства любой детали из данного семейства. Детали классифицируются по се-
мействам на основании концепции групповой технологии. Согласно этой кон-
цепции, каждой детали присваивается код, зависящий от ее элементов, после
чего детали группируются в семейства в соответствии с присвоенными кодами.
О групповой технологии мы расскажем в разделе 10.4.
10.2. Технологическая подготовка производства
Модифицированный подход к разработке плана производства выражается в сле-
дующем. Технологическая подготовка производства новой детали начинается с
кодирования ее особенностей, что эквивалентно описанию детали на языке груп-
повой технологии. Затем деталь может быть отнесена к какому-либо семейству
на основании ее кода. После этого из базы данных извлекается стандартный
план производства для деталей этого семейства. В этом плане содержатся общие
инструкции по производству любых деталей семейства, поэтому может потребо-
ваться его редактирование для получения плана нужной детали. Редактирование
осуществляется средствами компьютерной системы. Часто изменения оказыва-
ются незначительными, потому что новый план представляет собой лишь не-
большую модификацию стандартного. Благодаря этому на этапе подготовки пла-
на экономится масса времени, а готовые планы оказываются гораздо более
последовательными, чем разрабатываемые вручную. Если деталь не может быть
отнесена к одному из существующих семейств, технолог может разработать но-
вый стандартный план производства в интерактивном режиме.
10.2.3. Генеративный подход
Генеративный подход (generative approach) состоит в том, что технологический
план вырабатывается автоматически на основании технических требований к де-
тали. В технические требования должны включаться подробные сведения о ма-
териале, особенностях обработки и предлагаемых методиках проверки, а также
графическое изображение формы детали.
На первом этапе разработки плана производства новой детали в генеративном
подходе технические требования вводятся в компьютерную систему. В идеале
они должны считываться непосредственно из базы данных САПР. Для этого не-
обходимо, чтобы автоматизированная система технологической подготовки мог-
ла распознавать элементы детали, требующие машинной обработки, такие как
отверстия, пазы и выемки. Реализация первого этапа значительно упрощается,
если при моделировании детали используется объектно-ориентированный под-
ход (глава 5). Однако даже конструктивные элементы, используемые в системе
объектно-ориентированного моделирования, могут потребовать преобразования
к элементам, которые могут быть изготовлены машинной обработкой. Неко-
торые конструктивные элементы однозначно сопоставляются технологическим,
тогда как преобразование других представляет собой не слишком тривиальную
процедуру. Кроме того, информации об элементах, вообще говоря, недостаточно
для технологической подготовки производства. Например, большинство моде-
лей CAD не содержат сведений о допусках и материалах, и их приходится вво-
дить вручную Это лишь часть причин, задерживающих разработку полностью
автоматизированных систем технологической подготовки производства до настоя-
щего времени. Вместо этого технические требования к детали часто кодируются
вручную. Схема кодирования должна определять все геометрические элементы
и их параметры, в частности положение, размеры и допуски. Закодированные
данные сопровождаются информацией в текстовом формате. Наконец, система
должна иметь сведения о форме заготовки.
На втором этапе закодированные данные и текстовая информация преобразуют-
ся в подробный технологический план производства детали. На этом этапе опре-
лава 10. Интеграция CAD и САМ
деляется оптимальная последовательность операций и условия их выполнения.
К условиям относятся используемые инструменты, крепления, измерительные
приборы, зажимы, схемы подачи и скорости обработки. Для построения столь
подробного плана производства детали произвольной сложности требуется
большая база данных и сложная логическая система. Поэтому на сегодняшний
день автоматизированный подход ограничивается отдельными классами деталей
с относительно ограниченным набором элементов.
10.3. Автоматизированные системы
технологической подготовки производства
Большинство существующих систем автоматизированной технологической под-
готовки производства (например, CAM-1 САРР, MIPLAN, MITURN, MIAPP,
ACUDATA/UNIVATION, CINTURN и COMCAPPV) основаны на альтернатив-
ном подходе. Однако в литературе уже появляются упоминания о системах, ос-
нованных на генеративном подходе (CPPP, AUTAP, APPAS, GENPLAN, CAR,
MetCAPP, ICEM-PART) [1]. В последующих разделах мы кратко расскажем о
наиболее популярных системах автоматизированной технологической подготов-
ки производства. Подробное сравнение таких систем приводится в работе Чан-
га [32].
10.3.1. САМ-I САРР
Система САМ-I САРР была разработана компанией McDonnel Douglas Automa-
tion Company по контракту с САМ-I в 1976 году. САМ-I САРР — это система
управления базами данных, написанная на языке FORTRAN; она реализует
структуру базы данных, логику обращения к ней и предоставляет возможность
редактирования базы в интерактивном режиме. Схема кодирования деталей
и формат вывода задаются пользователем. Длина кода не должна превышать
36 разрядов. Фирма Lockheed-Georgia использует модифицированный код
Опитца для кодирования в системе САРР. Схема позволяет пользователю рабо-
тать с любой из существующих систем групповой технологии. Множество дета-
лей, изготовление которых может быть спланировано при помощи САМ-1
САРР, определяется возможностями реализации схемы кодирования.
Графическая модель системы САМ-I САРР показана на рис. 10.7. Стандартный
план производства для каждого семейства деталей хранится в стандартном по-
следовательном файле в виде последовательности кодов операций (рр code). По-
дробное описание каждого кода операции хранится в отдельном файле — плане
операций. Стандартные планы и планы операций приходится разрабатывать для
каждой установки, поскольку они зависят от машин, технологий и опыта кон-
кретной компании. В файле матриц семейства хранятся матрицы, определяющие
принадлежность деталей к данному семейству по ее коду. Пример матрицы при-
веден в таблице на рис. 10.8. Столбцы соответствуют разрядам кола, а строки —
значениям в этих разрядах. В нашем примере код состоит из пяти разрядов, каж-
дый из которых может иметь значение 0-9. Таким образом, файл матриц семей-
10.3. Автоматизированные системы технологической подготовки производства
311
ства содержит все возможные комбинации цифр для данного семейства. Из таб-
лицы следует, например, что к одному семейству будут относиться детали
31 632, 32 646 и 35 638.
Рис. 10.7. Структура системы САМ-I САРР
Технологический план производства формируется системой САМ-I САРР в че-
тыре этапа (рис. 10.7).
1. Поиск семейства, к которому должна быть отнесена деталь, выполняется сис-
темой на основании матрицы семейств и кода детали.
2. Технолог вводит данные для головной метки, по которой формируемый тех-
нологический план в дальнейшем может быть идентифицирован. К данным
относятся номер детали, материал, имя технолога, название детали и номер
версии. Конкретный перечень данных в каждой компании может быть свой.
Обычно этот перечень задается при установке системы в компании.
3. На следующем этапе система формирует последовательность операций по из-
готовлению детали (иногда называемую маршрутом — route). Формирование
осуществляется путем уточнения или модификации стандартного технологи-
ческого плана, состоящего из мнемонических аббревиатур (кодов операций)
доступных станков. Примеры кодов операций приведены в табл. 10.2.
4. Затем создается или редактируется текстовое описание действий, выполняе-
мых на каждой операции. Пример плана операций для кода CNCLATH при-
веден в табл. 10.3. После подготовки планов всех операций они объединяются
вместе, что дает полный технологический план производства. Этот план сохра-
няется в виде файла и при необходимости может быть распечатан или изменен.
Таблица 10.2. Примеры кодов операций
Код Название Код Название
10 RANHTL 80 NCLATH
20 SAWBAR 90 DEBUR
30 CNCLATH 100 CNCGRIND
40 INSP 110 SLURRY
50 HTRT 120 INSP
60 SAND 130 LASERMK
70 НОВ 140 РК6
Таблица 10.3. Пример плана операции
Код Название Конфигурация Текст Параметры
30 CNCLATH Глубина 96-3 Рабочие центры G3JL MACHREFCNCJ&L Код МАСН 0123 Положение 30/АА19
1 Зажим № NCJ9 Инструкции: снять заусенцы Резец: NCT309 Время уст.: Квант времени: Часов/шт:
Обработать край Обработать внутренний диаметр
2 Зажим № NCJ9 Инструкции: обращаться аккуратно Резец: NCT388 Время уст.: Квант времени: Часов/шт:
Обработать обратную сторону
Подробнее об этих этапах рассказывается в аналогичном примере в книге [15].
10.3. Автоматизированные системы техноло! ическои иодкловки прии-аиидим
10.3.2. MIPLAN и MultiCAPP
Системы MIPLAN и MultiCAPP были разработаны совместно с Организацией
промышленных исследований (Organization for Industrial Research). Обе систе-
мы относятся к классу альтернативных и используют для описания деталей сис-
тему кодирования MICLASS. Выбор плана производства осуществляется на ос-
новании кода детали, ее номера, матрицы семейств и диапазона значений кода.
По коду детали ищутся аналогичные детали, причем технолог может последова-
тельно редактировать отображаемые планы производства. Примерно такую же
систему можно получить, если использовать коды MICLASS с САМ-I САРР.
10.3.3. MetCAPP
MetCAPP — типичная система автоматизированной технологической подготов-
ки, основанная на генеративном подходе. Изначально она была разработана и
выпущена на рынок отделением программного обеспечения Института высших
производственных наук (Institute of Advanced Manufacturing Science — IAMS).
Позднее отдел выделился в самостоятельную компанию Agil Tech. MetCAPP
формирует технологический план следующим образом. Сначала модуль выделе-
ния элементов анализирует геометрическую модель, созданную в программе
CAD. После идентификации элементов выбираются методы обработки и их по-
рядок с учетом взаимного влияния (сведения о нем хранятся в базе знаний).
MetCAPP может быть классифицирована как генеративная система САРР, ос-
нованная на знаниях. По построенным планам производства эта система может
оценивать временные и материальные затраты на обработку.
В настоящее время в систему MetCAPP введены правила проверки взаимных
помех для фрезерования, сверления и токарной обработки. Также предусмотре-
на утилита MetScript, с помощью которой пользователь может определять новые
элементы и добавлять новую логику планирования производства. На данном
этапе модуль выделения элементов способен работать лишь с геометрическими
моделями, созданными системой ACIS от Spatial Technology.
10.3.4. ICEM-PART
Система ICEM-PART была разработана в лаборатории технологий производства
и проектирования Университета Туэнте в Голландии и позднее стала распростра-
няться ICEM. Это генеративная система автоматизированной технологической
подготовки производства, используемая главным образом для машинной обра-
ботки 2,5-мерных призматических деталей.
ICEM-PART строит технологический план следующим образом. Сначала система
считывает геометрическую модель детали из формата ACIS или STEP1 АР203/
АР214 и выделяет элементы, получаемые машинной обработкой. Затем она авто-
матически выбирает конфигурацию, резец и станок и рекомендует оптимальный
порядок обработки. Кроме того, система подготавливает траектории движения
для станков с ЧПУ для получения каждого элемента. ICEM-PART — хороший
пример интеграции CAD/CAPP/CAM.
1 Формат STEP описан в главе 14.
10.4. Групповая технология
Как было показано в предыдущем разделе, объединение подобных деталей в се-
мейство в рамках правильной системы кодирования совершенно необходимо
для автоматизированной технологической подготовки производства. Концепция
групповой технологии — то, на чем основана эта классификация. Определение
групповой технологии (group technology — GT) может быть записано следующим
образом.
Групповая технология — это осознание того, что многие задачи в основе своей по-
добны друг другу, а группировка задач позволяет найти общее решение к ним, сэ-
кономив время и усилия [143].
Это всеобъемлющее определение можно конкретизировать, определив область
его применения. Суть групповой технологии состоит в создании базы данных
подобных деталей, проектов и технологий и использовании этой базы для вне-
дрения общей процедуры проектирования и производства таких деталей. Детали
объединяются в семейства по конструктивному подобию (например, по схоже-
сти форм) и по технологическому подобию (например, по необходимым опера-
циям, таким как фрезерование или сверление).
Групповая технология широко используется для упрощения продвижения про-
дуктов на производстве. Выделение деталей с общими технологическими пара-
метрами позволяет разработать эффективные планы производства, выделяя для
каждого семейства одну ячейку плана. Таким образом упрощаются технологиче-
ские маршруты, сокращаются временные затраты на передачу материалов между
станками и длительности производственных циклов.
Более того, поскольку подобные детали производятся на одних и тех же станках,
часто сокращаются и временные затраты на настройку станков. Может исполь-
зоваться специальное технологическое оснащение. В предыдущем разделе отме-
чалось, что коды групповой технологии используются для выбора существую-
щих планов в автоматизированной технологической подготовке производства.
Инженерам-технологам не приходится разрабатывать планы с нуля для каждой
новой детали — вместо этого они могут обращаться к планам производства ана-
логичных деталей и изменять их в соответствии с техническими требованиями к
новым деталям.
Концепция групповой технологии дает преимущества и на этапе проектирова-
ния. С ее помощью часто удается устранить избыточное разнообразие деталей,
предоставив конструкторам возможность осуществлять поиск по семействам де-
талей. Часто конструкторы просто не знают о наличии аналогичных проектов
среди текущих разработок. Обычно это бывает связано с тем, что система нуме-
рации деталей не дает им достаточной информации. В таких случаях возникает
тенденция к дублированию деталей с незначительными изменениями, не имею-
щими отношения к назначению деталей. Избыток деталей приводит к быстрому
увеличению количества бумаг, а также к расходам заготовок.
10.4.1. Классификация и кодирование
Классификация детали означает отнесение ее к определенной группе или семей-
ству на основании наличия или отсутствия определенных свойств. Кодирование
детали состоит в присваивании ей символов, которые должны отражать свойства
детали, в частности наличие у нее определенных элементов.
Перед построением системы кодирования конструктор должен исследовать все
элементы деталей, которые должны быть учтены в ней. Выбор элементов опреде-
ляется применением создаваемой системы. Предположим, например, что конст-
руктор ставит перед собой цель классифицировать и закодировать детали для
облегчения работы с ними в процессе конструирования устройств (то есть для
сокращения затрат благодаря возможности идентификации аналогичных дета-
лей среди существующих). В этом случае важны такие свойства деталей, как
форма, материал и размеры, но не допуски для этих размеров. Если же систе-
ма кодирования и классификации должна использоваться на производстве, она
обязательно должна учитывать допуски, обрабатываемость материалов, техноло-
гии и требования к станкам. Существует три типа структур кодов, на которых
могут основываться системы кодирования групповых технологий: иерархиче-
ские (моноаспектный код или просто монокод), цепные (многоаспектный код)
и гибридные.
Моноаспектный код
В иерархическом, или моноаспектном, коде {hierarchical code, monocode) значение
знака кода определяется предшествующими знаками. Пример структуры иерар-
хических кодов для семейства 54ххх (корпус факса) показан на рис. 10.9. В на-
шем примере четвертая цифра в ветви 541хх определяет тип пластика, тогда
как в ветви 542хх она же указывает на наличие или отсутствие ребер жесткости.
Иерархическая структура обладает тем преимуществом, что позволяет описать
большие объемы информации небольшим количеством символов. Однако опре-
делить значение символа в иерархической структуре оказывается достаточно
сложно, потому что каждый раз приходится прослеживать всю иерархию впере-
дистоящих символов. Кроме того, иерархический код трудно разработать и мо-
дифицировать, потому ч го нужно определять все ветви иерархии.
Рис. 10.9. Иерархический код
jtulkj xu. n i ci рация и
Многоаспектный код
Основанный на цепной структуре (chain structure) код называется многоаспект-
ным (polycode). В таком коде каждая цифра не зависит ни от каких других, в том
числе и от предшествующих. Многоаспектный код легко конструировать и мо-
дифицировать по мере необходимости. Его использование предпочтительно в
том случае, если сведения о деталях будут изменяться достаточно часто. Глав-
ный недостаток многоаспектного кода в том, что он несет гораздо меньше ин-
формации, чем моноаспектный код той же длины.
Гибридная структура
В гибридной структуре (hybrid structure) некоторые цифры образуют иерархиче-
ские последовательности, тогда как другие рассматриваются автономно. Други-
ми словами, данная структура представляет собой смесь иерахической и цепной.
Большинство систем классификации и кодирования, используемых в промыш-
ленности, основаны на гибридных структурах, что позволяет пользоваться пре-
имуществами моноаспектных и многоаспектных кодов. В следующем разделе мы
опишем некоторые популярные системы кодирования.
10.4.2. Существующие системы кодирования
Для обеспечения потребностей проектирования и производства было разработа-
но множество систем классификации и кодирования деталей. Эти системы об-
легчают выбор семейств деталей и поиск деталей с подобными технологически-
ми характеристиками.
Система Vuoso—Praha
Код Vuoso—Praha состоит из четырех знаков, три из которых образуют иерархи-
ческую структуру, задающую форму детали, в том числе ее размеры и пропор-
ции, а четвертая цифра задает материал. Значение каждой цифры раскрывается
во всех подробностях на рис. 10.10. Заметьте, что значение второй и третьей
цифр зависит от первой. Тела вращения кодируются подробнее, чем все прочие.
Попробуем воспользоваться таблицей, изображенной на рис. 10.10, чтобы зако-
дировать деталь, изображенную на рис. 10.11.
Покажем, что этой детали соответствует код 3 3 2 1:
□ 3: тело вращения со сквозным отверстием;
□ 3: D = 75 мм, L/D = 50/75 = 0,67;
□ 2: отверстие не на оси;
□ 1: нелегированная сталь.
Система Опитца
Эта система была разработана Опитцем (Н. Opitz) из Аахенского Технического
университета (Германия). Она основана на гибридной структуре, поэтому значения
второй, третьей, четвертой и пятой цифр зависят от первой (см. табл. 10.2 и 10.3).
Базовый код Опитца состоит из девяти знаков, но может быть расширен до трина-
дцати. Первые девять цифр называются основным кодом (primary code), а дополни-
тельные цифры А, В, С и D — дополнительным (secondary code). Дополнительный
код определяет тип технологических операций и их последовательность.
Vuoso-Praha
Workpiece classification system
0-40
40-60
80-
200-
Various
Rotational workpieces
Hole in axis
80-
200
Geared and splined
Hole in axis
None
4
Flat and
irregular
Blind Trough
6
Lmax
-fl-
mm
0-200
mm
0-200
mm
0-200
mm
200-
mm
0-200
mm
200-
mm
200-
mm
200-
mm
0-200
mm
200-
Rough ч rci
Giblike
UB>5
Trough
______________5
Rough form
Rough weight
30-200 kg
200-500 kg
500-1000 kg
Leveriike
Irregular
Prismlike
3
£
&
1
2
L/D
Platforms
UB <5
Boxlike
0-30 kg
1000-kg
Other mainly
nonmachined
8
Made of
Extruded
forms
Bars
Tubes
Sheets
Wires
-
1 r
1 '
Materials
Plain steel STL 1
61-чверХочв рм Xjfiino urn 11 ш i 14120 14221 15124 14220 m ^23 гкп m I 2
12030 040 OSO 060 061 072 13122 141 240 242 14140 150 240 330 331 341 342 15130 131 151 224 E3 3 23 з ЕЭ E3 KS 23 a ! 3
i i ? 15151 15241 IBS p г 4
Other alloy» 5
Nonferroua 6
Grey кол 4224 7
Mallubto 4225 Iran 4226 Caatateat 4227-28 8
9
0
Nonmetal»
0 Smooth |ES Spur gear ed c и 1 1-6
< Thread in axis i&g 0 I E
Holes 2 not In axis Taper geared I I 1
p=[B
Splines 3 or grooves H 5=4 1 £M
В 2-4
A Comb. 4 1*2 l(l)i 1 |ф| Worm geared ex и
к Comb. & 1+3 Il i;i il 0 b
g- Comb. 6 2+3 Multiple gears г Q. И
7 Comb. * 1+2+3 <D -
8 Taper сф Other | Splined I ГШП
9 Unround £-3 1 Other 1 G
Flat parallel Boxes spindlestocks frames 5 LL 1 Non mach. 1
1
Flat other Columns Part I mach.
Rotat. parallel Beds bridges Bent 1 Non mach. 1 j
: :l
Rotat. other Outriggers knees Part I mach.
Flat parallel rotat. parallel Tables slides I LL ZE 1 ,1
: 1
Flat parallel rotat. other Lids 1 Part 1 mach. -Ф-
Flat other rotat. parallel |?ГГ“Чг] Basins containers Welded Z E
1+1 HI
Flat other rotat. other Part I | mach. J
Geared e^r^ii
Counterweights
Example of a
class number
3 3 7 2
| Kind I Class 1 I | Material |
3C Rotational
trough hole
3C max 040-80
L/D<1
7 C Threaded,
holes not in axis,
splines
2 C Alloy steel
Рис. 10.10. Система кодирования Vuoso-Praha
ЫНПИгюти hprliaiuiJ
Таблиц; Зна- чение знака 10.4. Код формы по Знак 1 Класс детали системе Опитца для тел вращен Знак 2 Внешняя форма, элементы /|Я KJldLLUO и, Л п Знак 3 Внутренняя форма, эле- менты Знак 4 Обработка пло- ских поверхно- стей Знак 5 Дополнительные отвер- стия н зубцы шестерен
о Тела вращения L/D < 0,5 Гладкая, без элементов Нет отверстий и проемов Без обработки Без зубцов отверстии
1 0,5 < L/D <3 Уступ на одном койне Без элементов формы Гладкая или с уступом па одном конце Без элементов формы Плоская поверх- ность или кривая в одном направле- нии. внешняя На осн, нс на диа- метре делительной окружности
Резьба Внешняя поверх- ность с градиентом по окружности На оси, па диамет- ре делительной ок- ружности
L/D £ 3 пли глад- кая Резьба
2
Радиальное, не па диаметре делительной окружности
Функцио- нальная ка- навка Функцио- нальная канавка Внешняя канавка или паз
3
На оси или радиу- се или другом на- правлении
4 Уступы на обоих концах Без элементов формы Уступы на обоих концах Без элементов формы Внешний шлиц (полигон)
На осн или радиу- се PCD пли ином направлении
5 Резьба Резьба Внешняя поверх- ность или паз, внешний шлиц
Функцио- нальная ка- навка Внутренняя поверхность или паз С зуб- - нами Прямозубая шес- терня
6 Тела без вращательной симметрии функциональная ка- навка
Функциональный конус Функциональный конус Внутренний шлиц Коническая шес- терня
7
Другие шестерни Все прочие
Рабочая резьба Все прочие Рабочая резьба Все прочие Внутренний и внешний полигон, канавка или паз Все прочие
8 Ll
Таблица 10.5. Код формы по системе Опитца для тел вращения классов 3 и 4
Показанную на рис. 10.11 деталь можно классифицировать при помощи
табл. 10.1 — табл. 10.3. Первые пять знаков кода Опитца будут; 1110 2. Дока-
зать это можно следующим образом:
□ 1: L/D = 0,67;
□ 1: уступ на одном конце, элементы формы отсутствуют;
□ 1: гладкая внутренняя форма;
□ 0: плоские поверхности без обработки;
□ 2: отверстия на оси, на диаметре делительной окружности.
Многие компании взяли на вооружение систему кодирования Опитца, потому
что она четкая и удобная в использовании. По всей видимости, это самая извест-
ная система кодирования из всех существующих. Несколько систем САМ-1
САРР используют коды Опитца.
Система КК-3
Система кодирования КК-3 была разработана в 1976 году Японским Обществом
развития промышленности (Japan Society for the Promotion of Machine
Industry — JSPMI). Это многоцелевая система кодирования и классификации
деталей, получаемых машинной обработкой. В ней используется 21 знак
(табл. 10.6), благодаря чему она отражает больше особенностей деталей, чем сис-
тема Vuoso-Praha и система Опитца. Первый и второй знаки задают функцио-
нальное название детали (одно из 100 возможных). Полный набор определений
и словарь системы КК-3 приводится в книге [32].
Таблица 10.6. Структура кода КК-3
Знак Элементы (тела вращения)
1 Название детали Общая классификация
2 Подробная классификация
3 Материалы Общая классификация
4 Подробная классификация
5 Основной размер Длина
6 Диаметр
7 Основные формы и соотношение главных размеров
8 Подробные сведения о форме и обработке Внешняя поверх- ность Внешняя поверхность и основная внешняя форма
9 Концентрические детали с резьбой
10 Функциональные отрезанные части
11 Элементы необычной формы
12 Формовка
13 Цилиндрическая поверхность
Знак Элементы (тела вращения)
14 Подробные сведения о форме п обработке Внутрен- няя ио- верхность Первичная внутренняя форма
15 Криволинейная внутренняя поверхность
16 Плоская нлп цилиндрическая внутренняя поверхность
17 Граничная поверхность
18 Некоицсп- трнческие отверстия Регулярно расположенные отверстия
19 Особые отверстия
20 Обработка без резца
21 Точность
MICLASS
Система классификации Института металловедения (Metal Institute Classification
System — MICLASS) была разработана Голландской Организацией прикладных
научных исследований (The Netherlands Organization for Applied Scientific
Research — TNO) и в настоящее время поддерживается в США Организацией
промышленных исследований (Organization for Industrial Research). Это коммер-
ческая система, довольно популярная в США. В ней используется цепной код из
12 знаков. Эти 12 знаков позволяют классифицировать конструкционные и про-
изводственные характеристики детали: форму, элементы, их положение, основ-
ные размеры, их соотношение, дополнительные размеры, допуски и материал
(рис. 10.12).
Разряд
1
2
3
4
5
6
7
8
9
10
11
12
Главная форма
Элементы формы
Расположение элементов формы
Главные размеры
Соотношение размеров
Дополнительный размер
Код допусков (квалитет)
Код материала
Рис. 10.12. Структура кода MICLASS
Первые четыре знака определяют форму детали. Первый знак (основная форма)
указывает форму готового продукта. Это может быть тело вращения, брусок,
плоская деталь или какая-либо иная деталь, не являющаяся телом вращения.
К элементам формы, задаваемым вторым и третьим знаками, относятся отвер-
стия, пазы и канавки. Положение этих элементов задается четвертым знаком.
Знаки с пятого по восьмой отражают сведения о размерах. Назначение дополни-
тельного размера зависит от основной формы детали. Девятый и десятый знаки
кодируют допуски, а одиннадцатый и двенадцатый — показатель обрабатываемо-
сти материала. Допускается добавление дополнительных знаков (не более 18),
которые могут применяться для нужд конкретной компании: кодирования по-
ставщиков, размеров партий, стоимости и технологических сведений.
VERSION-A-
3 MAIN DIMENSIONS (WHEN ROT. PART D.L AND 0)? 2.9375 2 0
DEVIATION OF ROTATION FORM? NO
CONCENTRIC SPIRAL GROOVES? NO
TURNING ON OUTERCONTOUR (EXCEPT ENDFACES)? YES
SPECIAL GROOVES OR CONE(S) IN OUTERCONTOUR? NO
ALL MACH. DIAM. AND FACES VISIBLE FROM ONE END (EXC. ENDFACE + GROOVES)? YES
INTERNAL TURNING? YES
INTERNAL SPECIAL GROOVES OR CONE(S)? NO
ALL INT. DIAM. + FACES VISIBLE FROM 1 END (EXC. GROOVES)? YES
ALL DIAM. + FACES (EXC. ENDFACE) VISIBLE FROM ONE SIDE? YES
ECC. HOLING AND/OR FACING AND/OR SLOTTING? YES
IN INNERFORM AND/OR FACES (INC. ENDFACES)? YES
IN OUTERFORM? NO
ONLY KEYWAYING ETC.? NO
MACHINED ONLY ONE SENSE? YES
ONLY HOLES ON A BOLTCIRCLE AT LEAST 3 HOLES? YES
FORM-OR THREADING TOLERANCE? NO
DIAM. ROUGHNESS LESS THAN 33 RU (MICRO-INCHES)? YES
SMALLEST POSITIONING TOL. FIELD? .016 SMALLEST LENGTH TOL. FIELD? .0313
MATERIAL NAME? CC15
CLASS.NR. = 1271 3231 3144
DRAWING NUMBER MAX 10 CHAR? 7
NOMENCLATURE MAX 15 CHAR? BUSHING
CONTINUE [Y/N]? N
PROGRAM STOP AT 4690
Рис. 10.13. Сеанс интерактивного кодирования в системе MICLASS
Кодирование нескольких тысяч деталей при помощи кода MICLASS длиной
в 30 знаков было бы крайне нерациональным расходованием времени. Поэтому
вместе с системой поставляется несколько интерактивных компьютерных про-
грамм, предназначенных в помощь пользователю. Процедуру интерактивного
кодирования детали (см. рис. 10.11) при помощи одной из вспомогательных про-
грамм демонстрирует рис. 10.13.
В настоящий момент существует несколько прикладных программ, основанных
на системе кодирования MICLASS. К ним относятся такие системы технологи-
ческой подготовки производства, как MULTI-PLAN и Multi-CAPP.
Система DCLASS
Система конструктивных данных и классификации (Design and Classification
Information — DCLASS) была разработана Делом Алленом из Биргхэмского
Университета в образовательных и исследовательских целях. Хотя до настояще-
го времени она применялась главным образом в университетском мире, многие
компании используют ее для разработки прототипов. Структура этой системы
имеет вид дерева. Она позволяет кодировать детали, материалы, технологии,
станки и инструменты.
Код DCLASS для деталей состоит из восьми знаков, разделенных на пять сег-
ментов (рис. 10.14). Первый сегмент, состоящий из трех знаков, определяет ос-
новную форму детали. Этот сегмент определяется соответствующим оконечным
узлом логического дерева (рис. 10.15).
Рис. 10.14. Структура кода DCLASS
Один Без расточки
внешний--------------
диаметр
А00
Объемное
тело
Тело
вращения
Строго
цилиндрическая
С расточкой
-------------Схема 1
Круглое
Неск.
внешних
Деметр. |3ибОЛее
Непрер. изм.
внеш, диаметр _
---------------Схема 2
2 диаметра Схема 1
диаметров - .
—---------Схема 1
Комбинации
Круглое с
отклонениями _
-------------Схема 4
Со строго
цилиндрической
частью
Классификация
семейств
деталей
Основная
форма
Круглое с
криволинейной
осью .
------------Схема 4
Без строго
цилиндрической
части
Схема 3
Схема 3
Особенности
Диапазон
размеров
Чертеж формы
Без
вращательной
|симметрии Схема5
Схема 6
Схема 6
Схема 4
Класс точности л
--------------Схема 6
Рис. 10.15. Логическое дерево системы DCLASS
10.5. Системы управления данными о продуктах
325
Диаграммы 1, 3, 4, 5 и 6 хранят расширения логического дерева. Второй сег-
мент кода (четвертый знак) определяет сложность детали. Его значение опре-
деляется количеством особых элементов, требований к тепловой обработке и
доводке поверхностей. Третий сегмент (пятый знак) задает общий размер дета-
ли. Четвертый сегмент (шестой знак) задает точность изготовления. Последние
два знака кодируют тип материала и организуются в логическое дерево, подоб-
ное изображенному на рис. 10.15. Подробные сведения об этом вы можете най-
ти в книге [15].
10.5. Системы управления данными
о продуктах
В предыдущем разделе мы рассказали о технологической подготовке производ-
ства — ключевом элементе, без которого невозможна интеграция CAD и САМ.
Однако цикл разработки продукта (см. главу 1) включает в себя не только про-
ектирование и производство, но и анализ, контроль качества, упаковку, доставку
и маркетинг. Цель компьютеризации состоит в том, чтобы интегрировать все эти
виды деятельности посредством общей базы данных, поэтому существует по-
требность в механизме передачи информации между ними.
Если рассматривать ситуацию в динамике, маркетинговые концепции должны
передаваться в отдел планирования продуктов и в группу проектирования. Груп-
па проектирования взаимодействует с производственным отделом и группой
поддержки. Сведения об обнаруженных проблемах возвращаются в отделы про-
ектирования и производства. Сведения о продажах и проектах передаются по-
ставщикам и партнерам. Данные о расходах обрабатывает бухгалтерия. Все эти
виды деятельности тесно связаны друг с другом, поэтому изменения в содержании
или состоянии проекта должны быть доступны всем участникам во избежание
дорогостоящих ошибок. Объем технических данных по мере разработки чрез-
вычайно возрастает, из-за чего просмотр и поиск по базе данных становятся край-
не неэффективными. К счастью, существуют программные пакеты, называемые
системами управления данными о продуктах (product data management — PDM).
Системы PDM упрощают передачу данных между отделами. Использование та-
кой системы улучшает взаимодействие и повышает эффективность управления
проектами.
Системы PDM были разработаны для управления огромными объемами элек-
тронных данных, создаваемых системами CAD, САМ и САЕ. Инженеры страда-
ли от переизбытка данных и тратили слишком много времени на поиск инфор-
мации. Важность PDM особенно возросла, когда детали стали разрабатываться в
разных CAD. Собственная система управления, встроенная в программу CAD,
могла достаточно эффективно работать с чертежами и моделями, созданными в
этой конкретной программе, по чаще всего оказывалась неспособной взаимодей-
ствовать с другими программами CAD или продуктами третьих фирм. Системы
PDM, связанные со множеством различных пакетов приложений, лучше справ-
ляются с управлением данными в масштабе предприятия. Вдобавок PDM облег-
чают доступ к вспомогательным данным: номерам деталей, техническим требо-
ваниям, результатам тестов и анализов.
JXU
Глава 10. Интеграция CAD и САМ
Затем возможности PDM были расширены. К ним добавилась поддержка проек-
тирования путем автоматизированной маршрутизации документации на этапе
корректирования. Безбумажный документооборот сократил длительность цикла
разработки продукта. Появилась возможность выделять важные данные и отсле-
живать историю каждого продукта и его компонентов вместе со всеми данными
по различным версиям и модификациям продуктов. Вскоре область применения
PDM была еще более расширена, охватив не только проектирование и разработ-
ку, но и отделы продаж, производства и поддержки [51].
В последнее время системы PDM стали еще более популярны благодаря разви-
тию Интернета, Web и интрасетей. Вообще говоря, практически все производи-
тели PDM рекламируют поддержку работы с Web, а веб-технологии действуют
как катализатор внедрения PDM в новые корпорации. Концепция Web стала по-
пулярной благодаря универсальности, дешевизне и доступности, а также аппа-
ратной независимости. Самым большим препятствием на пути к широкому при-
знанию PDM были трудности с доступом у конечных пользователей. Web
решает эту проблему, предоставляя простой и универсальный интерфейс поль-
зователя при очень низких затратах на поддержку [116]. Благодаря поддержке
веб-технологий PDM стали играть ключевую роль в обеспечении доступа к акту-
альной информации множеству групп. PDM обеспечивает согласованность дан-
ных и управляет документооборотом, гарантируя доставку информации адреса-
ту в самое подходящее для принятия решений время.
Вопросы и задачи
1. Назовите различия модифицированного и генеративного подходов к техноло-
гической подготовке производства.
2. Для производства прямозубого цилиндрического зубчатого колеса из прутко-
вой заготовки требуется выполнить следующие операции:
1) Подрезать торец.
2) Обточить внешний диаметр.
3) Снять деталь.
4) Подрезать второй торец.
5) Расточить внутреннее отверстие.
6) При необходимости выполнить операцию сверления.
7) Нарезать направляющие.
8) Вырезать зубцы.
Приведите альтернативные технологические планы производства.
3. Запишите последовательность производственных операций, требующихся
Для изготовления изображенной ниже детали на токарно-фрезерном станке с
ЧПУ. Элементы детали, получаемые в ходе каждой операции, обозначайте
буквами.
Вопросы и задачи
327
4. Запишите последовательность производственных операций для детали из за-
дачи 3 при условии отсутствия автоматизированного токарно-фрезерного
станка (то есть операции должны выполняться вручную).
5. Опишите сходства и различия моноаспектпого, многоаспектного и смешанно-
го кодов Приведите примеры.
6. Предположим, что код состоит из восьми символов, каждый из которых мо-
жет принимать значения 0-9. Сколько взаимоисключающих характеристик
может быть представлено таким кодом, если он является моноаспектным? Ка-
ким будет о твет для многоаспектного кода?
7. Определите код формы приведенной ниже детали в системе Опитца (первые
пять знаков).
8. Определите код формы изображенной ниже детали в системе Опитца (пер-
вые пять знаков)
328
Глава 10. Интеграция CAD и САМ
9. Определите код изображенной ниже детали в системе Vuoso-Praha. Матери-
ал — обычная сталь.
Глава 11
Числовое программное управление
В главе 10 мы показали, что для интеграции проектирования и производства без
вмешательства человека необходима компьютеризация технологической подго-
товки. Компьютер должен осуществлять выбор станков для производства дета-
лей, выбор оптимальной последовательности операций на этих станках, оценку
времени на настройку и изготовление, планирование производства и определе-
ние требований к оборудованию и исходным материалам. Однако одной автома-
тизированной технологической подготовки недостаточно для автоматизации
производства, если компьютер не сможет управлять самими станками без уча-
стия человека. Это реализуется добавлением числового программного управле-
ния к обычным станочным системам.
Числовым программным управлением (numerical control — NC) называют исполь-
зование закодированной в числовом виде информации при автоматическом
управлении позиционированием оборудования. Пошаговая программа изготов-
ления детали сохраняется в памяти компьютера. Эта программа считывается
системой управления станка, в результате чего деталь изготавливается автома-
тически без участия человека. Числовое управление может использоваться для
задания положения резца или движения детали относительно вращающегося диска,
а также для замены резцов. Размещение электронных компонентов и закрепле-
ние их на печатной плате также может управляться численно. В этой главе мы
сосредоточим внимание на числовом управлении станков. В главе 12 мы опишем
процесс послойного накопления материала для образования конечной формы и
коротко рассмотрим различные средства быстрого прототипирования, также ос-
нованные на числовом программном управлении.
11.1. Введение
В конце 40-х гг. прошлого века американец по имени Джон Парсонс приду-
мал метод изготовления гладких профилей (таких, например, как профили сече-
ний крыльев самолетов). Его метод заключался в записи положений центров
большого количества отверстий, аппроксимирующих нужную форму, на перфо-
карты. Перфокарты подавались в станок, и записанные на них данные использо-
вались для управления резцом. Полученный соединением множества отверстий
профиль сглаживался до желаемой кривой. До этого изобретения вся металлоре-
жущая промышленность США не могла удовлетворить нужды даже одних ВВС
США. Военные были так обрадованы идеей Парсонса, что заключили контракт
с его корпорацией на дальнейшую разработку управляющих систем. В 1951 г.
корпорация Парсонса заключила субконтракт с лабораторией сервомеханизмов
v
I лава 11, Числовое программное управление
Массачусетского Технологического института (Massachusetts Institute of Tech-
nology — MIT). В 1952 г. модифицированный фрезеровальный станок Cincinnati
Hydrotel с тремя степенями свободы был продемонстрирован заказчику, и с тех
пор в обиход вошел новый термин — числовое программное управление. Опре-
деление ЧПУ, предлагаемое ассоциацией электронной промышленности (EIA),
звучит так:
В системе с числовым программным управлением действия должны управляться
непосредственным вводом числовых данных. Система должна автоматически ин-
терпретировать хотя бы часть этих данных.
Числовые данные, необходимые для изготовления детали, предоставляются
станку в форме программы, называемой программой обработки деталей (part
program). Эта программа представляет собой набор операторов, которые могут
интерпретироваться управляющей системой станка и преобразовываться в сиг-
налы, перемещающие шпиндели и приводы. Программа содержит геометриче-
скую информацию о детали и данные о перемещении резца по отношению к за-
готовке. В программе также указываются скорость резания, скорость подачи и
дополнительные параметры, такие как состояние системы охлаждения и направ-
ление шпинделя. Готовая программа должна давать результат, отвечающий до-
пускам и требованиям к шероховатости поверхностей.
При работе с типичными станками с ЧПУ, то есть автоматизированными станка-
ми, использующими технологию числового управления, программа обработки
деталей подготавливается программистами и вводится в контроллер станка. Раз-
работчики программ обработки деталей обычно пользуются сведениями о сред-
ствах производства, обладают знаниями в областях программирования и геомет-
рического анализа. В настоящее время нагрузка на программиста стала гораздо
меньше, чем раньше, потому что программа обработки деталей может состав-
ляться программным обеспечением непосредственно на основании базы данных
CAD.
В этой главе мы рассмотрим три метода подготовки программы обработки дета-
лей: ручной, автоматизированный и компьютеризованный (последний состоит в
построении программы непосредственно по базе данных CAD). Однако сначала
нам придется изучить основы станочных систем и их функционирования.
11.2. Аппаратная конфигурация станка с ЧПУ
Типичная станочная система с числовым программным управлением состоит из
блока управления станком (machine-control unit — MCU) и собственно станка
(рис. 11.1). MCU, выполняющий функции «мозга» станочной системы, считы-
вает программу обработки деталей и управляет работой станка Эти операции
выполняются двумя отдельными модулями MCU: модулем обработки данных
(data processing unit — DPU) и замкнутой системой автоматического регулирова-
ния (control loop unit — CLU). Модуль DPU считывает программу обработки де-
тали с ленты или иного носителя, декодирует операторы, обрабатывает декоди-
рованную информацию и передает в модуль CLU сведения о положении по
каждой из осей станка, направлении движения, подаче и дополнительных управ-
ляющих сигналах. Ось, или степень свободы (axis) станка, определяется как на-
11.2. Аппаратная кон игурация станке с 411У
ЭЭХ
правление относительного движения режущего инструмента и заготовки. Осей у
станка может быть несколько. Модуль CLU принимает данные от DPU и преоб-
разует их в управляющие сигналы. Он управляет приводными механизмами
станка, принимает сигналы обратной связи, несущие информацию о реальном
положении и скорости по каждой из осей, а также требует от DPU считать сле-
дующие инструкции из программы обработки детали, когда выполнение очеред-
ной операции завершается.
Рис. 11.1. Схема станка с ЧПУ
DPU состоит из устройства ввода данных (такого как, например, устройство
считывания с перфоленты), цепи чтения данных и декодирующих цепей, опреде-
ляющих требуемые смещения по осям. В станочных системах первого и второго
поколений DPU снабжался устройством чтения с перфокарт (рис. 11.2), на кото-
рых тогда записывались программы.
0.392 ± 0.004
до протяжного
отверстия
Нумерация
отверстий
54
8
1.000 ±0.003
Ширина ленты
Если лента направляется
по краю, используется этот край
Направление
протяжки
Кумулятивная ошибка4^
до ± 0.01 на 1"
до ± 0.025 на 5"
0.1 ±0.003
Круглые отверстия (кодовые) 0.072 ± 0.002 diam
До протяжного отверстия 0.046 + 0.002
-0.001
Толщина 0.004 + 0 0003
- 0 0007
0.100 ±0.002
Расстояние между
центрами соседних
отверстий
Рис. 11.2. Перфолента
Отверстия, используемые
в процессе перфорации.
В коде не учитываются
CLU состоит из интерполятора, цепей контроля положений по всем осям, цепей
контроля скоростей, цепей торможения и выбора люфта, а также устройств кон-
троля дополнительных функций. Интерполятор обеспечивает выработку команд
для промежуточных точек в процессе движения резца. Цепи контроля поло-
жений управляют положением резна по соответствующим осям. Цепи контроля
скорости используются в том случае, когда требуется регулирование скорости
подачи. Устройства контроля дополнительных функций решают такие задачи,
как включение и выключение охлаждения, смена передачи и подача бабки.
11.3. Типы систем ЧПУ
Контроллеры ЧПУ делятся на две основные категории: системы позиционного
регулирования (point-to-point или FTP) и устройства контурного управления
(contouring). Контроллер типа FTP используется в том случае, когда траектория
движения инструмента относительно детали не имеет значения, например, если
инструмент не касается детали при перемещении от одной точки к другой. Чаще
всего такая ситуация имеет место при сверлении, пробивании, нарезке резьбы
и установке компонентов на печатной плате. Позиционное регулирование реали-
зуется достаточно просто, а потому станок с таким контроллером стоит недоро-
го. Он может выполнять и простые фрезеровальные операции, если снабдить его
механизмом контроля скорости подачи при перемещении от одной точки к дру-
гой. Такой станок можно использовать для фрезерования пазов.
Устройство контурного управления используется в тех случаях, когда важна
траектория движения инструмента относительно детали: на фрезеровальных
и токарных станках, газовых резаках, сварочных установках и шлифовальных
станках. В таких устройствах требуется одновременное управление по двум и бо-
лее осям, причем скорость по каждой оси может задаваться независимо. Напри-
мер, инструмент может двигаться по любой траектории в плоскости ху, если сис-
тема будет управлять соотношением компонент скорости vx и vy. Таким образом,
контроллер ЧПУ может обеспечивать, например, движение по окружности при
задании центра, радиуса и конечных точек дуги.
11.4. Системы NC, CNC, DNC
Станки с ЧПУ первого и второго поколений, работавшие на лампах и твердо-
тельных цепях, считывали программу исключительно с перфолент. В то время
не было возможности хранить программу в MCU, а обрабатывать команды этот
блок мог только по одной. Станки такого класса называются станками с ЧПУ
типа NC, или просто станками с ЧПУ.
Управляющие цепи станков третьего поколения собирались на интегральных
схемах, к которым добавлялись блоки памяти. Технологии, широко использо-
вавшиеся в компьютерной технике, позволили в 1970 г. создать контроллер в его
современном виде. Станок с таким контроллером называется компьютеризован-
ным (computer numerical control — CNC). Благодаря наличию блока памяти MCU
требует лишь однократной загрузки программы. Сохраненная в компьютере про-
грамма может быть вызвана для дальнейшего использования без необходимости
повторного считывания для каждой детали из партии, как это было в системах с
ЧПУ типа NC. Наличие компьютерного интерфейса, кроме того, позволяет об-
мениваться данными между блоками интегрированных систем. Например, CNC
может взаимодействовать с другими модулями: роботами и автоматизированны-
ми станками.
11.4. Системы NC, CNC, DNC
333
Позднее к станкам были добавлены индикаторные дисплеи, обеспечивающие
возможность диагностики и анализа, а также упрощающие редактирование про-
грамм обработки деталей. Более сложные станки могут наглядно отображать
траекторию движения инструмента. Пример дисплея типичного контроллера
типа CNC приведен на рис. 11.3. Современный контроллер CNC напоминает
персональный компьютер. На самом деле он вполне может считаться специали-
зированным компьютером, предназначенным для управления станками. Помимо
процессора и ПЗУ (ROM) в контроллере имеется ОЗУ (RAM), жесткий диск,
коммуникационные порты, клавиатура, дисплей, а иногда и графическое устрой-
ство ввода — мышь, трекбол или сенсорный экран. В последнее время стали вы-
пускаться контроллеры на базе персональных компьютеров, отличающиеся от
обычных компьютеров только наличием специальной платы сервоконтроллера.
Рис. 11.3. Экран контроллера типа CNC
Наличие ПЗУ позволяет использовать запрограммированные последовательно-
сти команд, называемые фиксированными циклами (canned cycles). Они могут быть
определены как стандартные подпрограммы и храниться в библиотеке станка.
Любая программа может вызывать и использовать любую подпрограмму при по-
мощи специального кода. Слово «фиксированный» указывает на то, что подпро-
грамма хранится в постоянной памяти, а «циклом» она называется из-за повтор-
ного характера обращений [166]. Типичными примерами фиксированных циклов
являются подпрограммы сверления, нарезания внутренней резьбы, расточки
и нарезания внешней резьбы.
ЧПУ типа DNC (Direct Numerical Control) представляет собой систему производ-
ства, состоящую из центрального компьютера, управляющего несколькими стан-
ками одновременно (рис. 11.4). Управляющий компьютер получает данные об
обрабатываемой детали либо из собственного устройства хранения, либо из
внешнего источника. Он пересылает блоки команд станкам, осуществляющим
фактическое производство детали. Эта технология полностью основывается на
взаимодействии центрального компьютера со станками.
334
Глава 11. числовое программное управление
Прямое (direct) числовое управление впоследствии было заменено распределен-
ным (distributed), которое заключается в том, что центральный компьютер полно-
стью загружает на станки с ЧПУ типа CNC программы обработки соответствую-
щих деталей. Эти станки могут хранить в собственной памяти одну или даже
несколько программ, и потому не зависят от центрального компьютера. Аббре-
виатура DNC использовалась для обозначения обоих типов систем, однако со
временем стала подразумевать именно распределенное управление, поскольку
популярность его сильно возросла. В состав некоторых систем DNC включаются
компьютеры-сателлиты (обычно рабочие станции или персональные компьюте-
ры), по одному на каждый станок. Это увеличивает быстродействие системы в
целом, позволяет работать с большими файлами и объединять в сеть большее ко-
личество станков (рис. 11.5). На компьютеры-сателлиты часто устанавливается
программное обеспечение для предоставления отчетов о работе станков на цен-
тральный компьютер, что упрощает управление цехом.
Рис. 11.5. Схема распределенного числового управления
11.5. Основы составления программ обработки деталей 5
11.5. Основы составления программ
обработки деталей
Программа обработки деталей содержит сведения о геометрической форме дета-
ли и о перемещениях резца относительно заготовки. Следовательно, программист
должен каким-то образом сформулировать эти сведения и записать их. Описа-
ние геометрии и перемещений требует, в первую очередь, задания системы коор-
динат. Если система координат программиста отличается от основной системы
координат станка, деталь получится неправильной. Поэтому программист дол-
жен всегда проверять ориентацию системы координат, в которой задается траек-
тория движения резца. Если траектория строится по данным из базы CAD, система
координат модели или чертежа должна быть полностью идентичной системе ко-
ординат станка. В следующем разделе будет рассказываться о стандартных сис-
темах координат станков. Поскольку программа обработки детали имеет свой
собственный синтаксис и семантику, мы опишем также формат команд или бло-
ков1, как их еще называют, а также синтаксис и значение слов каждого блока.
11.5.1. Системы координат
Относительное перемещение инструмента и заготовки осуществляется посредст-
вом направляющих станка. Три основные оси перемещения называются осями х,
у и z и образуют правую систему координат. Положительные направления осей
обычно определяются производителем станка. По общему соглашению положи-
тельное направление оси 2 соответствует удалению инструмента от заготовки.
□ Ось г. На станках, подобных токарному, где деталь вращается во время ее об-
работки, ось 2 направляется параллельно шпинделю, а движение вдоль этой
оси в положительном направлении удаляет инструмент от заготовки
(рис. 11.6). Если же вращается не деталь, а инструмент, как на фрезероваль-
ном, сверлильном и расточном станках, ось 2 выбирается параллельной оси
инструмента. Как и у станков с вращающейся заготовкой, движение вдоль
оси z в положительном направлении удаляет инструмент от заготовки
(рис. 11.7 и 11.8). В прочих станках, к которым относятся прессы, строгаль-
ный и стригальный станки, ось z направляется перпендикулярно набору ин-
струментов.
□ Ось х. В станках с вращающейся деталью за ось х принимается направление
перемещения инструмента (резца), а движение вдоль этой оси в положитель-
ном направлении удаляет инструмент от заготовки (рис. 11.6). На вертикаль-
ных фрезеровальном и сверлильном станках положительное направление оси
х соответствует направлению правой руки оператора, стоящего лицом к стан-
ку (рис. 11.7). На горизонтальном фрезеровальном станке ось х направляется
параллельно столу (рис. 11.8).
□ Ось у. Направление оси у выбирается исходя из направлений осей х и z в со-
ответствии с правилом правой руки.
1 Блоком называется строка слов программы обработки детали. Каждый блок состоит из
нескольких команд (см. раздел 11.5.2).
Глава 11. Числовое программное управление
Рис. 11.6. Система координат токарного станка
Рис. 11.7. Система координат вертикального Рис. 11.8. Система координат
сверлильного станка горизонтального фрезерного станка
У некоторых станков степеней свободы может быть больше трех; лишние степе-
ни свободы называются дополнительными и обозначаются и, v и w. Могут также
существовать вращательные оси, параллельные осям х, у и z; такие оси обознача-
ются а, Ь и с. Приведенные названия осей соответствуют стандартам EIA.
Н
11.5. Основы составления программ обработки деталей
ЛЛ1
По общему соглашению станки классифицируются в соответствии с количест-
вом координат, необходимых для задания положения и ориентации резца. На-
пример, фрезеровальный станок может иметь 2, 3 или 5 осей в соответствии с
тем, сколько координат могут одновременно задаваться контроллером. Другими
словами, если контроллер может одновременно перемещать резец лишь по двум
осям, станок называется двухосевым, или имеющим две степени свободы. В этом
случае инструмент может независимо перемещаться вдоль третьей оси. Если у
станка имеется три степени свободы, инструмент может перемещаться по произ-
вольной кривой в трехмерном пространстве, но не может изменять ориентацию.
Если же требуется изменение ориентации резца одновременно с перемещением
его в пространстве, станок должен иметь большее количество степеней свободы.
В продаже встречаются станки, имеющие до девяти степеней свободы.
11.5.2. Синтаксис программы обработки
Для написания программ обработки деталей используются различные форматы
представления информации. Сама программа обработки обычно разрабатывается
в соответствии с достаточно хорошо определенным синтаксисом, незначитель-
ные отклонения от которого могут быть связаны с особенностями конкретных
контроллеров. Контроллер считывает инструкции в виде последовательности бло-
ков, содержащих команды на установку параметров, скоростей по осям, а также
на выполнение иных операций. Блоком называется строка слов программы обра-
ботки. Каждая команда обозначается буквой, за которой следует определенное
число. Принято использовать следующие идентификаторы команд (коды).
□ Последовательный номер (N). Последовательный номер используется для обо-
значения блоков программы и позволяет быстро находить нужные команды.
□ Предварительная команда (G). Предварительные команды готовят MCU к
какой-либо операции, обычно связанной с перемещением резца. Поскольку
движение резца во многом определяется именно G-кодом, программы на пер-
фокартах часто называли G-кодами. Описанные в стандарте EIA RS-273 G-
коды приведены в табл. 11.1. Однако многие контроллеры не соответствуют
этому стандарту, поэтому один и тот же G-код на разных контроллерах может
иметь разные значения.
□ Координаты (X, Y,Z,An В). В этих словах передаются сведения о положении
резца и его ориентации. Если число степеней свободы превышает три, ис-
пользуются дополнительные слова, например А и В. Значения координат вы-
ражаются целыми числами. Единица измерения называется базовой единицей
длины (basic length unit — BLU) и определяет разрешение системы позицио-
нирования по данной оси перемещения. Необходимое количество шагов по
какой-либо оси определяется делением реального расстояния на величину
BLU. Например, чтобы переместиться на 0,5 дюйма в положительном направ-
лении оси у в системе, где BLU = 0,001 дюйма, нужно сделать 500 шагов.
В программе это может быть записано следующим выраженим: Y + 500 В со-
временных системах CNC достаточно просто написать Y0.5, не заботясь ни
о каких базовых единицах. По наличию плавающей точки контроллер само-
стоятельно определит, в каких единицах задана длина (базовых или реаль-
ных).
JJU
Глава 11. Числовое программное управление
□ Подача (F). Код F задает скорость подачи резца. По соглашению эта скорость
измеряется в дюймах в минуту.
□ Скорость (5). Задает скорость вращения шпинделя. Измеряется в оборотах
в минуту.
□ Выбор инструмента (Т). Код Т задает инструмент, который будет использо-
ван в конкретной операции. Этот код нужен только для станков с устройст-
вом автоматической смены инструментов.
□ Прочие команды (Л/). Этот код используется для определения конкретного
режима работы, например включения или выключения охлаждения, враще-
ния шпинделя и т. д. Возможные значения (согласно стандарту EIA RS-273)
приведены в табл. 11.2.
Команды объединяются в блоки, которые могут иметь один из нескольких фор-
матов.
□ Фиксированный последовательный формат. Все блоки должны быть одинако-
вой длины и содержать одинаковое количество символов. Поскольку длина
блока постоянна, он должен быть заполнен командами, даже если они будут
лишними.
□ Формат блочной адресации. Устраняет избыточность информации в последо-
вательных блоках при помощи кодов изменений. Код изменений следует не-
посредственно за номером блока и указывает значения, изменившиеся по
сравнению с предшествующими блоками.
□ Табулированный последовательный формат. Представляет собой модифика-
цию фиксированного последовательного формата, допускающую изменение
длины блоков. Перед каждым словом и после него вставляется символ табу-
ляции (TAB), а конец каждого блока отмечается символом конца блока (ЕОВ).
Слова, значения которых не изменились, можно пропускать, но вместо про-
пущенных слов необходимо вставлять символ TAB. В результате получаются
последовательности символов табуляции. Блок может быть завершен симво-
лом ЕОВ, как только будут перечислены все слова, нужные для описания со-
ответствующих операций.
□ Формат пословной адресации. Это наиболее популярный формат, используе-
мый в современных контроллерах CNC. Каждое слово блока начинается с бу-
квы, обозначающей его тип, за которой следует значение, представляющее со-
бой содержимое слова. Стандартная последовательность слов блока имеет
следующий вид:
N_. G_. Х_. Y_. Z_, J_. K_. F_. S_. T_. M_.
где
ON — идентификатор блока;
О G — предварительные команды (табл. 11.1);
О X, Y. Z — координаты по соответствующим осям;
О I, J, К - координаты центра дуги при движении резца по окружности
(обычно со знаком);
OF — скорость подачи;
11.5. Основы составления программ обработки деталей
339
OS — скорость шпинделя;
ОТ — номер инструмента;
ОМ — вспомогательные команды (табл. 11.2).
Ниже приведен пример кода в формате пословной адресации:
N040 G00 ХО YO Z300 TCI М06
Пропущенные слова считаются нулевыми либо не претерпевшими изменений по
сравнению с предыдущими значениями. В нашем примере были пропущены сло-
ва F и S.
Таблица 11.1. Предварительные команды
Код Функция Пояснения
gOO Задание точки, пози- ционирование Используется в комбинированных системах для описа- ния операций позиционирования
gOl Линейная интерполя- ция (нормальные еди- ницы) Режим контурного управления, используемый для фор- мирования скосов и прямых разрезов, где приращения измеряются в нормальных единицах (входное разреше- ние соответствует указанному)
g02 Интерполяция дуги ок- ружности по часовой стрелке (нормальные единицы) Режим контурного управления, позволяющий получить дугу окружности согласованным изменением двух ко- ординат. Направление дуги (по или против часовой стрелки) определяется при взгляде на плоскость, со- держащую дугу, в отрицательном направлении перпен- дикулярной к ней оси. Расстояния до центра дуги ука- зываются в нормальных единицах (i,j, k)
g03 Интерполяция дуги ок- ружности против часо- вой стрелки (нормальные единицы)
g04 Остановка Запрограммированная (или установленная) временная задержка, во время которой резец и деталь неподвижны. Продолжительность задержки определяется другим словом (обычно кодом F). Координаты должны быть ус- тановлены в 0
g05 Пауза Работа станка приостанавливается до того момента, ко- гда оператор или какая-либо блокировка выведут его из этого состояния
g06 Параболическая интер- поляция (нормальные единицы) Режим контурного управления, предназначенный для формирования параболических поверхностей
g08 Ускорение Скорость подачи (скорость по соответствующей оси) плавно увеличивается (обычно по экспоненциальному закону) до заданного в том же блоке значения
g09 Торможение Скорость подачи плавно сокращается (обычно по экспо- ненциальному закону) до заданного в том же блоке зна- чения
glO Линейная интерполя- ция (увеличенные еди- ницы) Аналог gOl за тем исключением, что единицы измере- ния увеличиваются в 10 раз. Значение 9874 приведет к перемещению на 98 740 базовых единиц длины. Исполь- зуется только при кодировании приращений
340
Глава 11. Числовое программное управление
L
Код Функция Пояснения
gll Линейная интерполя- ция (сокращенные еди- ницы) То же, что gOl, но все координаты делятся на 10. В пре- дыдущем примере получилось бы 987 BLU
g!3 gl4 gl5 g16 Выбор оси Используется для выбора конкретной оси или осей, по которым будет осуществляться перемещение. Применя- ется в системах, не позволяющих одновременно мани- пулировать всеми степенями свободы
gl7 Выбор плоскости XY Используются для выбора плоскости, в которой будет
gl8 Выбор плоскости ZX осуществляться интерполяция или коррекция на режу- щий инструмент
gl9 Выбор плоскости YZ
g20 Интерполяция дуги ок- ружности по часовой стрелке (увел, ед.) То же, что g02, но с увеличенными единицами
g21 Интерполяция дуги ок- ружности по часовой стрелке (сокр. ед.) То же, что g02, но с сокращенными единицами
g30 Интерполяция дуги ок- ружности против часо- вой стрелки (увел, ед.) То же. что g03, но с увеличенными единицами
g3i Интерполяция дуги ок- ружности против часо- вой стрелки (сокр. ед.) То же, что g03, но с сокращенными единицами
g33 Нарезка резьбы с по- стоянным шагом Выбор соответствующего режима для станков, оборудо- ванных для нарезки резьбы
g34 Нарезка резьбы с уве- личивающимся шагом То же, что g33, но с постоянно увеличивающимся шагом резьбы
g35 Нарезка резьбы с уменьшающимся ша- гом То же, что g33, но с постоянно уменьшающимся шагом
g40 Отмена коррекции на режущий инструмент Команда отключает действующую коррекцию на режу- щий инструмент
g41 Коррекция на режущий инструмент — слева Смещение по нормали к траектории движения резца при условии, что последний находится слева от обра- батываемой поверхности, если смотреть в направлении его движения
g42 Коррекция на режущий инструмент — справа Коррекция при условии, что режущий инструмент нахо- дится справа от обрабатываемой поверхности
g43~ g49 Коррекция на режущий инструмент или коды не определены Коррекция используется для устранения различий меж- ду реальными и запрограммированными радиусами и диаметрами разрезов
g60- g79 Зарезервированы для систем с позициониро- ванием Используются только в системах позиционного регули- рования
Код Функция Пояснения
g80 Отмена фиксированно- го цикла Команда приводит к отмене выполнения фиксирован- ного цикла
g81- g89 Фиксированные циклы № 1-9 Запрограммированные последовательности команд, описывающие операции, подобные сверлению или рас- точке
g90 Программирование в абсолютных коорди- натах Режим управления, в котором все координаты рассмат- риваются как абсолютные. Используется в комбиниро- ванных системах, поддерживающих как абсолютные координаты, так и приращения
g91 Программирование в относительных коорди- натах (приращениях) Режим управления, в котором вводимые координаты рассматриваются как приращения
Таблица 11.2. Вспомогательные команды
Код Функция Пояснения
тОО Остановка программы Остановка шпинделя, охлаждения и подачи после за- вершения блока команд. Для продолжения выполнения программы необходимо нажать кнопку
тО1 Запланированная оста- новка (по требованию) Аналогично тОО, но выполняется только в том случае, если оператор предварительно нажал соответствующую кнопку, в противном случае команда игнорируется
т02 Конец программы Завершение обработки детали. Остановка шпинделя, охлаждения и подачи после завершения выполнения всех инструкций блока. Может также подразумевать пе- ремотку лепты на начало
тОЗ Шпиндель по часовой стрелке Запуск вращения шпинделя по часовой стрелке
т04 Шпиндель против ча- совой стрелки Запуск вращения шпинделя против часовой стрелки
т05 Шпиндель выключить Останавливает вращение шпинделя и отключает подачу охладителя
т06 Смена инструмента Остановка для автоматической или ручной смены инст- румента
т07 Охладитель № 2 вклю- чить Включает охлаждающую жидкость
т08 Охладитель Ng 1 вклю- чить Включает распыление охладителя
т09 Охладитель выключить Автоматически отключает подачу охладителя
т10 Блокировка Автоматически блокирует суппорт, деталь, зажимы, шпиндель и т. д. (в зависимости от модели станка)
mil Разблокировка Команда разблокировки
Код Функция Пояснения
т13 Шпиндель по часовой стрелке, охлаждение включить Объединенная команда па включение вращения шпин- деля и подачи охладителя
т14 Шпиндель против ча- совой стрелки, охлаж- дение включить
ш15 Движение + Быстрое перемещение или подача в положительном или отрицательном направлениях
т16 Движение -
ml9 Остановка шпинделя с ориентацией Остановка шпинделя в заранее заданном угловом поло- жении
тЗО Конец ленты Аналог т02 за тем исключением, что эта команда требу- ет обязательной перемотки лепты на символ конца пере- мотки, что подготавливает систему к обработке следующей детали
т31 Обход блокировки Временно отключает нормальные блокировки
т32- т35 Постоянная скорость резания Контроллер поддерживает постоянную скорость реза- ния, изменяя скорость вращения детали обратно про- порционально расстоянию от кончика резца до оси вращения. Обычно используется па токарных станках
т40- т50 Переключение передач или коды не использу- ются
11.6. Составление программ вручную
Составление программы вручную подразумевает, что программист без всякой
помощи со стороны компьютера записывает блоки программы на рукописном
бланке (рис. 11.9). Затем с помощью флексорайтера (Flexowriter) из этого блан-
ка одновременно получают набранный текст и перфоленту. Каждая строка руко-
писного бланка эквивалентна блоку перфоленты и заканчивается символом кон-
ца блока (ЕОВ).
Сложность программирования вручную заключается в том, что программа опи-
сывает траекторию движения инструмента, а не геометрию детали. В контурном
регулировании это означает, что координаты задают положение центра резца, а
не положение точек реального контура детали. Программист может воспользо-
ваться функцией коррекции на режущий инструмент {cutter compensation), что
позволит ему не вычислять координаты положения центра резца. Однако ему
все равно придется добавить дополнительные точки, соединяющие расчетные
траектории. Пример 11.1 иллюстрирует процесс составления программы обра-
ботки детали для станка с контурным регулированием.
11.6. Составление программ вручную
Part name Part number Sheet Remarks MANUSCRIPT CONTOURING PROGRAM Prepared by Date Checked by Date Machine Tape number
n g X У 2 i i k f s 1 m REMARKS
Рис. 11.9. Рукописный бланк программы обработки деталей
Пример 11.1
Вручную напишите программу обработки пластины, изображенной на рис. 11.10.
Размеры заданы в миллиметрах, а толщина заготовки — прямоугольной пласти-
ны — составляет 15 мм. Нижняя грань пластины характеризуется уравнением
2 = 0. Контроллер ЧПУ обладает следующими характеристиками.
□ Координаты задаются пятизначными числами. Разрешение (BLU) составляет
0,01 мм. Необходимо указывать как ведущие, так и завершающие нули. Если
координата не указывается явно, это означает, что по соответствующей оси
изменения положения не происходит.
□ Подача программируется непосредственно в миллиметрах в минуту или дюймах
в минуту при помощи трехзначных чисел. В нашем примере будет использо-
ваться постоянная скорость подачи 350 мм/мин и быстрая скорость подачи
950 мм/мин.
Рис. 11.10. Деталь, которую нужно обработать
□ Скорость шпинделя задается трехзначным «магическим» кодом. В этом при-
мере она будет составлять 1740 об/мин (соответствующее магическое чис-
ло — 717). Вычисление магического кода по заданной скорости приводится
в работе [91].
Решение
Обработка будет осуществляться резцом диаметром 10 мм. Изначально резец ус-
тановлен в начальной точке. Перемещение резца по пунктирным линиям в на-
правлениях, указанных стрелками, описывается следующими блоками команд.
1. Выбор режима относительных координат (а не абсолютных):
N001 G91 ЕОВ
2. Выбор метрических единиц:
N002 G71 ЕОВ
3. Установка резца диаметром 10 мм на 40 мм выше начальной точки:
N003 GOO ХО.О YO.O Z40.0 Т01 М06 ЕОВ
Обратите внимание, что здесь не используются базовые единицы длины.
4. Перемещение из начальной точки в Р1 программируется двумя блоками.
Первый блок описывает ускорение до скорости подачи 950 мм/мин. Во вто-
ром блоке резец приближается к точке Р1 со скоростью подачи 350 мм/мин.
В конце второго блока центр резца оказывается в точке Р1. Программа долж-
на также учесть необходимое перемещение по оси z, чтобы резец опустился
в нужном месте.
N004 GOl Х65.0 YO.O Z-40.0 F950 S717 МОЗ ЕОВ
N005 GOl ХЮ.О F350 М08 ВОВ
Команда МОЗ запускает вращение шпинделя, а М08 включает охлаждение.
5. Следующие два блока перемещают резец из Р1 в РЗ через Р2:
N006 GOl Х110.0 ЕОВ
N007 GOl Y70.0 ЕОВ
6. Координаты Р4 и Р5 вычисляются по рис. 11.11. Обозначив эти координа-
ты (Х4, У4) и (Х5, У5) соответственно, мы получим следующие соотношения:
Х4 -Х3 = —(55 — V152 -52) = -40,86;
^4-^=0;
Х5 -Х4 = -2-7152 -52 = -28,28;
У5-^=0;
/=-7152-52 =14,14;
7 = 5.
В приведенных выше уравнениях Х3 и У3 — координаты точки РЗ, zlvij — ко-
ординаты центра интерполируемой дуги (рис. 11.11).
Рис. 11.11. Расчет точек Р4 и Р5
55
Перемещение резца от РЗ к Р4 по прямой и от Р4 к Р5 по дуге окружности
(по часовой стрелке) описывается следующими программными блоками:
NOOB GOl Х-40.86 ЕОВ
N009 G02 Х-28.28 YO.O 114.14 J5.0 ЕОВ
Во втором блоке команда G02 активирует интерполяцию дуги по часовой
стрелке. Команды X и Y задают координаты конечной точки дуги (Р5) относи-
тельно начальной (Р4), а команды I и J определяют координаты центра дуги
также относительно начальной точки.
7. Обозначив координаты точек Р5 и Р6 символами (Х5, У5) и (Хс, У6) соответст-
венно, мы получим следующие соотношения:
Хе -Х5 = -(55 - V152 -52 ) = -40,86;
по-
следовательно, блоки, описывающие перемещение из точки Р5 в точку Р6, из
РбвР1иизР1в начальную точку, будут выглядеть следующим образом:
N010 G01 Х-40.86 ЕОВ
N011 GOl Y-70.0 ЕОВ
N012 GOl Х-75.0 YO.O Z40.0 F950 МЗО
Команда МЗО в последнем блоке отключает шпиндель и охлаждение, после
чего перематывает ленту к началу программы.
Пример 11.1 наглядно демонстрирует трудоемкость составления программ обра-
ботки деталей, требующего арифметических и тригонометрических расчетов, в
которых легко допустить ошибку. Частично процедуру можно упростить, вос-
пользовавшись некоторыми специальными функциями контроллеров.
□ Большинство систем CNC поддерживают функцию компенсации радиуса ре-
жущего инструмента. Это позволяет программировать непосредственно гео-
метрию детали, а не траекторию перемещения центра резца. Другими слова-
ми, программист определяет контуры объекта, а контроллер автоматически
вычисляет отступ с учетом радиуса инструмента и ведет режущий инстру-
мент по нужной траектории. Эта функция действует вместе с другой, которая
заключается в добавлении сегментов кривых или удлинении существующих
сегментов в тех случаях, когда участки траектории, построенные с учетом от-
ступов, не пересекаются. Добавление кривой демонстрирует рис. 11.12, о, до-
бавление отрезка прямой — рис. 11.12, б, а удлинение сегментов кривых —
рис. 11.12, в. Однако эти функции работают эффективно только с деталями
относительно простой геометрии.
Рис. 11.12. Достраивание траектории
□ Типовые операции обработки, содержащие повторяющиеся операции, хра-
нятся в виде фиксированных циклов, которые при необходимости могут вы-
зываться программой обработки детали. В некотором смысле эти циклы эк-
вивалентны библиотекам стандартных подпрограмм в обычных языках
программирования.
□ Кроме фиксированных циклов поддерживаются также определяемые пользо-
вателем последовательности команд, называемые макросами. Эти последова-
тельности могут циклически вызываться из программы, причем допускается
также изменение параметров, через которое макросам передаются численные
данные.
Совершенно очевидно, что для всех деталей, за исключением самых простых, ав-
томатизация могла бы значительно облегчить труд программиста по сравнению
с тем, который требуется при составлении программ обработки вручную.
11.7. Автоматизированное составление программ
Одной из альтернатив составлению программ обработки вручную является
использование языков программирования высокого уровня вместо кодов, не-
удобных для запоминания. Языки высокого уровня основаны на обычных анг-
лоязычных командах и удобных математических символах. Они могут интерпре-
тироваться персональными компьютерами. Программист, работающий с таким
языком, должен решать две задачи. Во-первых, он должен определить геометрию
детали в терминах базовых геометрических элементов, таких как точки, линии,
окружности и т. п. Во-вторых, он должен составить программу обработки детали
по этим элементам. Отступ автоматически вычисляется самой системой, причем
Делается это гораздо эффективнее, чем в ранних системах.
1. Программист определяет геометрию детали, общую траекторию движения рез-
ца, скорости подачи и вращения, а также параметры режущего инструмента.
2- Программист кодирует геометрию детали, траекторию движения резца и об-
щие инструкции станку на языке программирования. Получающийся в ре-
зультате код называется исходным (source). Одним из наиболее популярных
языков высокого уровня является язык APT {Automatically Programmed Tools),
подробный рассказ о котором вы найдете в следующем разделе.
3 Исходный код компилируется в машинно-независимый список элементарных
перемещений режущего инструмента и вспомогательных сведений об управ-
лении станком. Этот список называется файлом координат резца {cutter loca-
tion — CL data file). CL-файл имеет двоичный формат, но чаще всего
сопровождается эквивалентной текстовой версией. В этом файле содержатся
сведения о перемещениях режущего инструмента, представленные либо через
абсолютные линейные перемещения GOTO, либо через относительные пере-
мещения GODLTA1, вперемешку с которыми располагаются команды управле-
ния шпинделем, охлаждением, подачей и т. п. Формат CL-файла определен
Международной организацией по стандартизации (International Organization
for Standardization — ISO).
4. CL-файл обрабатывается постпроцессором, в результате чего получаются ко-
манды, предназначенные для управления конкретным станком. Они имеют
тот же формат, что и -блоки ЧПУ, которые записывались на перфоленту,
когда программы составлялись вручную. Поскольку разные контроллеры не
только используют файлы разных форматов, но и по-разному интерпретируют
некоторые коды G и М, постпроцессорами традиционно являлись специали-
зированные программы, рассчитанные на работу с конкретной комбинацией
контроллера и станка. Впрочем, форматы CL-файлов у разных языков про-
граммирования тоже разные.
Хотя автоматизированный подход к составлению программ обработки деталей
все еще используется на производстве, кодирование геометрии детали и траекто-
рии движения образца на языке высокого уровня в настоящее время постепенно
заменяется генерацией CL-файла непосредственно по модели CAD. Этот новей-
ший подход описан в разделе 11.8.
11.7.1. Язык APT
Языков высокого уровня, предназначенных для программирования станков с
ЧПУ, было разработано великое множество, но наиболее удобным и широко ис-
пользуемым оказался язык APT {Automatically Programmed Tool — Автоматически
программируемый инструмент). Первый прототип системы APT был разрабо-
тан в Массачусетском Технологическом институте (MIT) в 1956 г. В дальней-
шем программа развивалась совместными усилиями 21 компании, причем фи-
нансировались эти разработки Ассоциацией аэрокосмической промышленности
(Aerospace Industries Association — AIA). В результате в 1958 г. была создана сис-
тема APT II, а в 1961 г. ее сменила более эффективная APT III. Институт техно-
логических исследований штата Иллинойс (Illinois Institute of Technology Re-
search Institute — IITRI) стал направлять дальнейшее развитие программы.
Возможности APT непрерывно расширялись. Современные версии этого языка
могут управлять станками, имеющими до пяти степеней свободы. За долгие годы
своего существования язык APT породил множество производных языков.
1 GOTO и GODLTA — команды языка APT, означающие перемещение режущего инстру-
мента по отрезку прямой. Эти команды описаны в разделе 11.7.1.
•ЭНО
Глава 11. Числовое программное управление
Программа на APT состоит из операторов, которые объединяются в пять групп:
□ идентифицирующие операторы, задающие название детали и имя конкретно-
го постпроцессора;
□ геометрические операторы, определяющие существенные для операций ма-
шинной обработки геометрические особенности детали;
□ операторы перемещений, управляющие движением режущего инструмента
относительно геометрии детали;
□ операторы постпроцессора, задающие параметры обработки, такие как ско-
рость подачи, скорость вращения, включение или выключение охлаждения.
Эти параметры передаются в CL-файл в неизменном виде и интерпретируют-
ся постпроцессором;
□ дополнительные операторы, управляющие дополнительными функциями
станка, такими как выбор инструмента, установка допуска и т. п.
В последующих разделах мы расскажем о геометрических операторах и операто-
рах перемещений и приведем соответствующие примеры. Мы также рассмотрим
важные операторы других типов и изучим программирование макросов на APT.
Геометрические операторы
Общая форма геометрического оператора выглядит следующим образом:
символ = геометрия / описание
Символ — это название геометрического элемента, играющее ту же роль, что и имя
переменной в других языках высокого уровня. Название может быть длиной до
6 знаков и должно начинаться с буквы. Геометрия — слово, характеризующее тип
объекта (точка, отрезок, плоскость, окружность, конус, сфера, линейчатая поверх-
ность, табулированный цилиндр). Описание — численные данные, определяющие
данный объект. Эти данные могут ссылаться на названия других объектов или
включать слова низших уровней (в нижеследующем примере — INTOF), которые
указывают тип геометрического определения. В приведенном коде показано, каки-
ми способами определяются типичные геометрические слова. В этом и последую-
щих примерах будут использоваться только точки, отрезки, окружности и плос-
кости. Полное описание геометрических операторов можно найти в работе [15].
Существует много способов определить точку (рис. 11.13). В приведенном ниже
коде комментарии даются после точки с запятой; в реальных программах на APT
они не используются.
Pl = POINT/X. Y. Z
Р2 = POINT/L1. L2; точка пересечения ранее определенных отрезков
РЗ = POINT/CENTER. С1 центр окружности
Р4 = POINT/YLARGE. INTOF. LI. С1: точка пересечения пряной и окружности (выбирается точка
с большей координатой у)
Р5 = POINT/XLARGE. INTOF. LI. Cl точка пересечения пряной и окружности (выбирается точка
с большей координатой х)
Р6 = POINT/YLARGE, INTOF. Cl. С2: точка пересечения двух окружностей (с большей
координатой у)
Р7 = POINT/XLARGE. INTOF. Cl. С2: точка пересечения двух окружностей (с большей
координатой х)
Показанные на рис. 11.14 отрезки определяются следующим образом:
LI = LINE/X1. Yl. Zl. Х2. Y2. Z2-. отрезок, соединяющий точки (XI. Yl. Z1) и (Х2. Y2. Z2)
L2 = LINE/P1. Р2; отрезок между определенными ранее точками Р1 и Р2
L3 - LINE/P1. PARLEL. LO: отрезок, проходящий через точку Pl и параллельный отрезку L0
L4 - LINE/P1. PERPTO. L0: отрезок, проходящий через точку Р2 и параллельный отрезку L0
L5 - LINE/P1. LEFT. TANTO. Cl: отрезок, проходящий через точку Р1 и касательный
к окружности С1 (проходит слева от центра окружности, если смотреть из Р1)
L6 - LINE/P1. RIGHT. TANTO. Cl: отрезок, проходящий через точку Р1 и касательный
к окружности С1 (справа, если смотреть из Р1)
L7 - LINE/LEFT. TANTO, Cl. LEFT. TANTO C2: отрезок, касательный слева к окружности С1
и слева же к окружности С2. если смотреть от С1 к С2
L8 - LINE/LEFT. TANTO. Cl. RIGHT. TANTO. C2; отрезок, касательный слева к окружности С1
и справа к окружности С2. если смотреть от С1 к С2
L9 - LINE/RIGHT. TANTO. Cl. LEFT. TANTO. C2: отрезок, касательный справа к окружности С1
и слева к С2. если смотреть от С1 к С2
LIO = LINE/RIGHT TANTO. Cl. RIGHT. TANTO. C2: отрезок, касательный справа к окружности
Cl и справа же к С2. если смотреть от С1 к С2
LU = LINE/P1. ATANGL. Degree. L0: отрезок, проходящий через току Р1 и составляющий угол
Degree с прямой L0. Угол отсчитывается против часовой стрелки
Рис. 11.14. Задание отрезков
Окружности на рис. 11.15 были получены следующими командами:
Cl - CIRCLE/X. Y, Z. R: окружность с центром в точке (X. Y. Z) радиуса R
С2 - CIRCLE/CENTER. PI. RADIUS. R: окружность с центром в Р1 радиуса R
СЗ = CIRCLE/CENTER. PI. TANTO. L0: окружность с центром в Р1. касательная к L0
С4 - CIRCLE/P1. Р2. РЗ: окружность, проходящая через три заданные точки
XLARGE
YSMALL
YLARGE
С5 = CIRCLE/{XSMALL}. LI. {XSMALL}. L2. RADIUS. R:
XLARGE
YSMALL
YLARGE
Рис. 11.15. Задание окружностей
Рис. 11.16. Действие модификаторов
Последняя команда позволяет построить одну из четырех окружностей С5, пока-
занных на рис. 11.15, в зависимости от того, какие именно модификаторы будут
в ней использованы. Модификаторы определяют расположение центра окруж-
ности относительно касательной к этой окружности. Например, окружности на
рис. 11.16 получаются следующими командами:
С6 = CIRCLE/XSMALL. LI. XLARGE. L2. RADIUS. 4.0 «ли
С6 = CIRCLE/YLARGE. LI. YLARGE. L2. RADIUS. 4 О1
С7 = CIRCLE/YSMALL. LI. YLARGE. L2. RADIUS. 3.0
C8 = CIRCLE/YLARGE. LI. YSMALL. L2. RADIUS. 2.0
Окружность C6 можно определить еще двумя способами. Окружности С7 и С8 тоже
можно определить четырьмя способами каждую.
uma njripuuKJi
Как и геометрические объекты, плоскости тоже могут определяться множеством
способов. Мы приведем лишь два примера:
PL1 = PLANE/P1. Р2 РЗ ; три точки, не лежащие на одной прямой, определяют плоскость
PL2PLANE/PARLEL. PLO. {XLARGE}. D ; плоскость, параллельная PLO и лежащая
XSMALL на расстоянии D от нее: модификатор
YLARGE позволяет выбрать одну из двух
YSMALL получающихся плоскостей
ZLARGE
ZSMALL
Операторы перемещений
После определения геометрии детали программист должен описать переме-
щение режущего инструмента при помощи операторов перемещений. Каждый
такой оператор осуществляет перемещение инструмента в новое положение в
пространстве или на плоскости. Операторы перемещений для систем с позици-
онным и контурным регулированием отличаются друг от друга и образуют две
большие группы.
В позиционном регулировании используются три оператора, позволяющих уста-
новить инструмент в заданную точку:
FROM/координаты точки
GOTO/координаты точки
GODLTA/Ax. Ду. Дг
Координаты точки могут задаваться непосредственно или через символ объекта,
определенного ранее при помощи одного из геометрических операторов. Опера-
тор FROM задает начальное положение, то есть точку, из которой начинается
движение. Оператор GOTO осуществляет быстрое перемещение инструмента по
прямой линии из его текущего положения в точку, координаты которой указыва-
ются в этом операторе. Оператор GODLTA смещает инструмент на заданные прира-
щения относительно текущего положения. Этот оператор очень полезен для смеще-
ния инструмента вдоль одной из осей, что часто используется при сверлении.
Пример 11.2
Написать на языке APT программу сверления двух отверстий диаметром
0,2 дюйма. Отверстия проделываются в пластине, изображенной на рис. 11.17.
Начальная точка РО имеет координату 0,1 по оси г, благодаря чему между свер-
лом и деталью в начальный момент имеется некоторый зазор. По той же причи-
не значения z-координат центральных точек отверстий должны быть равны 0,1.
Верхняя плоскость детали имеет координату 2 = 0,0.
Решение
РО = POINT/0 0. 3.0. 0.1
Pl = P0INT/1.0. 1.0.0.1
Р2 = P0INT/2 0. 1.00.1
FROM/PO
G0T0/P1
G0DLTA/0. 0. -0.7
G0DLTA/0 0. 0.7
G0T0/P2
GODLTA/O.O. -0.7
G0DLTA/0. 0. 0.7
GOTO/PO
Р0(0, 3,0.1)
Рис. 11.17. Обработка сверлением
Обратите внимание, что глубина сверления в нашем примере сделана равной 0,7,
потому что резец начинает движение на высоте 0,1 дюйма над поверхностью и
должен заканчивать его на глубине 0,1 дюйма под нижней поверхностью. Если
нужно просверлить множество отверстий, а не два, как в нашем примере, те же
операторы языка APT должны были бы повторяться множество раз. Исполь-
зование циклов или подпрограмм позволяет значительно сократить количество
повторяющихся операторов в программе. Подробное описание подпрограмм
языка APT дается в работе [15].
Работа в режиме контурного регулирования требует определения трех поверх-
ностей: поверхности детали, поверхности движения и контрольной поверхности
(рис. 11.18). Поверхность детали — это поверхность, по которой движется конец
режущего инструмента. Поверхность движения — та, вдоль которой происходит
движение самого режущего инструмента. Контрольная поверхность ограничива-
ет движение инструмента, то есть это движение продолжается до тех пор, пока
не произойдет соприкосновение с контрольной поверхностью.
Прежде чем начать двигаться вдоль задающих поверхностей, режущий инстру-
мент должен переместиться к ним. Это осуществляется при помощи операто-
ра GO:
G0/{ ТО }. пов движения. { ТО }. пов детали. { ТО }. контр, поверхность
PAST PAST PAST
ON ON ON
TANTO
Предполагается, что все три задающие поверхности были определены до вызова
оператора GO, хотя так бывает и не всегда. Модификаторы ТО, PAST, ON и TANTO
указывают желаемое положение режущего инструмента по отношению к соот-
ветствующей задающей поверхности. Например, резец, движущийся к контроль-
ной поверхности (CS) вдоль поверхности движения (DS), может оказаться в
трех конечных положениях (рис. 11.19).
ТО
Рис. 11.19. Конечные положения для различных модификаторов
PAST
Модификатор TANTO может использоваться только применительно к контрольной
поверхности. Действие этого модификатора на положение резца относительно
нее показывает рис. 11.20. Положения А и В получаются в результате выполне-
ния следующих команд:
А:
GO/TO. LI. ТО. PS. TANTO. Cl
В:
GO/PAST. LI. TO. PS. TANTO. Cl
Пока что мы рассмотрели только задачу помещения режущего инструмента в на-
чальное положение. Теперь займемся перемещением режущего инструмента от-
носительно предшествующего направления движения. Для этого используются
следующие операторы: -
GOLFTZ влево от предшествующего направления вдоль поверхности движения
GORGT/ . вправо от предшествующего направления вдоль поверхности движения
GOUPZ . вверх вдоль поверхности движения (то есть от поверхности детали)
GODOWN/ вниз вдоль поверхности движения (то есть к поверхности детали)
GOFWDZ вперед от касательного положения вдоль направления касательной
GOBACKZ ; назад от касательного положения вдоль направления касательной
Направления движения, соответствующие выполнению каждой из этих команд,
приведены на рис. 11.21.
Использование операторов контурного регулирования для решения конкретной
задачи демонстрирует пример 11.3.
Начальная точка
Рис. 11.20. Действие модификатора TANTO
Предшествовавшее
направление движения
резца
Рис. 11.21. Направление в командах контурного регулирования
Пример 11.3
Написать на языке APT программу, управляющую движением фрезы. Обрабо-
тать фрезерованием край пластины, изображенной на рис. 11.22. Фреза должна
перемещаться вдоль пунктирных линий и дуги в направлении, указанном стрел-
ками. Обратите внимание, что деталь эта — та же самая, что и на рис. 11.1, так
что мы имеем возможность сравнить программирование на языке APT с состав-
лением программы обработки вручную.
Решение
Предположим, что отрезки, окружность и начальная точка SP (рис. 11.22) уже
определены соответствующими геометрическими операторами. Гипотетическая
плоскость PS, соответствующая поверхности детали, лежит непосредственно под
нижним краем этой детали. Поверхность эта будет ограничивать глубину пере-
мещения фрезы, так чтобы края пластины были обработаны на всю ее глу-
бину. Приведенная ниже последовательность операторов APT задает требуемые
перемещения режущего инструмента. Обратите внимание, что операторы GO/TO
и GOTO/ имеют разное значение.
FROM/SP
GD/TO. LI. ТО. PS. ON. L4
G0RGT/L1. PAST. L2
GOLFT/L2 PAST. L3
G0LFT/L3. PAST. Cl
GOLFT/C1. PAST. L3
G0LFT/L3. PAST. L4
G0LFT/L4. PAST. LI
GOTO/SP
Сравнивая этот пример с примером 11.1, мы видим, что программирование на
языке APT позволяет с гораздо большим удобством работать с интерполяцией
окружностей, нежели программирование в G-кодах контроллеров.
Пример 11.4 демонстрирует использование модификатора TANTO.
Пример 11.4
Написать на языке APT операторы перемещений, требующихся для обработ-
ки краев детали, изображенной на рис. 11.23. Считать, что геометрия детали уже
определена соответствующими геометрическими операторами. Как и в приме-
ре 11.3, поверхность детали PS считается лежащей непосредственно под нижней
плоскостью детали.
Рис. 11.23. Программируемая деталь
Решение
FROM/SP
GO/TO. LI. ТО. PS. ТО. L6
GORGT/L1, ТО. L2
G0RGT/L2. PANTO. Cl
GOFWD/C1. TANTO. L3
G0FWD/L3. PAST. L4
G0LFT/L4. PAST. 15
G0LFT/L5. PAST. L6
G0LFT/L6. PAST. LI
GOTO/SP
Дополнительные операторы APT
Типичная программа на APT на две трети состоит из геометрических операторов
и операторов перемещений. Оставшаяся часть представляет собой набор команд
постпроцессора, требований к допуску и режущему инструменту, а также опера-
торы инициализации и завершения работы.
Начнем с команд постпроцессора. Они передаются в CL-файл в неизменном виде
и позднее обрабатываются постпроцессором.
□ MACHIN/
Оператор осуществляет выбор станка и соответствующего ему постпроцессора.
Например,
MACHIN/DRILL, 2
может обозначать второй сверлильный станок с ЧПУ в данном цехе.
□ COOLNT/
Оператор позволяет включать и отключать подачу охлаждающей жидкости.
Используется с модификаторами ON, OFF, FLOOD, MIST и TAPKUL Например:
COOLNT/MIST
COOLNT/FLOOD
COOLNT/OFF
□ FEDRAT/
Оператор задает скорость подачи режущего инструмента в дюймах в минуту.
Например:
FEDRAT/4.5
□ SPINDL/
Оператор включает шпиндель и позволяет указать скорость его вращения в
оборотах в минуту. Например:
SPINDL/ON SPINDL/1250, CCLW
□ TOOLNO/
Оператор задает номер используемого инструмента:
TOOLNO/3572, 6
обозначает инструмент № 3572 длины 6 единиц.
□ TURRET/
Оператор может использоваться для выбора конкретного инструмента из уст-
ройства автоматической смены инструментов.
□ END
Оператор останавливает станок, после чего персонал может произвести про-
верку или заменить инструмент.
Требования к допуску используются при аппроксимации криволинейного кон-
турного движения последовательностями отрезков прямых. Допуск характери-
зуется двумя значениями: INTOL/ и OUTTOL/, соответствующими внутренней и
внешней границам (рис. 11.24). Эти значения могут быть указаны, например, так:
INTDL/0.005 OUTTOL/O.OD3
Рис. 11.24. Внешний и внутренний допуски
Оператор CUTTER/ используется для задания диаметра режущего инструмента,
который, в свою очередь, учитывается при компенсации. Например, команда
CUTTER/0.6 означает, что диаметр резца составляет 0,6 единицы. Если же указать
диаметр инструмента, отличающийся от настоящего, можно обработать поверх-
ность с некоторым остатком материала. Это полезно для чернового прохода.
Прочие возможности APT
Подобно обычным языкам программирования высокого уровня, APT предусмат-
ривает средства для выполнения арифметических вычислений, организации
циклов и вызова подпрограмм (которые в этом языке называются макросами).
Повторяющиеся операции можно объединить в подпрограмму и вызывать ее из
главной программы столько раз, сколько потребуется. Параметры подпрограммы
могут быть обозначены как переменные, так что при вызове макроса им могут
быть присвоены любые нужные значения. Идея та же, что и при использовании
переменных аргументов в подпрограмме иа языке FORTRAN. В качестве демон-
страции возможностей макросов мы перепишем программу из примера 11.2:
РО = P01NT/0.0. 3.0. 0.1
FROM/PO
CALL/ORII.L. X = 1.0. Y = 1.0. Z = 0.1. DEPTH = 0.7
CALL/DRILL. X = 2.0. Y = 1.0. Z = 0.1. DEPTH = 0.7
GOTO/PO
Здесь макрос DRILL определен следующим образом:
DRILL = MACRO/X. Y. Z. DEPTH
GOTO/X, Y. Z
GODLTA/O. 0. -DEPTH
GODLTA/O. 0. DEPTH
TARMAC
Пример 11.5 показывает, каким образом вспомогательные операторы и макрооп-
ределения могут использоваться для решения конкретной задачи.
Пример 11.5
Обрабатываемая деталь изображена на рис. 11.23. Внешняя граница детали долж-
на быть обработана фрезерованием в два захода. Первый проход должен быть
черновым (допуск от конечных размеров 0,01 дюйма). Второй проход должен
дать точное соответствие чертежу. Внешний допуск криволинейной части со-
ставляет 0,002 дюйма.
Решение
Перерисуем рис. 11.23, обозначив все необходимые точки (рис. 11.25). На рис. 11.25
также показана верхняя поверхность детали, соответствующая координате z = 0,5,
тогда как z - 0 определяет плоскость, расположенную непосредственно под ниж-
ней поверхностью детали. Двухпроходную схему обработки с разными допуска-
ми мы реализуем при помощи макросов. Начнем программу с оператора PARTNO,
задающего номер программы или детали. В этой же строке могут приводиться
любые дополнительные сведения. Последним оператором в любой программе на
APT должен быть FINI (конец программы). В реальную программу не включают
ся точки с запятыми и комментарии.
Р6 (2, 7. 0.5)
Р5 (9. 7. 0.5)
. SP (5. 0, 1)
Рис. 11.25. Деталь со вспомогательными точками
PARTNO PART 11
MACHIN/MILL. 3: выбор станка
CLPRINT; распечатка CL-файла
OUTTOL/O.OD2
SP = POINT/5.0.1
Pl = POINT/2.2.0.5
Р2 = P0INT/4.2.0.5
РЗ = P0INT/6.4.0.5
Р4 = POINT/8.5.0.5
Р5 * POINT/9.7.0.5
Р6 = P0INT/2.7.0.5
PL1=PLANE/P1.P2.P3
PS = PLANE/PARALEL. PL1. ZSMALL. 0.5 : определение поверхности с уравнением z=0
Cl = CIRCLE/CENTER. P4. RADIUS. 1.0
LI = LINE/P2. P3
L2 = LINE/РЗ. RIGHT. TANTO. Cl
L3 = LINE/P5. LEFT. TANTO. Cl
L4 = LINE/P5. P6
L5 = LINE/P6. Pl
L6 - LINE/P1.P2
MILL = MACRO/CUT. SPIN. FEED. CLNT
CUTTER/CUT
FEDRAT/FEED
SPINDL/SPIN
COOLNT/CLNT
FROM/SP
GO/TO. LI. TO. PS. ON. L6
G0RGT/L1.T0.L2
G0RGT/L2. TANTO. Cl
G0FWD/C1. TANTO. L3
G0IWD/L3. PAST. L4
G0LFT/L4. PAST. L5
G0LFT/L5. PAST. L6
G0LFT/L6. PAST. LI
GOTO/SP
TERMAC TURRET/4
CALL/MILL. CUT=0.52. SPIN=600. FEED=3.0. CLNT=ON
TURRET/6
CALL/MILL. CUT-0.5. SPIN-900. FEED-2.0. CLNT-ON SPINDL/0
COOLNT/OFF
END
FINI
В этом примере для чернового прохода указывается диаметр резца, равный
0,52 дюйма, тогда как реально используется резец диаметром 0,5 дюйма. При
этом остается слой толщиной 0,01 дюйма, который и снимается при завершаю-
щей обработке (рис. 11.26).
Реальный инструмент (диаметр = 0,5 дюйма)
Рис. 11.26. Задание диаметра резца для грубого прохода
11.7.2. Прочие языки программирования
Существует множество других языков программ обработки деталей, устроенных
в большей или меньшей степени подобно APT. В этом разделе мы кратко расска-
жем о нескольких из них, получивших достаточно широкое распространение.
ADAPT (адаптация APT) был первой попыткой адаптировать язык APT для не-
больших компьютерных систем. Он был разработан фирмой IBM по контракту
с ВВС США. ADAPT имеет гибкую модульную структуру, что делает его при-
годным для использования на малых и средних компьютерах благодаря возмож-
ности добавления и удаления подпрограмм. ADAPT удобен для позиционного
регулирования и простейшей контурной обработки деталей в двух и трех изме-
рениях, но непригоден для программирования станков со множеством степеней
свободы.
AUTOSPOT (автоматическая система для позиционного регулирования) была
разработана IBM в 1962 г. Это популярная программа для задач позицион-
ного регулирования, подобных сверлению. Впоследствии она была объединена
с ADAPT.
Язык ЕХАРТ (расширенное подмножество APT) был разработан в Германии не-
сколькими университетами, работавшими над адаптацией APT к европейским
условиям. Этот язык совместим с APT и может работать с теми же процессора-
ми. Он существует в трех версиях: ЕХАРТ I (для станков с позиционным регу-
лированием), ЕХАРТ II (для токарных станков) и ЕХАРТ III (для трехмерной
контурной обработки).
COMPACT был разработан фирмой Manufacturing Data Systems (MDSI). Его
последняя версия COMPACT II является одним из наиболее популярных язы-
ков программирования (наряду с APT). Операторы COMPACT II не слишком
сильно отличаются от обычных английских терминов, используемых в станоч-
11.8. Программирование обработки по базе CAD
JUJ.
ных цехах. Эти операторы преобразуются в машинный код непосредственно, не
требуя использования постпроцессора.
SPLIT (язык обработки с внутренней трансляцией) был разработан фирмой Sund-
strand Corporation для станков ее собственного производства. Он может использо-
ваться со станками, имеющими до пяти степеней свободы, и позволяет применять
как позиционное, так и контурное регулирование. Постпроцессор встроен в саму
программу, поэтому у каждого станка должна быть своя собственная версия SPLIT.
МАРТ (микро-APT) представляет собой подмножество APT, предназначенное
для работы на микрокомпьютерах. Ничем, кроме размера, этот язык от APT не
отличается.
11.8. Программирование обработки по базе CAD
Как вы, должно быть, заметили из примеров, иллюстрировавших программи-
рование на языке APT, большую часть программ обработки деталей составляют
операторы, определяющие геометрию этих деталей. Если деталь уже спроекти-
рована в CAD, с точки зрения программиста вполне естественно воспользовать-
ся данными о ее геометрии, хранящимися в базе данных CAD. Даже если деталь
не была спроектирована в CAD, построение ее чертежа в такой системе гораздо
удобнее описания ее на языке, подобном APT, особенно если деталь имеет кри-
волинейные границы и поверхности. Перечисленные идеи легли в основу интег-
рированных систем CAD/CAM. В таких системах геометрические операторы
передаются из базы CAD в программу ЧПУ, а в некоторых случаях по ним авто-
матически составляются операторы перемещений, управляющие движением ре-
жущего инструмента. Раньше все эти задачи выполнялись программистом.
Составление программы обработки деталей при помощи интегрированной сис-
темы CAD/CAM осуществляется в приведенной ниже последовательности.
1. Выделяются элементы геометрии детали, особенно важные при машинной
обработке. Эти элементы могут быть выделены в отдельный слой чертежа.
Геометрия детали может потребовать редактирования или расширения (с целью
включения границ, определяющих движение режущего инструмента). Геомет-
рические сведения, необходимые для составления программы обработки, за-
висят от того, каким методом и на каком станке производится данная деталь.
Например, токарные операции (точение, подрезка торца, проточка канавок и
нарезка резьбы) требуют знания двумерного профиля (рис. 11.27). Этот про-
филь может быть получен непосредственно из базы данных CAD, если деталь
была спроектирована при помощи системы автоматизированной разработки
чертежей, встроенной в интегрированную систему CAD/CAM. Правда, от
пользователя может потребоваться построение профиля в отдельном слое,
в противном случае программа попросит его изолировать профиль от других
объектов (в частности, аннотаций, которые тоже могут находиться на чертеже).
Если деталь была построена в системе объемного моделирования, входящей в
состав интегрированной системы, пользователю придется проецировать объем-
ную модель на плоскость для получения ее профиля или же искать исходный
профиль, по которому эта деталь строилась. В любом случае для определения
профиля может потребоваться некоторая работа в интерактивном режиме.
joz
Глава 11. Числовое программное управление
Обточка
Подрезка торца
Рис. 11.27. Геометрия в токарных операциях
в
Рис. 11.28. Геометрия в фрезеровании
11.8. Программирование обработки по базе CAD
Двухосевые операции фрезерования п сверления, подобно токарным, требу-
ют подачи на вход двумерной геометрии детали. Операции контурной обра-
ботки и фрезерования глубоких выемок (рис. 11.28) могут основываться на
сведениях из двумерной пли трехмерной базы данных, как и операции токар-
ной обработки. На рис. 11.28, а, б показаны глубокие выемки двух типов, а на
рис. 11.28, в — профиль.
Помимо упомянутых операций существуют также операции резки газовой
сваркой и плазменным резаком, прессования на револьверном прессе с ЧПУ.
Эти операции тоже работают с двумерной геометрией, сведения о которой,
следовательно, должны каким-то образом извлекаться из базы данных дета-
лей. Обычно пользователю приходится вручную выбирать на рисунке эле-
менты, образующие необходимую геометрию.
Если поверхности детали должны обрабатываться на трех- пли пятиосевом
фрезеровальном станке в режиме контурного регулирования, для составле-
ния программы потребуются геометрические сведения о поверхностях. Эти
сведения могут быть перенесены в программу, если деталь была спроекти-
рована в системе поверхностного или объемного моделирования, входящей
в состав интегрированной системы CAD/CAM. В этом случае пользователю
придется в интерактивном режиме указать поверхности для обработки (опре-
делив для них роль поверхностей детали), а также задать соседние с ними по-
верхности (которые будут играть роль поверхности движения и контрольных
поверхностей). Несмотря на необходимость выполнения некоторых действий
в интерактивном режиме, преимущества от использования интегрированных
систем очень существенны, поскольку описать сложные криволинейные по-
верхности на языке, подобном APT, очень сложно, а часто оказывается прак-
тически невозможно.
2. На следующем этапе определяется геометрия режущего инструмента. Про-
граммное обеспечение обычно включает библиотеки инструментов, из кото-
рых пользователь может выбирать нужные ему экземпляры.
3. Пользователь определяет желаемую последовательность операций обработки
и планирует требуемые траектории движения режущего инструмента с соот-
ветствующими параметрами обработки. Траекторией режущего инструмента
называется траектория, которую описывает инструмент по мере того, как он
приближается из своего исходного положения к заготовке, выполняет ее
обработку и снова возвращается в исходное положение. Траектория обычно
повторяется несколько раз, пока режущий инструмент снимает слой все боль-
шей и большей толщины. Для простых операций траектория режущего инст-
румента может строиться системами автоматически.
4. После планирования траектории движения координаты х, у и z точек на этой
траектории вычисляются программой ЧПУ с учетом выбранного резца и гео-
метрии детали. Использование множества точек на каждой траектории (то есть
аппроксимация большим количеством прямых сегментов) даст более точное
соответствие поверхности ожидаемой форме. Однако программа обработки
может оказаться длиннее, что снизит скорость ее передачи на DNC.
5. Построенная траектория движения инструмента может быть проверена на
графическом мониторе. Обычно при этом на экран выводится анимированная
картинка, изображающая движение резца в процессе обработки детали. Если
в программе обнаруживаются ошибки, пользователь всегда может изменить
ее и проверить снова. Некоторые циклы обработки могут реализовываться в
виде макросов.
6. По скорректированным траекториям формируется CL-файл (с координатами
точек на этих траекториях), который затем обрабатывается постпроцессором,
в результате чего получается файл в машинном коде (MCD-файл). Этот файл
и передается контроллеру станка.
В последующих разделах мы кратко расскажем о том, каким образом рассчиты-
ваются и проверяются траектории движения режущего инструмента при обра-
ботке поверхностей фрезерованием. Если речь идет об обработке двумерных
профилей, как, например, при сверлении или двухосевом фрезеровании, траек-
тории рассчитываются при помощи элементарной аналитической геометрии,
рассматривать которую здесь нет необходимости.
11.8.1. Построение траекторий
Обработка поверхности на фрезеровальном станке с тремя или пятью степенями
свободы и контурным регулированием может потребовать построения несколь-
ких траекторий. Если требуется снять толстый слой материала, обычно рассчи-
тываются траектории двух типов: вначале делается черновой проход и снимается
основная часть материала, а затем осуществляется завершающая тонкая обработка
(доводка), дающая деталь желаемой формы. В некоторых случаях приходится
делать еще и третий, промежуточный, проход.
Траектории при черновом проходе
Черновой проход может осуществляться по-разному. Первый подход использу-
ется в том случае, если форма заготовки изначально близка к форме готовой де-
тали (рис. 11.29). Это бывает, если заготовка получается в результате отливки.
Обрабатываемая поверхность получается отступом от конечной поверхности на
некоторое расстояние, а расчет для этой поверхности производится точно так же,
как и для конечной. Расчет траекторий обработки при чистовом проходе будет
описан ниже.
Рис. 11.29. Грубый проход
Второй подход применяется, если заготовка имеет форму бруска, и часто ис-
пользуется для получения таких деталей, как формы и штампы. В этом случае
при черновом проходе осуществляется послойное снятие материала в несколько
заходов (рис. 11.30). Для каждого слоя рассчитывается своя траектория движе-
ния, как и для глубоких выемок (см. рис. 11.28). Граничная кривая для каждого
слоя получается пересечением обрабатываемой поверхности с горизонтальной
11.8. Программирование обработки по базе CAD
ЗОЭ
плоскостью, соответствующей слою. После определения граничной кривой тра-
ектория обработки выемки получается отступом от внешней границы внутрь
(рис. 11.28, а). Альтернативный вариант состоит в использовании параллельных
прямолинейных траекторий, каждая из которых лежит внутри границ выемки
(рис. 11.28, б). Подробное описание процедуры расчетов дается в работе [65].
Рис. 11.30. Альтернативный грубый проход
Траектории при чистовом проходе
Чистовой проход требует аппроксимации кривых, образующих поверхность де-
тали, отрезками прямых, вдоль которых будет перемешаться режущий инстру-
мент. Точность обработки определяется точностью линейной аппроксимации.
Она контролируется заданием допуска — максимального отклонения отрезков
от соответствующих сегментов кривых. Этот допуск эквивалентен аргументам
операторов OUTTOL и INTOL в языке APT.
Существует множество способов выбирать криволинейные образующие. Резец
может двигаться вдоль поверхности в разных направлениях. Возможные траек-
тории демонстрирует рис. 11.31. Кривые могут быть получены из уравнения по-
верхности путем присваивания одному из параметров постоянных значений из
некоторого набора. Если обработка идет как в прямом направлении, так и в об-
ратном, это называется шнуровкой (lace cutting). Если же рабочий проход делает-
ся только в одном направлении, это называется обычным фрезерованием (nonlace
cutting). Режущий инструмент может также двигаться вдоль контуров поверх-
ности или траекторий, полученных пересечением поверхности параллельными
плоскостями.
Пользователь чаще всего имеет возможность выбрать один из трех режимов об-
работки в процессе планирования траекторий. Интервалы между кривыми рас-
считываются программой исходя из требуемой точности. Интервал между траек-
ториями определяет высоту зубца, остающегося после обработки (рис. 11.32).
Высокие зубцы сильно снижают общую производительность, поскольку их при-
ходится удалять шлифованием, а на это может уйти значительная доля общих
временных затрат на изготовление детали.
UD
Глава 11. Числовое программное управление
Рис. 11.31. Траектории движения резца при обработке поверхности
Рис. 11.32. Интервал между траекториями и высота зубцов
После выбора аппроксимируемых кривых производится вычисление координат
точек на этих кривых. Максимальное расстояние между любым отрезком, соеди-
няющим две соседние точки, и соответствующим сегментом кривой должно быть
меньше заданного допуска. Эти точки называются контактными {cutter-contact
points — ССpoints), поскольку именно в них режущий инструмент входит в кон-
такт с поверхностью. Отклонение отрезка от истинной кривой возрастает при
увеличении расстояния между СС-точками, которое называется длиной шага {step
length) (рис. 11.33). Хотя уменьшение длины шага повышает точность, этот пара-
метр обычно делают таким, чтобы аппроксимация удовлетворяла установленному
допуску, но не меныпим, иначе размеры CL-файла сильно возрастают. Процеду-
ра расчета длины шага в произвольной СС-точке кривой дается в работе [32].
/ Длина шага \
Рис. 11.33. Отклонение и длина шага
11.8. Программирование обработки по базе CAD
Альтернативный метод состоит в использовании методики вычисления кривых
Безье, предложенной в приложении И. Кривая обрабатываемой поверхности
представляется в виде кривой Безье, которая делится на сегменты до тех пор,
пока все выпуклые оболочки (показаны на рис. 11.34 .заливкой) не будут иметь
толщину меньше установленного допуска. Точки кривой (D4 и D7 на рис. 11.34)
сохраняются как контактные.
Рис. 11.34. Построение СС-точек делением
После определения СС-точек программа переходит к расчету соответствующих
им координат режущего инструмента (CL-точек). CL-точки нужны для работы
контроллера ЧПУ. CL-точку для концевой сферической фрезы вычислить до-
вольно просто (рис. 11.35). Для этого используется формула:
г,.у = г« + Мп(« Д’)-а], (Hl)
где гс1 и гсс — радиус-векторы CL- и СС-точки соответственно; R — радиус конце-
вой сферической фрезы; n(u,v) — единичный вектор внешней нормали к поверх-
ности детали в СС-точке, соогветс гвующей значениям параметров и и v, а — еди-
ничный вектор, направленный вдоль оси инструмента. У трехоеевого станка этот
вектор обычно имеет координаты (0, 0, 1), тогда как у пятиосевого он может
быть направлен произвольно. Трехосевые станки не позволяют поворачивать ре-
жущий инструмент относительно детали. В них он всегда закреплен под фикси-
рованным углом, чаще всего — направлен вдоль осп z.
Для резцов других типов могут быть получены аналогичные соотношения между
СС- и CL-точками В станках с пятью степенями свободы н'шрз.влеппе режуще-
го инструмента может изменяйся. В принципе, его можно было бы совмещать
с нормалью к поверхности детали для минимизации высоты зубца, но па практи-
ке резец чаще всего наклоняют, чтобы достичь максимального радиуса обработ-
ки или максимальной скорости фрезерования Поэтому расчет траектории для
станка с пятью степенями свободы включает сложные вычисления, связанные
Глава 11. Числовое программное управление
с ориентацией оси режущего инструмента. В этой книге мы не будем вдаваться
в подробности.
Рис. 11.35. Связь СС- и CL-точек
Выше мы говорили о том, как рассчитать CL-точки по СС-точкам. Возможно,
однако, непосредственное вычисление координат CL-точек путем сдвига поверх-
ности детали. Особенно это эффективно для концевой сферической фрезы.
Итак, поверхность детали сдвигается на величину радиуса фрезы, а кривые на
этой поверхности рассчитываются тем же методом, что и на рис. 11.31. Точки
кривых будут соответствовать координатам центра резца, а CL-точки можно бу-
дет вычислить прибавлением вектора - Ra к радиус-векторам этих точек. Под пе-
ременными R и а мы понимаем то же, что и в уравнении (11.1).
Резец, движущийся вдоль расчетной траектории, может сделать излишне глубо-
кую выемку в каком-либо месте. Такой дефект называется заглублением
(gouging). Заглубление происходит в тех местах, где радиус кривизны поверхно-
сти оказывается меньше радиуса режущего инструмента (рис. 11.36). Если же
диаметр резца слишком мал, фрезерование оказывается медленным и малоэф-
фективным. В такой ситуации необходимо разбивать поверхность на участки та-
ким образом, чтобы большая часть поверхности обрабатывалась резцом больше-
го диаметра, а отдельные участки — резцом меньшего диаметра.
Рис. 11.36. Заглубление в одной поверхности
Заглубление может также происходить в тех местах, где одна поверхность дета-
ли соединяется с другими (рис. 11.37), если точку на границе двух поверхностей
взять в качестве контактной (точка А на рис. 11.37). Эту проблему можно обой-
ти. передвинув границу для контактных точек в точку В (рис. 11.38). Граничное
положение центра режущего инструмента можно получить пересечением двух
11.8. Программирование обработки по базе CAD
369
сдвинутых поверхностей (сдвиг производится на величину радиуса инструмен-
та). Для несферических резцов расчет может быть более сложным.
Рис. 11.37. Заглубление соседней поверхности
Рис. 11.38. Правильная установка ограничения
В станках с пятью степенями свободы обнаружить заглубление сложнее, потому
что для этого нужно учитывать геометрию резца в целом в каждом его положе-
нии с учетом ориентации. Резец может столкнуться с зажимами, креплениями,
шпинделями или с самой деталью.
11.8.2. Моделирование и проверка траекторий
Траектории, по которым должен будет двигаться резец в процессе обработки де-
тали, обычно состоят из множества точек, которые невозможно проверить вруч-
ную. В прошлом операторы станков с ЧПУ проверяли и корректировали свои
программы, обрабатывая деревянные или пластиковые заготовки. В наше время
сушествует программное обеспечение, позволяющее отказаться от этого дли-
тельного процесса, заменив его отображением траекторий на экране монитора.
Благодаря этому станкам остается только реальная работа с реальными деталя-
ми. Программист получает возможность визуально проверить, что:
□ режущий инструмент не снимает с заготовки больше материала, чем нужно;
□ режущий инструмент не сталкивается с зажимами и креплениями;
□ режущий инструмент проходит в глубокие пазы и не задевает никаких ребер;
□ выбранные траектории оказываются эффективны.
Простейший способ визуализации или имитации процесса обработки состоит в
отображении траектории режущего инструмента вместе с геометрической моде-
лью детали (рис. 11.39). Отрезки прямых добавляются к изображению по мере
считывания данных из CL-файла. Такое моделирование позволяет программи-
сту получить общее представление о том, каким образом движется резец, однако
не дает ему возможности обнаружить заглубления, потому что на экране отобра-
жаются только положения режущего инструмента, а не изменения детали в про-
цессе обработки.
370
Глава 11. Числовое программное управление
AXS* »АХ51
VU-«VU1
Рис. 11.39. Траектория перемещения режущего инструмента
Наилучший метод моделирования процесса обработки состоит в отображении
объемной модели детали, трансформирующейся под воздействием фрезы. Это до-
стигается вычитанием из модели объема, захватываемого режущим инструментом
при перемещении от одной точки к другой. Программист может проконтролиро-
вать траектории, сравнив получившуюся деталь с желаемой, то есть выполнив
булевское вычитание одной объемной модели из другой. Проблема в том, что
этот подход требует значительных вычислений. Стоимость моделирования про-
порциональна количеству перемещений режущего инструмента, возведенному в
четвертую степень. Типичный CL-файл может содержать до 10 000 перемеще-
ний, что делает подобные вычисления практически невозможными.
Для повышения эффективности моделирования используются различные мето-
ды аппроксимации. Они позволяют сделать время вычислений прямо пропор-
циональным количеству перемещений. Один из методов для фрезерования с тремя
степенями свободы был впервые предложен Андерсоном [4], который поделил
основание детали на квадраты и представил деталь в виде столбиков с квадрат-
ными основаниями. Получившуюся структуру он назвал трехмерной гистограм-
мой. Основная идея подхода заключается в том, чтобы изменять длину столбцов,
захваченных режущим инструментом. Начальная высота каждого столбца соот-
ветствует высоте заготовки, а при каждом перемещении резца те столбцы, кото-
рые с ним пересекаются, должны уменьшаться.
11.8. Программирование обработки по базе CAD
371
Другой подход заключается в использовании векторов нормали. Он был пред-
ложен Чаппел ем [34] и усовершенствован Джерардом и другими [80]. Согласно
этому подходу, обрабатываемая поверхность аппроксимируется набором точек,
в каждой из которых вычисляются векторы внутренней и внешней нормалей.
В процессе моделирования обработки рассчитываются точки пересечения этих
векторов и огибающей траектории резца. Длина вектора, пересекающегося с оги-
бающей, уменьшается. Когда расчет достигает последней точки CL-файла, длина
вектора соответствует количеству избытка материала (над поверхностью) пли
величине заглубления (под поверхностью) в данной точке. Обратите внимание,
что этот подход может использоваться независимо от количества степеней сво-
боды станка. Для станков с пятью степенями свободы огибающая траектории ре-
жущего инструмента будет иметь более сложную форму, чем для станков с тре-
мя степенями свободы. Джерард с коллегами еще больше упростили расчет для
трех степеней свободы, используя векторы, направленные вдоль оси резца, кото-
рая обычно совпадает с осью z. Векторы направлений и огибающая траектории
показаны на рис. 11.40. Описанный метод позволяет отображать форму детали
в процессе ее обработки: оиа аппроксимируется многогранником, проходящим
через концы векторов.
Огибающая Огибающая
V = 0 2 и = о
Рис. 11.40. Векторная аппроксимация: а — с векторами нормали; б — с векторами,
параллельными оси z
11.8.3. Пример программы для станка с ЧПУ
В этом разделе мы продемонстрируем составление программы для станка с ЧПУ
при помощи пакетов Pro/MFG и Pro/NC-CHECK — составляющих САМ-моду-
ля системы Pro/ENGINEER. Обрабатываемая деталь будет представлять собой
форму для корпуса сотового телефона из главы 1. В этом разделе мы будем на-
зывать ее просто деталью. Предполагается, что модели детали и заготовки уже
построены в Pro/ENGINEER (рис. 11.41 и 11.42).
В первой конфигурации мы обработаем внутреннюю поверхность детали, а за-
тем перевернем ее и обработаем внешнюю поверхность (это будет вторая конфи-
гурация). Для каждой из них в конечном итоге должен быть получен файл ма-
шинных кодов (МCD-файл).
372
Глава 11. Числовое программное управление
Рис. 11.42. Объемная модель заготовки
Для каждой конфигурации нужно создать соответствующую ей систему коорди-
нат (рис. 11.43). В системе Pro/MFG ось режущего инструмента параллельна
оси z, а приближение к детали происходит в отрицательном направлении этой
оси. Поскольку деталь должна быть обработана с двух сторон, нам придется со-
здать две системы координат. Готовая деталь вместе с заготовкой показана на
рис. 11.43. Все нижеследующие интерактивные операции будут выполняться на
этом объекте.
Рис. 11.43. Объединение заготовки и детали
На следующем шаге нужно выбрать производственный участок. Доступен фре-
зеровальный, токарный и электроэрозионный станок. Выбрав фрезеровальный
станок, мы переходим к определению операции. Операцией называется последе-
11.8. Программирование обработки по базе CAD
вательностъ действий, выполняемых в одной конфигурации. Наша задача требу-
ет использования двух конфигураций, поэтому мы должны определить две опе-
рации. Для первой операции ОР010 мы выбираем систему координат OPER1. Эта
операция, как будет показано ниже, состоит из 21 последовательности команд
ЧПУ.
За первую последовательность мы должны снять объем материала, показанный
на рис. 11.44. Для этого выберем подходящий инструмент в меню (рис. 11.45).
Параметры обработки для первой последовательности приведены на рис. 11.46.
STEP_DEPTH — глубина резания, STEP_OVER — интервал между соседними траек-
ториями, a PROF_STOC_ALLOW и ROUGH STOCK ALLOW задают допуск на чисто-
вой проход. Подробное описание прочих параметров дается в руководстве поль-
зователя этого пакета [123]. На следующем этапе нужно указать удаляемый
объем. Для этого нужно обратиться к геометрической модели детали, наметить
удаляемый объем, пересечь его с заготовкой, указать отступы для поверхностей
и т. д. В нашем случае определение объема осуществляется посредством построе-
ния его эскиза. Удобство этого метода демонстрирует рис. 1.44. Мы выбираем
верхнюю поверхность заготовки в качестве плоскости эскиза, после чего выполня-
ем операцию экструзии. После выполнения всех необходимых действий система
имитирует процесс механической обработки (рис. 11.47). На экране траектория
инструмента отображается жирной черной линией. Обратите внимание, что резец
начинает движение с левого нижнего угла и перемещается зигзагообразно.
Рис. 11.44. Снимаемый объвм
Рис. 11.45. Выбор инструмента
Глава 11. Числовое программное управление
Рис. 11.46. Задание параметров
Рис. 11.47. Моделирование траекторий первой последовательности
Рис. 11.48. Задание обрабатываемой области
Вопросы и задачи
375
Аналогичным образом определяется вторая последовательность: указываются
параметры инструмента и технологического процесса, после чего выделяется об-
рабатываемый объем (рис. 11.48) и строится траектория движения режущего ин-
струмента (рис. 11.49). Оставшиеся последовательности операций проектируют-
ся тем же методом.
Рис. 11.49. Моделирование траекторий второй последовательности
Вопросы и задачи
1. В чем разница между фиксированным последовательным форматом програм-
мы обработки детали и форматом пословной адресации?
2. Что такое фиксированный цикл?
3. В чем состоит основная сложность ручной подготовки программ по сравне-
нию с программированием на языке типа APT?
4. Объясните отличие операторов GOTO и GO языка APT.
5. Напишите (вручную) программу обработки пластины, изображенной на сле-
дующем рисунке. Размеры приведены в миллиметрах. Толщина прямоуголь-
ной заготовки составляет 15 мм, а координата z для всех точек нижней
поверхности равна нулю. Параметры контроллера, инструмента, скорости,
подачи возьмите из примера 11.1.
(35,40) (55,40)
Начальная точка
6. Постройте геометрические фигуры, определяемые приведенными ниже опе-
раторами APT:
P1=POINT/0.0,0
P2=POINT/100.50.0
L1=LINE/P1.P2
P3=POINT/0.50.0
76
Глава 11. Числовое программное управление
P4=POINT/100.0.0
L2=LINE/P3.P4
Cl-CIRCLE/YLARGE.L1.XLARGE.L2.RADIUS.10
Постройте геометрическую модель детали и траекторию движения резца по
приведенной ниже программе. Объясните значение каждой команды пост-
процессора.
PARTNO PART7
MACHIN/MILL.1
INT0L/0.0Q2
OUTTOL/O.Q02
CUTTER/5
SP=P0INT/-3.-3.4
P1=POINT/0.0,0
P2=P0INT/8.0,0
P3=POINT/4.4.0
P4=P0INT/Q.4.0
L1=LINE/P1.P2
L2=LINE/P2,P3
L3=LINE/P3.P4
L4=LINE/P4.P1
PL1=PLANE/P1.P2.P3
SPINDL/1000
FEDRAT/5
COOLNT/ON
FROM/SP
G0/T0.L1.T0.L4.T0.PL1
G0RGT/L1.PAST.L2
G0LFT/L2.PAST.L3
GOL FT/L3. PAST. L4
G0LFT/L4.PAST.L1
GOTO/SP
COOLNT/OFF
FINI
Напишите программу на APT для обработки детали из задачи 5. Условия об-
работки те же.
Напишите АРТ-программу чистовой обработки детали, приведенной на сле-
дующем рисунке. Диаметр резца 1 дюйм, скорость подачи 8 дюймов в минуту,
скорость вращения шпинделя 764 об/мин.
Начальное положение
инструмента
в любой доступной вам системе поверхностного моделирования постройте
модель приведенной ниже детали. Размеры выберите самостоятельно. Попро-
буйте рассчитать траектории чистовой обработки в доступной вам програм-
ме САМ.
Поверхностная модель колеса
произвольной формы
И. Выполните то же самое, что и в задаче 10, для приведенной ниже детали.
Поверхностная модель механической детали
произвольной формы
"лава 12
Быстрое прототипирование
1 изготовление
5 главе И вы познакомились с обработкой на станке с ЧПУ и узнали, как ис-
юльзуются геометрические данные из базы данных CAD при обработке детали.
Котя геометрическая модель использовалась как источник общих данных, про-
весы проектирования и производства не были непосредственно интегрирова-
1Ы в процедуру обработки. Иными словами, чтобы станок с ЧПУ мог выполнить
бработку по данным геометрической модели, требовался ряд промежуточных
пагов: планирование процессов, рассмотрение конструкций зажимов и крепле-
,-ий, выбор оборудования.
•лце один способ использования геометрической модели в производстве — это
быстрое прототипирование. Существуют разные процессы быстрого прототи-
пирования, но все их объединяет то, что прототип изготавливается путем по-
слойного наложения композитного материала. Основное преимущество быстро-
го прототипирования состоит в том, что прототип создается за один прием,
) исходными данными для него служит непосредственно геометрическая модель
сетали. Таким образом, отпадает необходимость в.планировании последователь-
юсти технологических процессов, специальном оборудовании для обработки
материалов, транспортировке от станка к станку и т. д. Однако по сравнению
: обработкой на станке с ЧПУ этот процесс имеет существенный недостаток —
ограниченность выбора материалов. Поскольку станки с ЧПУ способны обраба-
1 ывать большую часть доступных промышленных материалов, включая метал-
лы, то физические объекты, изготовленные методом быстрого прототипирова-
ния, используются главным образом в качестве прототипов или шаблонов для
других производственных процессов.
12.1. Обзор
После появления систем твердотельного моделирования в начале 70-х гг.
XX в. делались попытки генерировать физические объекты непосредственно
из геометрических данных, не прибегая к использованию традиционных инстру-
ментов. Новая технология получила название быстрое прототипирование (rapid
prototyping), а также послойное изготовление (layered manufacturing), трехмерная
печать (3D printing), настольное изготовление (desktop manufacturing) и изготов-
ление объемных деталей произвольной формы (solid freeform manufacturing) [88].
С того времени эта технология шагнула далеко вперед, найдя множество приме-
нений на производстве помимо изготовления прототипов. Исходя из этого, бо-
лее удачным обозначением для нее в настоящий момент представляется термин
быстрое прототипирование и изготовление (rapid prototyping and manufacturing),
или БПИ, который мы и будем использовать в этой главе.
В основе своей процессы быстрого прототипирования и изготовления состоят
из трех шагов: формирование поперечных сечений изготавливаемого объекта,
послойное наложение этих сечений и комбинирование слоев. Таким образом,
чтобы создать физический объект, этим процессам требуются данные лишь о по-
перечных сечениях; кроме того, исчезают следующие проблемы, часто возникаю-
щие в связи с другими производственными процессами^
□ Отпадает необходимость в топологическом проектировании и распознавании
по элементам, поскольку планирование процессов, в ходе которого использу-
ется эта информация, не требуется. Аналогичным образом, не нужно преобра-
зовывать элементы конструкции в элементы изготовления. Достаточно иметь
трехмерную поверхностную или твердотельную модель детали, на основе ко-
торой будут сгенерированы данные поперечных сечений.
□ Не требуется определять геометрию пустого пространства, поскольку в ходе
процессов БПИ материал добавляется, а не снимается.
□ Не нужно определять несколько наборов оборудования или сложные после-
довательности обработки материала, поскольку деталь изготавливается за
один прием.
□ Нет необходимости рассматривать конструкции зажимов и креплений. (Не-
которые процессы могут требовать создания вместе с деталью поддерживаю-
щих структур. О поддерживающих структурах речь пойдет позже.)
□ Не нужно проектировать и изготавливать формы и штампы, так как процессы
БПИ являются безынструментальными.
Таким образом, поскольку процессы БПИ позволяют создать физический объ-
ект без использования инструментов, они хорошо подходят для интеграции про-
ектирования и изготовления без планирования процессов.
Слои поперечных сечений могут создаваться и комбинироваться одним из сле-
дующих методов:
□ полимеризация смол лазером, другими источниками света или лампами;
□ избирательное спекание твердых частиц или порошка лучом лазера;
□ связывание жидких или твердых частиц путем склеивания или сварки;
□ резка и ламинирование листового материала;
□ плавление и отверждение.
Типичные процессы быстрого прототипирования и изготовления, основанные на
этих методах, описаны в следующем разделе.
12.2. Процессы быстрого прототипирования
и изготовления
Характеристики некоторых серийно выпускаемых машин для быстрого прототи-
пирования и изготовления, использующих различные типы процессов, сведены
в табл. 12.1.
12.2.1. Стереолитография
В копие 70-х — начале 80-х гг. XX в. А. Герберт из корпорации ЗМ в Миннеа-
полисе, X. Кодама из Исследовательского института префектуры Нагоя в Япо-
нии и К. Халл из корпорации Ultra Violet Products (UVP) в Калифорнии неза-
висимо друг от друга работали над идеями быстрого прототипирования,
основанными на избирательном отверждении поверхностного слоя фотополи-
мера и построении трехмерных объектов из последовательно наложенных слоев.
Герберт и Кодама прекратили работу из-за недостатка финансирования, так и
не сумев разработать коммерческий продукт. Халл благодаря стабильной под-
держке от UVP разработал систему, способную автоматически изготавливать
детали сложной формы. Халл ввел в обращение термин стереолитография
(stereolithography) и в 1986 г. основал корпорацию 3D Systems, которая нача-
ла производить стереолитографические аппараты (stereo lithography apparatus —
SLA).
Процесс изготовления детали изображен на рис. 12.1, а и протекает следующим
образом. ч
1. Фоточувствительный полимер, затвердевающий на свету, поддерживается
в жидком состоянии.
2. На толщину одного слоя ниже поверхности жидкого полимера располагается
платформа, способная двигаться в вертикальном направлении.
3. Ультрафиолетовый лазер сканирует слой полимера над платформой, отвер-
ждая полимер по форме соответствующего поперечного сечения. Обратите
внимание, что этот процесс начинается с нижнего поперечного сечения де-
тали.
Сканирующее —► ЛУЧ лазера
зеркало я « Подъемник
* * Поверхность ''>к-
Затвердевший * жидкости
пластик «Светоотверждаемая
Платформа
б
Рис. 12.1. Стереолитография: а — процесс; б — аппарат SLA-3500 от 3D Systems
(с разрешения 3D Systems, Inc.)
4. Платформа опускается в ванну с полимером на толщину одного слоя, давая
полимеру растечься по поверхности детали для начала нового слоя.
5. Шаги 3 и 4 повторяются, пока не будет наращен верхний слой детали.
6. Для полного затвердевания детали выполняется окончательное отверждение.
Этот шаг необходим, поскольку в каждом слое могут еще оставаться жид-
кие участки. Так как лазерный луч имеет конечные размеры, сканирование каж-
дого слоя аналогично закрашиванию некоторой фигуры тонкой цветной ручкой.
Реальный аппарат для стереолитографии показан на рис. 12.1, б.
Стереолитография наиболее популярна среди процессов быстрого прототипиро-
вания и изготовления, и ее интерфейс с твердотельной моделью стал стандартом
для других процессов. Однако она требует создания поддерживающих структур,
если деталь имеет вырезы внизу, то есть верхнее поперечное сечение детали име-
ет большую площадь, чем нижнее (рис. 12.2). Изготовленная методом стереоли-
тографии крыльчатка изображена на рис. 12.3. Более подробно процесс стерео-
литографии будет описан далее.
Угловое соединение
а
Островок
б
Потолок с аркой
в
Рис. 12.2. Поддерживающие структуры в стереолитографии
Потолок
г
Рис. 12.3. Крыльчатка, изготовленная методом стереолитографии
12.2.2. Отверждение на твердом основании
В процессе отверждения на твердом основании (solid ground curing, SGC) каж-
дый слои отверждается путем экспонирования ультрафиолетовой лампой, а не
сканирования лазерным лучом Таким образом, все точки слоя затвердевают од-
новременно и окончательное отверждение не требуется. Типичный процесс от-
верждения на твердом основании имеет место в системе Solider от Cubital Israel,
работа которой происходит так.
1. По данным геометрической модели детали и желаемой толщине слоя рассчи-
тывается поперечное сечение каждого слоя.
2 Для каждого с лоя изготавливается оптическая маска по форме соответствую-
щего поперечного сечения
3. После выравнивания (рис. 12.4, а), платформа покрывается тонким слоем жид-
кого фотополпмера (рис. 12.4, б).
Нанесение полимера
б
Заполнение пустот
д
Рис. 12.4. Система Solider
1. Над поверхностью жидкой пластмассы помещается маска, соответствующая
текущему слою, и пластмасса экспонируется светом мощной ультрафиолето-
вой лампы (рис. 12.4, в). Обратите внимание, что процесс начинается с маски,
соответствующей нижнему слою
5. Оставшаяся жидкость удаляется с изделия аэродинамическим wiper (рис. 12.4, г).
6- Изделие покрывается слоем жидкого воска, который заполняет пустоты
(рис. 12.4, д'). Затем к воску прикладывается холодная пластина, и он затвер-
девает.
1 Слои стачивается до желаемой толщины с помощью шлифовального диска
(рис. 12.4, е).
8. Готовая часть изделия покрывается тонким слоем жидкого полимера, и шаги
4-7 повторяются для каждого последующего слоя, пока не будет обработан
самый верхний слой.
9. Воск расплавляется и удаляется из готовой детали.
Главным преимуществом отверждения на твердом основании по сравнению со
стереолитографией является отсутствие необходимости в поддерживающих струк-
турах. Это обусловлено тем, что пустоты заполняются воском. Кроме того, благо-
даря использованию света лампы вместо лазерного лучА исключается операция
окончательного отверждения. Хотя отверждение на твердом основании позволяет
изготавливать детали с большей точностью, чем стереолитография, процесс этот
весьма сложен.
12.2.3. Избирательное лазерное спекание
Процесс изготовления детали путем избирательного лазерного спекания, разра-
ботанный фирмой DTM (США), протекает следующим образом.
1. Цилиндрическая заготовка помещается на высоте, необходимой для того, чтобы
на нее можно было осадить слой порошкового материала желаемой толщины.
Порошковый материал, используемый для изготовления прототипа, поступает
из подающего цилиндра и наносится выравнивающим валиком (рис. 12.5).
Цилиндрическая заготовка
Деталь
Выравнивающий валик
Подающий цилиндр
Лазерная оптика Луч
и сканирующие зеркала СОг-лазера
Рис. 12.5. Избирательное лазерное спекание (с разрешения DTM Corporation)
2. Слой порошка избирательно сканируется и нагревается лучом лазера, вслед-
ствие чего частицы слипаются между собой. Просканированные частицы по-
рошка образуют требуемое поперечное сечение. Обратите внимание, что этот
процесс начинается с нижнего поперечного сечения детали.
3 Цилиндрическая заготовка опускается на толщину одного слоя для нанесе-
ния нового слоя порошка.
4. Луч лазера сканирует новый слои порошка, склеивая его с предыдущим и фор-
мируя следующее поперечное сечение.
5. Шаги 3 и 4 повторяются, пока не будет создан самый верхний слой детали.
6. Для некоторых материалов может понадобиться окончательное отверждение.
Поддерживающая структура не требуется, потому что пустоты каждого слоя
заполняются необработанным порошком. Более того, в качестве материала для
процесса избирательного спекания потенциально может использоваться любой
плавкий порошок, даже металлический, если лазер обладает достаточной мощ-
ностью. На практике для металлических порошков, частицы которых покрыты
термопластическим связующим материалом, используется косвенное спекание.
Под лучом лазера связующий материал расправляется и свободно связывает час-
тицы металлического порошка, образуя желаемую форму, которая называется
«зеленой деталью» (green part) В этом случае достаточно, чтобы мощности лазе-
ра хватало для расплавления связующего материала. Затем зеленая часть под-
вергается обработке в печи, в ходе которой связующий материал выжигается,
а частицы металлического порошка связываются за счет обычных механизмов
спекания. Получившаяся деталь носит название «коричневой детали» (brown part).
Без дальнейшей обработки деталь будет довольно пористой из-за наличия пус-
тот, которые ранее занимали частицы связующего материала. Чтобы снизить по-
ристость, в печь помещается еще один материал — инфильтрапт. Этот металл
расправляется при рабочей температуре печи и проникает в поры детали за счет
капиллярного эффекта. Данный метод используется для изготовления форм для
литья непосредственно по их геометрическим моделям. Ресурса таких форм до-
статочно для изготовления от 2500 до 10 000 деталей-прототипов.
12.2.4. Трехмерная печать
Разработанный в Массачусетском Технологическом институте процесс трехмер-
ной печати был назван так из-за своей схожести с печатью на струйном принте-
ре. В трехмерной печати вместо чернил используется жидкое связующее вещест-
во. Процесс трехмерной печати происходит следующим образом (рис. 12.6).
1. Платформа располагается на высоте, необходимой для того, чтобы можно было
нанести на нее слой керамического порошка надлежащей толщины.
2. Нанесенный слой керамического порошка избирательно сканируется печатаю-
щей головкой, из которой поступает жидкое связующее вещество, вызывающее
прилипание частиц друг к другу. Отсканированные печатающей головкой
частицы образуют требуемую форму поперечного сечения. Обратите внима-
ние, что этот шаг начинается с нижнего поперечного сечения.
3. Платформа опускается на одну толщину слоя, позволяя нанести следующий
слой порошка.
4. Новый слой сканируется, образуя следующее поперечное сечение и склеива-
ясь с предыдущим слоем.
5. Шаги 3 и 4 повторяются, пока не будет создан верхний слой детали.
Для отверждения детали проводится последующая тепловая обработка.
Рис. 12.6. Трехмерная печать (с разрешения проф. Сакса, MIT)
Готовая деталь
С помощью трехмерной печати было бы удобно изготавливать формы для литья,
поскольку форма изготавливается как цельная деталь, состоящая из оболочки и
полостей, и положение полостей относительно оболочки можно было бы зада-
вать точно. Однако формы для литья, изготовленные путем современной трех-
мерной печати, имеют невысокое качество поверхности.
12.2.5. Ламинирование
В процессе ламинирования (laminated object manufacturing — LOM), коммерциа-
лизированном фирмой Helisys, деталь изготавливается путем ламинирования
и лазерной резки материалов, поступающих в листовом виде. Слипание листов
происходит за счет наличия термоадгезивного покрытия. Процесс протекает сле-
дующим образом.
1. Каждый лист приклеивается к заготовке с помощью нагрева и давления, об-
разуя очередной слой. Листовой материал подается в виде непрерывного ру-
лона с одной стороны машины и принимается с противоположной стороны
(рис. 12.7). Температуру и давление, необходимые для ламинирования, обес-
печивает нагретый валик. Обратите внимание, что когда к стопке приклеива-
ется следующий лист, платформа опускается на толщину одного листа.
2. После того как слой (лист) приклеен, он сканируется лазером вдоль контуров
текущего поперечного сечения. Обычно для этой цели используется лазер на
углекислом газе мощностью 25 или 50 Вт. Как и в других процессах, этот шаг
начинается с нижнего поперечного сечения. Обратите внимание, что здесь
сканирование производится только по контурам. Это делает данный процесс
более эффективным, чем процессы, требующие растрового сканирования.
3. Области слоя, выходящие за пределы контуров, штрихуются лазером (то есть
рассекаются на маленькие кусочки, называемые черепичками (tiles), для по-
следующего удаления, когда деталь будет закончена).
Лазер
ролик
Рис. 12.7. Ламинирование (с разрешения Helisys, Inc.)
4. Шаги 1-3 повторяются до тех пор, пока не будет наклеен и вырезан верхний
слой детали.
5. После того как все слои будут готовы, результатом будет деталь, находящаяся
внутри блока поддерживающего материала. Этот материал затем разламыва-
ется на кусочки вдоль линий лазерной штриховки.
6. Готовую деталь можно покрыть герметиком, чтобы предохранить ее от влаж-
ности.
Наличие поддерживающего материала вокруг детали имеет свои преимущества
и недостатки. Прежде всего оно исключает необходимость во внешних поддер-
живающих структурах. При изготовлении детали внутри блока поддерживающе-
го материала, имеющего определенную форму, геометрия всей структуры стаби-
лизирована в процессе изготовления и, соответственно, ей не грозит перекос под
собственным весом. Более того, нам не приходится беспокоиться об изолирован-
ных «островках», которые часто образуются, когда твердое тело, спроектирован-
ное в CAD-системе, рассекается на слои. Иными словами, ламинирование позво-
ляет избежать создания специальных подпорок, которые точно фиксировали бы
эти «островки» в пространстве, пока в процессе изготовления не будут созданы
«мосты» к оставшимся частям детали. Однако удаление лишнего материала по
окончании изготовления детали является непростой задачей (рис. 12.8).
Чтобы гарантировать, что удалены будут только излишки, а хрупкие части детали
не будут при этом сломаны, необходима бережная очистка, выполняемая вруч-
ную. Кроме того, полую структуру с замкнутыми поверхностями невозможно
изготовить в виде единой части, поскольку в этом случае излишки материала
невозможно будет извлечь изнутри. Сложность удаления ненужного материала
характеризует любую часть с узкими перемычками, 'внутренними полостями с
ограниченным доступом, слепыми отверстиями и т. п. Далее, большая часть ма-
териала, расходуемая при ламинировании, идет не на саму деталь, а остается
неиспользованной в рулоне или образует поддерживающие структуры, которые
будут удалены после изготовления. Это может быть весьма расточительно, если
применяются более дорогостоящие материалы, чем бумага.
в г
Рис. 12.8. Процесс удаления черепичек (с разрешения Helisys, Inc.)
Помимо преимуществ и недостатков процесс ламинирования имеет следующие
характеристики.
□ Это субтрактивный, а не аддитивный процесс (то есть для создания слоя
с требуемым поперечным сечением материал удаляется, а не добавляется).
Во всех прочих процессах БПИ слои образуются путем добавления материа-
ла. Таким образом, потенциально ламинирование является самой быстрой
технологией изготовления деталей с большим отношением объема к площади
поверхности.
□ Детали образуются перемежающимися слоями материала и клейкого вещества.
Соответственно, многие из их физических свойств являются неоднородными
и анизотропными.
□ Потенциальная точность процесса изготовления ламинированных объектов
высока. В нем может использоваться сколь угодно тонкий листовой матери-
ал, что позволяет достичь хорошей разрешающей способности в направле-
нии наращивания детали. В действительности изготовить тонкий однород-
ный листовой материал несложно, и усадка при ламинировании не представ-
ляет проблемы, поскольку контуры вырезаются после того, как происходит
усадка.
□ Хотя процесс потенциально применим ко многим материалам, включая пла-
стики, композиты и металлы, наиболее популярным на сегодняшний день яв-
ляется бумажное ламинирование.
12.2.6. Моделирование методом наплавления
В процессе наплавления (fused-deposition modeling — FDM), коммерциализиро-
ванном фирмой Stratasys, каждый слой формируется путем выдавливания тер-
мопластичного материала, находящегося в жидком состоянии (рис. 12.9). Темпе-
ратура выдавливаемого материала незначительно превышает его температуру
затвердевания: это аналогично созданию надписей на торте шоколадным кре-
мом. Деталь изготавливается путем последовательного наплавления слоев. Этот
процесс относительно прост, но его применение ограничено термопластичными
материалами.
Рис. 12.9. Моделирование методом наплавления (с разрешения Stratasys, Inc.)
12.2.7. Недорогие станки для быстрого прототипирования
и изготовления
Как было сказано выше, быстрое прототипирование и изготовление позволяет
сократить время и расходы, требуемые на доведение нового продукта от перво-
начальной идеи до производства. Использование быстрого прототипирования
и изготовления на ранней стадии процесса проектирования позволит выявить
фундаментальные ошибки, исправление которых может обойтись дорого, если
они обнаруживаются в тот момент, когда деталь уже Зотова к производству. Од-
нако детали, изготовленные этим способом, недешевы, .п порой сложно опреде-
лить, сколько деталей следует изготовить, чтобы получить от них максимальную
отдачу. Кроме того, поскольку быстро изготовленные прототипы по-разному
используются на различных стадиях процесса проектирования, физические тре-
бования к ним также будут варьировать в зависимости от способа использова-
ния. И именно здесь может сыграть свою роль новый класс приборов — офис-
ные, или настольные станки для моделирования. С помощью таких приборов, как
Aetna 2100 от 3D Systems, Genisys от Stratasys. Model Maker II от Sanders Proto-
type, Z402 от Z Corporation и JP System 5 от Schroff Development, имеющих более
низкую цену и меньшие эксплуатационные расходы, удобно изготавливать отно-
сительно грубые (за исключением Model Maker II), но недорогие прототипы для
проверки реализуемости идеи и оценки проекта. Недорогие станки для быстрого
прототипирования п изготовления от различных производителей сравниваются
в табл. 12.2, а на рис. 12.10 иллюстрируется технология под названием много-
струнное моделирование (multijet modeling — MJM), применяемая в приборе
Aetna 2100 от 3D Systems. В методе многострунного моделирования использу-
ется печатающая головка с линейкой из 96 сопел.
Таблица 12.2. Характеристики недорогих (настольных) станков
для быстрого прототипирования
Модель Aetna 2100 Genisys Model Maker II JP System 5
Компания 3D Systems Stratasys, Inc. Sanders Prototype, Inc Schroff Development Со.
Размеры рабочего простран- ства 250x200x200 мм 203x203x203 мм 152x304x228 мм Стандартная версия-, резец ши- риной 305 мм Расширенная вер- сия: резец шири- ной 610 мм
Техноло- гия Печатающая го- ловка с 96 сопла- ми слой за слоем наносит термопо- лпмерный мате- риал Ус тройство трех- мерной печати с подачей материа- ла через экстру- зионную головку Жидкого ю-твер- дый струйный плоттер па носит два материала слой за слоем 11арезка слоев резцом плоттера с ручным их на- ложением
Программ- ный ин- терфейс Программа Allegro и сокет TCP/IP Программа AntoGcn п сокет TCP/IP ModelWorks (ра- ботает с файлами SLC, STL, AntoCad DXF, HPGL и OBJ) Импортирует STL
Толщина слоя — — 0,013-0,13 мм 0,1-0,3 мм
Продолжение &
Таблица 12.2. Продолжение
Модель Aetna 2100 Genisys Model Maker II JP System 5
Точность -/300 DPI 0,356 мм/0,33 мм 0,025 мм (.г, у) 0,013 мм (z) Не гарантируется какой-либо опре- деленный уро- вень точности
Подача материала Картридж с тср- моиолимериым материалом (хрупкий пласти- ковый полимер) Кассеты с листа- ми пластикового полимера (проч- ный пластиковый полимер) Шарики термо- пластика и воска отдельно засыпа- ются в резервуар и расплавляются Бумага
Размеры 1370x760x1120 мм 914x737x813 мм 685x381x685 мм Площадь около 610x1220 мм
Вес 415 кг 84 кг 40,8 кг
Рис. 12.10. Схема многоструйного моделирования в аппарате Aetna 2100 от 3D:
а — механизм; б — изготовление детали (с разрешения 3D Systems, Inc.)
12.3. Применение быстрого прототипирования и из1 отовления
12.3. Применение быстрого прототипирования
и изготовления
Область применения быстрого прототипирования и изготовления определяется
достижимой точностью изготовления детали и механическими свойствами ис-
пользуемого материала — растяжимостью, твердостью и прочностью на разрыв.
Варианты применения можно разбить на три основные группы:
□ прототипы для оценки проекта;
□ прототипы для функциональной оценки;
□ модели для дальнейшего производственного процесса.
Первое время после своего появления процессы БПИ использовались в основном
для придания спроектированному объекту зримой формы и заполнения комму-
никационного пробела, позволяя создавать полноразмерные физические модели,
которые можно потрогать и подержать. Это произвело революцию в совещаниях
по оценке проектов: конструктивный диалог, который ведут члены конструктор-
ской группы, передавая друг другу модель, дал им возможность формулировать
свои критические замечания и предложения на общем уровне зрительного взаи-
мопонимания. В некоторых случаях поддержка конструкторов сама по себе слу-
жила главным обоснованием вложения средств в станки для быстрого прото-
типирования и изготовления. Теперь широкое распространение процессов БПИ
в сфере производства стало движущей силой их дальнейшего развития.
12.3.1. Прототипы для оценки проекта
Современные системы твердотельного моделирования упрощают оценку проек-
та благодаря наличию таких функций, как просмотр, затенение, вращение и уве-
личение. Однако не подлежит сомнению, что оценка проекта производится более
адекватно, когда конструктор может потрогать и подержать в руках физический
прототип конструкции. Даже несмотря на огромный опыт в чтении чертежей
или CAD-изображений сложных объектов отчетливо представить себе, как будет
выглядеть реальная деталь, — это до сих пор очень сложная задача. Такие особен-
ности, как слепые отверстия, сложные внутренние каналы и поверхности слож-
ной кривизны, зачастую приводят к трудностям в интерпретации. Сокращение
количества ошибок за счет улучшенной визуализации детали может быть значи-
тельным. Нет лучшего способа удостовериться, что сложная деталь имеет имен-
но те свойства, которые планировались, чем подержать ее в руках, повертеть и
посмотреть на нее со всех сторон. В частности, для эстетической оценки дизайна
физический объект необходим.
12.3.2. Прототипы для функциональной оценки
Когда проект готов, конструктор должен удостовериться, что он обеспечивает
выполнение всех функций, которые изначально предполагались. Простая функ-
циональная оценка может включать проверку практичности сборки, кинемати-
ческих и аэродинамических характеристик.
Часто бывает необходимо проверить, можно ли легко собрать продукт из состав-
ляющих его компонентов или разобрать его для обслуживания. Нередко оказы-
। пана iz. ьысгрое прот шинирование и изготовление
вается, что собрать продукт можно лишь с большими трудностями, а порой и во-
все невозможно. Для простых сборных конструкций возможность или простоту
сборки можно оценить, глядя на чертеж. Однако на практике принято выпол-
нять такую проверку путем реальной сборки. В этом случае прототипы, созда-
ваемые методом быстрого прототипирования и изготовления, весьма полезны,
поскольку компоненты, сделанные из другого материала, являются тем не менее
достаточно адекватными для выполнения сборки. Использование прототипов
вместо реальных компонентов дает значительную экономию времени и средств.
При тестировании кинематических характеристик проверяется, функционируют
ли движущиеся части сборной конструкции так, как это задумывалось. Движе-
нию деталей часто препятствуют неожиданные помехи или другие компоненты
сборки. Фактически невозможность движения некоторых компонентов по при-
чине столкновения одних компонентов с другими может быть выявлена только
при тестировании собранного физического прототипа. Поскольку кинематиче-
ские характеристики могут быть проверены па компонентах, не имеющих такой
степени прочности, как требуется для конечного продукта, прототипы, изготов-
ленные методом быстрого прототипирования, снова оказываются весьма полезны.
Прототип, созданный посредством быстрого прототипирования и изготовления,
можно также использовать для проверки аэродинамических характеристик кон-
струкции путем ее продувки в аэродинамической трубе. Ключевую роль в опре-
делении аэродинамических характеристик детали играет ее геометрическая фор-
ма, поэтому здесь подойдет прототип, изготовленный из другого материала.
Однако для проверки других характеристик — прочности, пределов рабочей тем-
пературы, усталости и коррозионной устойчивости — требуется, чтобы прототип
был сделан из того же материала, что и оригинальная конструкция. К сожа-
лению, ввиду ограничений на типы материалов, которые могут использоваться
для быстрого прототипирования и изготовления, многие из материалов, указы-
ваемых конструкторами, не подходят для создания прототипов этим методом.
Однако такие прототипы могут использоваться в качестве шаблонов для других
производственных процессов, которые мы опишем в следующем разделе. На на-
стоящий момент успешно опробован ряд методов, позволяющих относительно
быстро и рентабельно пройти путь от прототипа до реальной функциональной
детали.
Значительные преимущества, например, обеспечивает сочетание изготовления
моделей и литья. В этом случае литейная модель и стержни изготавливаются
системой быстрого прототипирования и используются так же, как и деревянные
модели и обычные стержни. Модели могут также использоваться для копирова-
ния. Еще одно важное применение прототипов — нанесение покрытий. В частно-
сти, приобретает популярность изготовление катодов для процедур электрозрози-
онной обработки путем нанесения покрытия на медные детали. Ниже приведен
перечень технологии производства, в которых в качестве шаблонов можно исполь-
зовать прототипы, созданные методом быстрого прототипирования [75]:
□ вулканизационное литье из силикона при комнатной температуре;
□ вакуумное литье;
Q формовое блочное литье;
□ аэрозольное металлическое литье (процесс Тафа);
□ литьевое прессование пластмасс;
□ литье в песчаные формы из алюминия и черных металлов;
□ литье по выплавляемым моделям;
□ инструменты для электроэрозионпой обработки (процесс Хаузермана).
Какая из технологий окажется наиболее выгодной, зависит от размеров и гео-
метрии прототипа, типа материала функционального компонента, требуемой точ-
ности и количества компонентов, которые необходимо изготовить.
12.3.3. Процессы быстрой инструментовки
Быстрая инструментовка (rapid tooling) — новый термин, не имеющий четкого
определения. Первоначально он использовался лишь применительно к быстро-
му прототипированию, но потом стал применяться для описания всех процессов,
позволяющих быстро изготавливать инструменты. Сюда относятся процессы об-
работки (например, высокоскоростная резка) и процессы быстрого прототипи-
рования и изготовления.
Если говорить о быстром прототипировании, то быстрая инструментовка вклю-
чает в себя четыре типа методов, различающихся числом инверсий шаблона:
прямая обработка, одноинверсная обработка, двухинверсиая обработка и трех-
инверсная обработка. Увеличивая число инверсий, можно повысить надежность
продукта, но стоимость его при этом будет расти, а точность изготовления —
уменьшаться.
Методы прямой инструментовки
При прямой инструментовке инструменты изготавливаются непосредственно пу-
тем быстрого прототипирования. ACES-литье под давлением (Direct AIM) фир-
мы 3D Systems, RapidTool фирмы DTM, Soliform и литье с прямым изготовлени-
ем оболочковых форм (DSPC) являются методами прямой инструментовки.
В процессе Direct ATM стержневая и полостная вставки для литейной формы из-
готавливаются методом стереолитографии из SL-фотополимера с температурой
стеклования всего 75 °C. Метод ACES, который мы будем обсуждать позже, —
это технология изготовления, разработанная фирмой 3D Systems. Пример
стержневой и полостной вставок, изготовленных по методу ACES компанией
Xerox с использованием полимера Cibatool SL5170, показан на рис. 12.11. В сбо-
ре эти вставки образуют стержневую и полостную части основания формы. Ком-
пании Xerox удалось изготовить 100 частей литейной формы из требуемого ма-
териала за 5 дней. Г1а переднем плане рис. 12.11 показаны две полистироловые
ручки переключателя (одна — с еще не удаленным литником) [76].
В процессе RapidTool используется железистый сплав с малым содержанием уг-
лерода, имеющий форму частиц размером 50 мкм, покрытых полимером. Поли-
мерный слой этого порошка расплавляется машиной для лазерного спекания.
«Зеленая деталь», созданная таким способом, пропитывается растворимым в
воде полимерным связующим веществом. Пропитка осуществляется путем по-
гружения «зеленой детали» на глубину около 0,5 мм в ванну с полимером. Бла-
годаря капиллярному эффекту компоненты высотой до 100 мм полностью про-
питываются за полчаса. Компоненты в этом состоянии имеют весьма малую
формоустойчивость, поэтому обращаться с ними следует чрезвычайно осторож-
но. Пропитанная «зеленая деталь» высушивается в вакууме при температуре
50 °C в атмосфере азота.
Рис. 12.11. Стержневая (слева) и полостная (справа) вставки, изготовленные
по методу Direct AIM, и готовая деталь (с разрешения 3D Systems, Inc.)
На последнем шаге процесса используется печь для спекания. Сначала усилен-
ная «зеленая деталь» взвешивается, и по результату взвешивания определяется
количество медного сплава, необходимое для пропитки детали. Усиленная «зе-
леная деталь» и медный сплав помещаются в графитовый тигель. Процесс начи-
нается с того, что в два этапа выдавливается полимерный связывающий агент.
Затем деталь нагревается до температуры, при которой железный порошок начи-
нает плавиться, и между соседними частицами металла начинают образовывать-
ся перемычки.
Пока железный порошок не расплавился до конца, пористость остается высокой.
Температура печи увеличивается далее, после чего медный сплав, который был
добавлен в графитовый тигель, начинает таять и проникать внутрь компонен-
та за счет капиллярного эффекта. После охлаждения до комнатной температуры
готовый компонент инструмента можно вынимать из печи. Полностью затвер-
девший компонент имеет в своем составе 60% стали и 40% меди. Всю процедуру
в целом иллюстрирует рис. 12.12. Время, требуемое на то, чтобы изготовить «зе-
леную деталь», зависит в основном от ее размера, а не сложности. При горизон-
тальных размерах базовой области 180x150 мм и высоте 50 мм процедура лазер-
ного спекания «зеленой детали» длится примерно 24 ч. Пропитка полимером и
последующая сушка занимают приблизительно 48 ч. Для завершающей обработ-
ки в печи требуется около 48 ч. Таким образом, весь процесс изготовления зани-
мает 5 дней, и эта длительность относительно независима от сложности детали.
Все процессы выполняются без какого-либо вмешательства человека; в частно-
сти, для завершающего процесса обработки в печи предусмотрено множество
различных функций и соответствующие программы безопасности. По этой при-
чине в расписание работ можно включать выходные дни. Совокупное время под-
готовки составляет около четырех часов [24].
Рис. 12.12. Процесс RapidTool для опрессовки под давлением
(с разрешения DTM Corporation)
Литье с прямым изготовлением оболочковых форм (direct shell production cas-
ting — DSPC) — это патентованный процесс безмодельного литья, дающий на
выходе функциональные металлические детали (например, головку цилиндра
автомобильного двигателя) за дни вместо месяцев. В основе технологии DSPC
лежит трехмерная печать — процесс, запатентованный Массачусетским Техно-
логическим институтом, исключительную лицензию на который имеет фирма
Soligen. CAD-файл спроектированной детали передается по сети или с помощью
дискеты модулю проектирования оболочки (shell design unit — SDU) системы
DSPC. Зал ем оператор SDU проектирует керамическую форму для отливки ме-
таллической детали, добавляя в геометрию детали литниковую систему и преоб-
разуя обновленный файл в полостной файл в CAD-пространстве. Это одноразо-
вый процесс, по результатам которого можно изготовить множество идентичных
керамических форм. После этого по полостному файлу автоматически изготав-
ливается керамическая литейная форма. Форма изготавливается послойно, и
процесс создания каждого слоя включает в себя три шага. Сначала модель кера-
мической формы «разрезается», давая поперечное сечение. Затем валиковым
механизмом раскатывается слой тонкого порошка. После этого вся область попе-
речного сечения формы сканируется многоструйной печатающей головкой, на-
носящей связующее вещество. Проникая в поры между частицами порошка, свя-
зующее вещество формирует из них жесткую структуру. По завершении одного
слоя модель керамической формы снова разрезается, теперь уже несколько
выше, и процесс повторяется, пока не затвердеют все слои формы. Затем форма
I ndua iz. ьыстрбе прототипирование и изготовление
очищается от избыточного порошка и обжигается, после чего в ней можно про-
изводить отливку. DSPC-форма может содержать цельный керамический стер-
жень, что позволяет отливать полые металлические детали. Для литья в DSPC-
формы можно использовать практически любые металлы. С помощью этой тех-
нологии изготавливались детали автомобилей из алюминия, магния, мягкого же-
леза и нержавеющей стали. Процесс литья с прямым изготовлением оболочко-
вых форм показан на рис. 12.13.
Шаг 1. Деталь проектируется с помощью
CAD-программы и экспортируется
в формате STL
Шаг 2. Программа Soligen
проектирует литейную форму
и рассекает ее на слои
Шаг 3. Соответственно каждому слою
литейной формы, или «оболочки»,
наносится тонкий слой порошка
Шаг 4. Струйная печатающая головка наносит
связующее вещество, превращающее
порошок в твердую керамику
Шаг 5. Процесс повторяется, пока
не будут готовы все слои оболочки
Шаг 6. Свободный порошок удаляется
из готовой оболочки
Шаг 7. Оболочка обжигается, и в нее
запивается расплавленный металл
Шаг 8. Оболочка разбивается
Деталь готова
Рис. 12.13. Литье с прямым изготовлением оболочковых форм
12.3. Применение быстрого прототипирования и из< ui пленим
Одноинверсные методы
Одноинверсные методы (single-reverse methods) предназначены для непосредст-
венного преобразования различных шаблонов быстрого прототипирования в ли-
тые детали из других материалов. Литье по выплавляемым моделям, аэрозоль-
ное металлическое литье и вулканизационное литье из силиконовой резины
являются одноинверсными методами. Процесс одноинверсной инструментовки
изображен на рис. 12.14.
Модель извлекается
Отливается вторая Конструкция переворачивается
часть формы и блок линии разъема удаляется
Рис. 12.14. Процесс одноинверсной инструментовки
Литье по выплавляемым моделям — это прецизионный процесс литья, исполь-
зуемый для изготовления металлических деталей почти из любых сплавов. Хотя
в прошлом он использовался главным образом для создания произведений ис-
кусства, теперь этот метод широко используется в производстве компонентов,
требующих сложного, высокоточного, зачастую тонкого литья высокого качества.
В отличие от литья в песчаные формы, где по одной модели можно изготовить
большое количество форм, при литье по выплавляемым моделям для каждой от-
ливки необходимо использовать новую форму. Эти модели, обычно изготавли-
ваемые методом литья под давлением, сделаны из воска, формула которого спе-
циально подобрана для этого процесса. Готовая восковая модель объединяется с
другими восковыми компонентами, образуя систему подачи металла, называе-
мую системой литников и желобов (gate and runner system). Далее вся восковая
конструкция опускается в суспензию, обсыпается песком и оставляется высыхать.
Многократные процедуры погружения и обсыпания повторяются до тех пор, пока
не будет наращена оболочка толщиной 6,35-9,5 мм. По высыхании керамики вся
сборка помещается в паровой автоклав, чтобы удалить большую часть воска. По-
сле автоклавирования оставшийся воск, впитавшийся в керамическую оболочку,
выжигается в воздушной печи. В результате получается пустая оболочка. Затем ее
обычно нагревают до определенной температуры и заливают в нее расплавленный
металл. Нагревание формы помогает заполнить сложные конфигурации и топкие
'W
Глава 12. Быстрое прототипирование и изготовление
места. Когда отлитая деталь достаточно охладится, оболочка обламывается с
формы, после чего удаляются литники и желобки. Таким образом, процесс тре-
бует, чтобы для каждой новой отливки создавалась, а затем разрушалась отдель-
ная модель.
Традиционный метод литья по выплавляемым моделям с опрессовкой под дав-
лением изображен на рис. 12.15, а. Быстрое прототипирование позволяет сэко-
номить время, устраняя необходимость в изготовлении формы для литья под
давлением. Процесс литья по выплавляемым моделям, включающий использо-
вание модели, выполненной методом быстрого прототипирования, показан на
рис. 12.15, б. Различные процессы быстрого прототипирования для изготовления
литейных моделей сравниваются в табл. 12.3.
4 недели
,. Изготовление
Инструментовка модел/
Монтаж
и формовка
„ „ Последующая
* Выжигание * Литье *
Готовая
деталь
4 недели
Быстрое
прототипирование
Монтаж
и формовка
_ „ Последующая
* Выжигание * Литье * обратка
Готовая
деталь
б
Рис. 12.15. Литье по выплавляемым моделям: а — традиционный метод;
б — использование прототипа, изготовленного методом БПИ
Литье в песчаные формы используется в случаях, когда гладкость результирую-
щей поверхности не является критичной. Это технология крупносерийного про-
изводства, требующая стабильных литейных моделей, стержней и стержневых
ящиков. Для создания крупных, громоздких моделей и стержней, используемых
при литье в песчаные формы, хорошо подходит процесс изготовления ламини-
рованных объектов. Когда требуется 100 компонентов, ламинированные детали
можно отполировать, герметизироват ь, покрасить и использовать непосредствен-
но для создания отпечатков в песке. Изготовленный методом ламинирования
прототип, используемый в качестве модели для литья в песчаные формы, изо-
бражен на рис. 12.16.
Рис. 12.16. Модель для литья в песчаные формы (с разрешения Helisys, Inc )
Таблица 12.3. Сравнение различных процессов быстрого прототипирования для изготовления литейных моделей
(с разрешения Cercast Group, Монреаль, Канада)
Sanders Prototype Model-Maker (струйный) отличная превосходная превосходная пренебрежи- мое малое отсутствует ' превосходная
Stratasys моделирова- ние методом наплавления от хорошей до отличной от средней до хорошей от средней до хорошей пренебрежи- мое малое отсутствует плохая
Helisys ламинирова- ние от средней до хорошей хорошая хорошая низкое длительное большой средняя
DTM избирательное лазерное спе- кание, поли- карбонат хорошая хорошая хорошая от умеренного до низкого малое малый средняя
DTM избирательное лазерное спе- кание, воск отличная средняя средняя пренебрежи- мое малое отсутствует плохая
3D Systems стереолито- графия (QuickCast) от средней до хорошей отличная низкая высокое умеренно дли- тельное малый хорошая
3D Systems стереолито- графия плохая отличная низкая высокое длительное от умеренного до большого хорошая
Поставщик Процесс Совместимость Точность модели по XY Точность модели по Z Температурное расширение пе- ред выжиганием Время выжигания Остаток после выжигания Гладкость по- верхности
4
Глава 12. Быстрое прототипирование и изготовление
Аэрозольное металлическое литье (spray metal molding) применяется для изго-
товления форм для мелкосерийного литья прототипов под давлением. Модель
монтируется на металлической или деревянной основе, создаются линии разъе-
ма. Обычно модель разделяется на две половины (если она не была изначально
изготовлена разъемной) глиняной или деревянной перегородкой. Затем она по-
крывается тонким слоем высокотемпературной изоляции, например печной эма-
ли, и разделительным составом, таким как поливиниловый спирт. После этого
на одну половину прототипа наносится металлический аэрозоль. Далее оболочка
окружается стенками, образующими ящик, в который заливается эпоксидная
смола. Внутри ящика вдоль оболочки проводятся линии охлаждения, которые
обеспечивают надлежащую температуру и предотвращают растрескивание. Ящик
с оболочкой заливается эпоксидной смолой, после чего все вместе переворачива-
ется вверх дном и перегородка удаляется. Пока что готова только половина формы.
Тот же самый процесс необходимо применить к необработанной стороне модели.
Когда это будет сделано, половины разделяются по линии разъема, и оригиналь-
ная модель извлекается. Получается форма, состоящая из двух частей. Такая
форма позволяет отлить под давлением до 1000 деталей, в связи с чем идеаль-
ным способом создания прототипа для данного процесса является ламини-
рование. Процесс аэрозольного металлического литья с использованием модели,
выполненной методом быстрого прототипирования, иллюстрирует рис. 12.17.
Вулканизационное литье из силиконовой резины при комнатной температуре
(room temperature vulcanizing — RTV) — быстрый и недорогой процесс, приме-
няемый для создания пластиковых компонентов. В этом процессе прототип ис-
пользуется в «положительной» форме окончательной детали. К прототипу при-
соединяется вертикальный литник (обычно с помощью суперклея), литник и
прототип промываются не оставляющей ворсинок тряпкой, смоченной изопро-
пиловым спиртом, а затем их осторожно подвешивают внутри чистого ящика из
гофрированной бумаги. В ящик заливается силиконовый материал, полностью
покрывая прототип. После этого все вместе — ящик, неотвержденный материал,
прототип и литник — помещается в вакуумную камеру и дегазируется при ком-
натной температуре. Это делается для того, чтобы избавиться от содержащихся в
материале пузырьков воздуха, которые могут привести к дефектам поверхности
формы, если окажутся на границе между прототипом и материалом. После над-
лежащей дегазации материала (длящейся около пяти минут) все сооружение по-
мещается в термостабилизированную печь и сушится в течение приблизительно
четырех часов при температуре 50 °C.
Процесс сушки при вулканизационном литье является экзотермическим, поэто-
му форму необходимо медленно охлаждать до комнатной температуры (пример-
но в течение часа), чтобы свести к минимуму искажения. После этого форма с
прототипом извлекается из ящика и разрезается скальпелем, в результате чего
образуется поверхность разъема. Практика показывает, что в действительности
лучше намеренно делать разрез «волнистым» ближе к краю формы, но значи-
тельно более гладким вблизи прототипа. В результате взаимное положение вы-
пуклостей и вогнутостей каждой из половин формы будет точно определено
(рис. 12.18). Процедура вулканизационного литья из силиконовой резины изо-
бражена на рис. 12.19.
12.3. Применение быстрого прототипирования и изготовления
403
Модель прототип
Напыленная и укрепленная
Рис. 12.17. Процесс аэрозольного металлического литья с использованием модели,
изготовленной методом БПИ
Рис. 12.18. Модель, изготовленная методом стереолитографии (слева внизу),
половинки формы (вверху) и три корпуса магнитолы, отлитые из полиуретана
(с разрешения 3D Systems, Inc.)
404
Глава 12. Быстрое прототипирование и изготовление
Рис. 12.19. Процедура вулканизационного литья из силиконовой резины
при комнатной температуре
12.3. Применение быстрого прототипирования и изготовления
405
В готовую форму можно заливать в вакууме любой цз широкой гаммы полиуре-
танов. Есть множество составов, специально предназначенных для вакуумного
литья и обладающих рядом требуемых свойств — твердостью, прочностью на из-
гиб, модулем изгиба, прочностью на разрыв, модулем разрыва, удлинением на
разрыв и прочностью на удар с надрезом по Изоду [76].
Двухинверсный метод
Если требуется изготовить тысячи компонентов, стержни и полости можно пре-
образовать в модели из твердого пластика (методом вулканизационного литья),
алюминия или стали (методом литья по выплавляемым моделям). Этот двухин-
версный метод был разработан с целью преодолеть недостатки методов прямой
инструментовки и одноинверсных методов, в частности отсутствие надежности.
Двухинверсный метод инструментовки изображен на рис. 12.20.
Модель формы Отливается Исходная модель Отливается
инверсная модель удаляется форма
Инверсная модель
удаляется
Рис. 12.20. Двухинверсная инструментовка
Трехинверсный метод
В трехинверсном методе литейная модель, изготовленная путем одноинверсной
инструментовки (рис. 12.21, а), преобразуется в литейную форму (рис. 12.21, б).
Литье в гипсовые формы и метод 3D Keltool от 3D Systems могут быть отнесены
к трехинверсным методам.
Литье в гипсовые формы используется для изготовления алюминиевых компо-
нентов высокой степени сложности, требующих большей гладкости поверхно-
сти, чем можно достичь при литье в песчаные формы. Литье в гипсовые формы
идеально для компонентов, гладкость поверхности которых должна быть близка
к той, которая обеспечивается литьем под давлением. В этом процессе сначала
создается дубликат прототипа в виде модели из гибкой резины, которая, в свою
очередь, используется для изготовления одноразовых гипсовых форм, куда мож-
но заливать расплавленный металл. Применение гибкой резины обусловлено
тем, что ее можно легко удалить из довольно хрупких гипсовых форм.
Первый шаг в литье в гипсовые формы — изготовление формы из резины, эпок-
сидной смолы или полиуретана, в качестве модели для которой служит прото-
тип (рис. 12.22, а). Этот процесс аналогичен тому, с помощью которого изготав-
ливаются формы из силиконовой резины для литья из эпоксидной смолы.
Сначала прототип помещается в формовочный ящик. В ящик заливается жид-
кий материал до планируемой линии разъема, материалу дают затвердеть. Когда
4UU
Глава 12. Быстрое прототипирование и изготовление
первая половина формы затвердеет, разъемную поверхность обрабатывают раз-
делительным составом, после чего заливается и отверждается вторая половина
формы. Для деталей, не имеющих четко определимой линии разъема, можно сде-
лать форму из нескольких секций. По этой первой форме изготавливается мо-
дель из гибкой резины, которая затем устанавливается в формовочный ящик и
аналогичным образом заливается ячеистым гипсом. Готовые половинки гипсо-
вой формы можно легко разнять и вынуть резиновую модель, не сломав гипс.
После удаления резиновой модели половинки гипсовой формы сушатся в печи в
течение 24-48 ч для полного затвердевания.
Высушенные половинки вновь скрепляются, и в них заливается расплавленный
алюминий, магний или цинк (рис. 12.22, б). Когда металл остынет, гипсовые
формы разбиваются или смываются струей воды высокого давления. По одной
гипсовой модели обычно можно изготовить 25—100 гипсовых форм. Если нужны
дополнительные резиновые модели, их можно отлить в исходную форму из
эпоксидной смолы.
Шаг 1. Создается модель
Шаг 2. Создается блок
линии разъема
Шаг 3. Отливается первая
половина модели формы
Шаг 6. Модель
удаляется
Шаг 5. Отливается вторая
половина модели формы
Шаг 4. Конструкция
переворачивается,
и блок линии разъема удаляется
а
Отливается Исходная
инверсная модель
Инверсная
модель
Модель
формы
модель удаляется
Отливается
форма
удаляется
б
Рис. 12.21. Трехинверсный метод: а — одноинверсный процесс
для создания резиновой формы; б — двухинверсный процесс
для создания инструментов
12.3. Применение быстрого прототипирования и изготовления
407
Прототип
(iii) (iv)
Половинки формы
из эпоксидной смолы
Рис. 12.22. Процесс литья в гипсовые формы: а — шаг I; б — шаг II
(Источник: Rapid Prototyping Report, Vol. 5, No. 1,
CAD/CAM Publishing, Inc., January, 1995.)
В методе 3D Keltool используется патентованный процесс спекания металла для
изготовления стержневых и полостных вставок непосредственно по прототипу,
полученному методом стереолитографии. Срок службы форм, созданных мето-
дом 3D Keltool (полости и стержни имеют твердость по Роквеллу до 50), близок
к сроку службы стандартных стальных форм, а кроме того, эти формы имеют
лучшую теплопроводность при меньших длительностях цикла.
После надлежащей обработки прототип готов к процессу 3D Keltool. Здесь про-
тотип может иметь «положительную» или «отрицательную» форму (рис. 12.23).
Главное преимущество прототипов с положительной геометрией состоит в том,
что их гораздо легче шлифовать и полировать. Эти положительные прототипы,
используемые в процессе обратной генерации (reverse generation), где слово «об-
ратный» относится к процессу инструментовки, очень похожи на законченную
деталь, изготовленную методом литья под давлением, если не учитывать необхо-
димость компенсации усадки и свойств материала. Прототипы с отрицательной
геометрией, используемые в процессе прямой генерации (same generation), анало-
гичны готовым стержневым и полостным вставкам, также если не брать в расчет
компенсацию усадки и свойства материала.
Для случая должным образом обработанного положительного прототипа, полу-
ченного методом стереолитографии (первый шаг в правой части рис. 12.23), пер-
вый шаг процесса 3D Keltool включает формирование «прототипа в ящике»
(второй шаг в правой части рис. 12.23).
*юи
Глава 12. Быстрое прототипирование и изготовление
3DKeltool: способы быстрого прототипирования
Прямая генерация Инверсная генерация
Дзет на выходе точные копии моделей
стержневой и полостной вставок
Дает на выходе стержневую и полостную
вставки, являющиеся инверсными образцами
исходной модели или файла
На входе имеются модели или.вИ-файлы На входе имеются модель или .stl-файл
стержневой и полостной вставок, готовой детали, в не стержневой
изготовленные методом стереолитографии и полостной вставок
Исходный прототип помещается
Создается промежуточная форма в «ящик» (чтобы создать форму
(инверсия исходной модели) положительной геометрии)
Форма заполняется «металлической
смесью» (точно воспроизводя
форму исходной модели)
положительной геометрии
качестве исходного шаблона
ия формы методом
комнатной температуре)
Вставка
Обжигается и пропитывается, после чего
получается стопроцентно твердая
полостная вставка или электрод
тгптг
Необходимо учесть коэффициент усадки 0,008 на дюйм, а также собственный
коэффициент усадки используемого пластичного материала
Рис. 12.23. Два различных способа получения металлических вставок с использованием
процесса 3D Keltool (с разрешения 3D Systems, Inc.)
Далее в ящик заливается дегазированный в вакууме силикон. После его затвер-
девания положительный прототип и силикон извлекаются из ящика. Результа-
том этого второго дополнительного шага является промежуточная форма с отри-
цательной геометрией, сделанная из силикона (третий шаг на рис. 12.23). На
следующем шаге изготавливается окончательная «положительная в ящике» си-
ликоновая форма (четвертый шаг на рис. 12.23). Теперь форма является практи-
iz.j. I <рименение оыстрого прототипирования и изготовления
4U9
чески дубликатом оригинального положительного прототипа, за исключением
того, что она существует в виде «положительной в ящике» формы. Патентован-
ная смесь из металлических частиц (например, инструментальная сталь А6 с па-
тентованным связующим составом) тщательно размешивается и заливается в
«положительную в ящике» форму, после чего ей дают затвердеть (пятый шаг на
рис. 12.23). То, что имеется после затвердевания, представляет собой «зеленую
деталь», имеющую достаточную прочность, чтобы в точности поддерживать
свою геометрическую форму при обычном обращении. Потом «зеленая деталь»
удаляется из «положительной в ящике» формы и обжигается при достаточно
высокой температуре, чтобы сплавить частицы металла и выжечь связующее ве-
щество. Наконец, обожженная деталь, состоящая примерно на 70% из стали, а на
30% из пустот, пропитывается медью. Конечный результат представляет собой
стопроцентно твердую полость формы (шестой шаг на рис. 12.23).
С помощью одной вставки, изготовленной по методу Keltool, было отлито под
давлением 10 миллионов деталей из чистого пластика. На данный момент раз-
мер вставок, выполняемых по методу 3D Keltool, ограничен 150 мм по всем трем
измерениям, что дает максимальный размер детали около 100 мм. В настоящее
время проводятся исследования, целью которых является увеличение возмож-
ных размеров изготавливаемых деталей.
12.3.4. Примеры специального применения
быстрого прототипирования
Весьма вероятно, что по мере развития технологии методы быстрого прототипи-
рования будут находить применение во многих других областях. К недавно най-
денным вариантам применения относятся инженерный анализ, визуализация
потоков, фотоэластическое тестирование и медицинское моделирование.
Инженерный анализ
Инженерный анализ {reverse engineering) — это способ получения трехмерных дан-
ных в компьютеризированной форме из физических моделей или продуктов. Он
имеет явные преимущества в смысле сокращения времени прохождения продукта
от стадии проектирования до выхода на рынок, а также эффективного исполь-
зования вкупе с другими технологиями экономии времени, такими как быстрое
прототипирование и тиражирование. Процесс инженерного анализа состоит из
двух фаз: оцифровка, или измерение детали, и трехмерное моделирование дета-
ли на основе данных оцифровки. Поверхности, определенные по данным оциф-
ровки, обрабатываются и превращаются в твердотельную модель, которую необ-
ходимо экспортировать в STL-файл. Как будет объяснено в разделе 12.4.1, STL-
файл — это стандартные входные данные для любого процесса быстрого прото-
типирования. Перенеся STL-файл на машину для быстрого прототипирования,
можно изготавливать копии отсканированной модели. Основные шаги примене-
ния инженерного анализа в быстром прототипировании иллюстрирует рис. 12.24.
Рис. 12.24. Инженерный анализ в быстром прототипировании и изготовлении
1 лава 12. ьыстрое прототипирование и изготовление
Визуализация потока
Требования термодинамической эффективности и долговечности, предъявляемые
к высокопроизводительным и изностойким двигателям внутреннего сгорания,
обусловливают необходимость протекания через все цилиндры постоянного по-
тока охлаждающего агента. Чтобы обнаружить в испытывающих большие меха-
нические напряжения областях крышки цилиндра и особенно картера те места,
которые недостаточно снабжаются охлаждающим агентом, необходимо всесторон-
нее тестирование. Термодинамические последствия неравномерного распределения
охлаждающего агента — это медленное горение топливно-воздушной смеси и повы-
шенная эмиссия углеводородов из холодных цилиндров, а также проблема «стука»
в «горячих» цилиндрах. Вопросы распределения охлаждающего вещества становят-
ся все более важными из-за экологических ограничений на выхлопы автомобилей.
Существующие методы тестирования обычно включают эксперименты на испыта-
тельном стенде, в которых используются литые компоненты. К сожалению, осна-
стка и формы, необходимые для отливки этих компонентов, зачастую поступают
в распоряжение лишь на очень поздних стадиях проекта. Более того, различные
адаптации, требуемые для тестирования, например бегунки для сенсоров и выре-
зы для оптических систем, могут привести к неверному отображению поведения
реальной конфигурации в рабочем двигателе.
Быстрое прототипирование может быть эффективным альтернативным подхо-
дом к тестированию распределения охлаждающего агента. Оно позволяет с эко-
номией времени и средств изготавливать прозрачные модели для исследования
поведения потока в реальных системах охлаждения двигателей внутреннего сго-
рания. По сравнению с ранее используемыми методами это дает не только значи-
тельные экономические преимущества, но и более высокое качество конечного
продукта. Дополнительную информацию можно получить путем визуализации
шаблона течения охлаждающего агента. Для этого в поток осторожно вводят кро-
шечные пузырьки воздуха и записывают их движение на высокоскоростную видео-
камеру. Изготовленный методом стереолитографии прозрачный картер коробки пе-
редач, который позволяет наблюдать поток смазочного масла, показан на рис. 12.25.
Рис. 12.25. Прозрачный картер коробки передач для Porsche, изготовленный методом
стереолитографии (Источник-. Rapid Prototyping Report, Vol 6, No. 6,
CAD/CAM Publishing, Inc., June, 1996.)
iz.j. । им-неииехта---1 и । ipoTOTiii 1ирования и ил отовления
Фотоэластическое тестирование
Механические напряжения и растяжения в физическом компоненте можно оп-
ределить при надлежащих условиях путем фотоэластического тестирования
(photoelastic testing). В основе этого метода лежит временное двулучепреломле-
ние прозрачного материала, подвергнутого определенной нагрузке. Свойством
двулучепреломления обладает ряд пластических материалов. Двулучепреломле-
ние — это характеристика, проявляющаяся при облучении тестового образца по-
ляризованным белым или монохроматическим светом и состоящая в том, что
один падающий луч разделяется на два, в которых световые колебания взаимно
перпендикулярны. Если тестовый материал прозрачен и демонстрирует адекват-
ное двулучепреломление, направления результирующих лучей будут соответст-
вовать направлениям главных механических напряжений. К счастью, прототи-
пы, изготовленные методом стереолитографии из эпоксидной смолы (например,
SL 5170 и LMB 5353-1 от Ciba-Geigy), обладают высокой степенью прозрачно-
сти и близки по своим характеристикам к тестовым образцам из смолы Araldite,
широко используемой для фотоэластического тестирования. Различные произ-
водители, такие как Ciba-Geigy, Alleid Signal и DuPont, протестировали букваль-
но тысячи потенциальных формул смол для этой цели. На сегодняшний день
лишь около 20 смол удалось коммерчески использовать для стереолитографии.
То, что этот метод не получил широкого распространения, свидетельствует о
трудности одновременного выполнения всех требований фотоэластического тес-
тирования: оптического двулучепреломления, оптической прозрачности, линей-
ной зависимости порядка интерференции от приложенной силы и постоянства
фотоэластического коэффициента [77].
Медицинские модели
Объединение технологий сканирования из области медицины и быстрого прото-
типирования из области проектирования позволяет теперь работать с данными
анатомических изображений совершенно по-иному, чем это было возможно
раньше. На основе данных компьютерной томографии и магнитно-резонансной
интроскопии можно изготавливать методом быстрого прототипирования копии
различных элементов человеческой анатомии. Имеется ряд коммерческих про-
грамм, способных преобразовывать данные изображений в STL-файл. Модели
человеческих органов или костей, полученные методом быстрого прототипиро-
вания, могут использоваться следующим образом.
□ В качестве средства оперативного планирования. С помощью быстро изготов-
ленной модели хирург сможет лучше понять анатомические отклонения, что
позволит ему более эффективно планировать даже самые сложные хирурги-
ческие манипуляции.
□ В качестве средства хирургического моделирования сложных восстановитель-
ных процедур. Хирургические процедуры теперь можно реалистично смоде-
лировать на быстро изготовленных моделях, заменяющих объект операции.
Модели изготавливаются из материала, близкого по своим свойствам к кости,
поэтому хирурги могут отрепетировать план операции, используя те же са-
мые инструменты, что и в операционной. Модели можно также стерили-
зовать для использования в качестве наглядного образца при операции. Это
। лава iz.--crpoe npuiui--------не------ивл ние
повышает точность хирургических манипуляций и сокращает длительность
операции.
□ В качестве наглядного средства коммуникации в дискуссиях хирурга с паци-
ентом, с другими хирургами, вспомогательным хирургическим персоналом и
юристами.
□ В качестве средства документирования анатомических отклонений пациента
для последующего обсуждения и сравнения.
□ В качестве прототипа для создания имплантанта.
Пример средства для репетиции хирургического вмешательства изображен на
рис. 12.26. Голову двухлетнего мальчика, страдающего от гигантской фронталь-
ной мозговой грыжи, просканировали компьютерным томографом, после чего
были изготовлены две биомодели его черепа, а также третья, зеркально симмет-
ричная относительно левой стороны. Хирург использовал две биомодели в каче-
стве ориентира, а на i ретьей отрепетировал план операции. Результатом явилось
глубокое и точное знание требуемых сечений, что привело к сокращению дли-
тельности операции и улучшению ее исхода.
Рис. 12.26. Медицинская модель, изготовленная методом БПИ, для репетиции
хирургической процедуры (с разрешения ANATOMICS, www.qmi.asn.au/anatomics,
авторские права защищены)
12.4. Процесс стереолитографии
Как краткб описывалось в разделе 12.2.1, стереолитография — это процесс трех-
мерной печати, дающий на выходе пластиковые копии геометрических моделей.
В этом процессе используется движущийся под управлением компьютера лазер-
ный луч, формирующий поперечные сечения модели на поверхности светоотвер-
ждающегося жидкого пластика. Отверждение производится с помощью гелий-
кадмиевого или аргонового лазера путем послойного освещения снизу доверху.
Эго означает, что вертикальный подъемник в чане шаг за шагом опускается вниз
(рис. 12.1).
SLA-1, первая коммерческая машина для быстрого прототипирования, разра-
ботанная 3D Systems, была публично представлена на шоу AUTOFACT в Дет-
рите в ноябре 1987 г. Первая серийно выпущенная машина SLA-1 была постав-
лена в апреле 1988 г. фирме Precision Castparts Corporation (Орегон). SLA-250,
машина, аналогичная SLA-1, но с усовершенствованной системой формирова-
ния слоя, была анонсирована в 1989 г. SLA-5000, машина большего размера и
производительности, начала продаваться в 1990 г. Ее рабочий объем составляет
508x508x584 мм — примерно в восемь раз больше, чем у SLA-250 (250x250x250 мм).
В следующих разделах мы опишем операции, выполняемые машиной SLA в про-
цессе изготовления прототипа.
12.4.1. Входные геометрические данные
Первый шаг в процессе стереолитографии, который практически идентичен во
всех процессах быстрого прототипирования, — это получение трехмерной гео-
метрической модели изготавливаемой детали. Это должна быть твердотельная
или по крайней мере поверхностная модель. Таким образом, необходимым усло-
вием для использования стереолитографии и других процессов быстрого прото-
типирования является наличие качественной программной системы твердотель-
ного или поверхностного моделирования.
Как правило, формат, в котором хранится геометрическая модель трехмерного
объекта, зависит от используемой системы твердотельного или поверхностного
моделирования. Поэтому в SLA и других машинах для быстрого прототипирова-
ния предусмотрен прием данных в одном фиксированном формате — STL. Фор-
мат файлов STL (расширение .stl), разработанный Albert Consulting Group, был
введен в обращение фирмой 3D Systems в 1987 году.
В STL-файле объект представлен в виде сети из соединенных между собой тре-
угольников. Представленный таким образом объект называется мозаичным объ-
ектом (tessellated object) или фасетным объектом (faceted object). На рис. 12.27, а
показана твердотельная модель, а на рис. 12.27 (б) — мозаичная модель панели
для мобильного телефона из главы 1.
Рис. 12.27. Модели панели для сотового телефона: а — оригинальная модель;
б — мозаичная модель
В STL-файле вершины каждого треугольника перечислены в порядке, который
указывает, какая из сторон треугольника «содержит» материал. Вектор нормали
указывает наружу (рис. 12.28). STL-файл в ASCII-формате представлен в лис-
тинге 12.1, а STL-файл в бинарном формате — в табл. 12.4. Обратите внимание,
jidud iz. ьыстрое про । типирование и изготовление
что текстовая и бинарная версия STL-файла не полностью совместимы. Бинар-
ная версия содержит дополнительную информацию об атрибутах, которая в на-
стоящее время не используется. Формат ASCII предназначен для целей отладки
и тестирования Преимущества и недостатки формата STL могут быть охаракте-
ризованы следующим образом.
Рис. 12.28. Направление нормали ячейки в формате STL
Листинг 12.1. STL-файл в формате ASCII
solid example
facet normal 6.89114779Е-02 -9.96219337E-01 -5.28978631E-02
outer loop
vertex 2.73239994E+01 1.08957005E+01 4.57905006E+01
vertex 2.81019993E+01 1.09582005E+01 4.56250000E+01
vertex 2.75955009E+01 1.09116001E+01 4.58456993E+01
endloop
endfacet
endsolid example
Таблица 12.4. STL-файл в ASCII бинарном представлении
Байт Тип Описание
80 string Заголовок с общей информацией (например, об используемой CAD-системе)
4 unsigned long integer Количество ячеек
Определение первого треугольника
4 float нормаль х
4 float нормаль у
4 float нормаль z
4 float вершина! х
4 float вершина! у
4 float вершина! z
4 float вершина2 х
Ч float вершина2 у
4 float всршпна2 z
I ipuuecc cieptxMiMTorpdipkiM
Байт Тип Описание
4 float вершинаЗ x
4 float вершинаЗ у
4 float вершинаЗ z
2 unsigned integer Количество байтов атрибутов должно быть уста- новлено равным нулю
Определение второго треугольника
Преимущества
□ Простота преобразования. Структура STL-файла очень проста, поскольку он
содержит только список плоских треугольников. Трехмерную модель можно
преобразовать в формат STL с помощью стандартных алгоритмов плоской
триангуляции. Точностью выходных данных можно легко управлять, и воз-
никающие вырождения минимальны.
□ Широкий диапазон входных данных. Любая форма трехмерной геометрии
может быть преобразована в триангулированную модель ввиду широкой при-
менимости имеющихся алгоритмов поверхностной триангуляции.
□ Простой алгоритм расщепления. Алгоритм расщепления STL-модели прост;
он включает лишь обработку набора треугольников1.
□ Разбиение STL-моделей. Если рабочее пространство машины для быстрого
прототипирования мало по сравнению с размером модели, STL-файл модели
необходимо разбить на несколько частей, которые смогут уместиться в этом
пространстве. С STL-файлом эту операцию выполнить легко. Однако разби-
тые STL-файл должны проверяться на корректность индивидуально.
Недостатки
□ Многословность и избыточность данных Хранящиеся в файле данные о нор-
малях ячеек являются избыточными, поскольку эти данные можно получить
из списка вершин ячеек путем их обхода в определенном порядке. Кроме
того, координаты одних и тех же вершин фигурируют в файле неоднократно,
поскольку каждая вершина принадлежит более чем одной ячейке.
□ Ошибки, обусловленные аппроксимацией. Основная проблема STL заключа-
ется в его относительно неудачном способе представления кривых поверхно-
стей, которые можно аппроксимировать лишь треугольными ячейками.
□ Ошибки округления. Ошибки округления в STL, возникающие при арифме-
тических операциях с плавающей точкой, являются значительными из-за от-
сутствия топологической информации о модели.
1 Расщепление необходимо для того, чтобы предоставить машине для быстрого прототи-
пирования информацию о поперечных сечениях.
□ Недостаток информации. Исходная трехмерная модель является в общем случае
законченной и несет в себе полезную информацию о геометрии, топологии и
материале. При преобразовании этой информации в формат STL сохраняются
только базовые геометрические данные, а вся остальная информация теряет-
ся. Эту информацию можно было бы использовать для дальнейших расчетов
(например, для определения направления наращивания и создания поддер-
живающей структуры) либо для проверки объема преобразованной модели.
Недостатки STL-файлов — это проблемы, характерные для формата STL как та-
кового. Более того, ошибки могут возникать на этапе обработки и преобразова-
ния трехмерной модели в формат STL. Даже если исходная трехмерная модель
не имеет дефектов, результирующая STL-модель может содержать ошибки, за-
висящие от эффективности, надежности и точности алгоритма преобразования.
Например, треугольники могут не полностью покрывать граничные поверхности
исходного объекта. В этой ситуации поперечное сечение, которое будет получено
на следующем шаге, будет иметь открытую границу, что даст неверную форму
прототипа (рис. 12.29). На рис. 12.29, а ошибка в фасетной аппроксимации боко-
вой поверхности цилиндрического контейнера привела к возникновению зазора,
на который указывает треугольник. В результате было получено неправильное
поперечное сечение (рис. 12.29, б). Поэтому программа-транслятор, преобразую-
щая геометрическую модель в STL-файл, должна быть написана так, чтобы не
нарушать ни одно из описанных выше требований.
Рис. 12.29. Проблема, вызванная наличием зазора
Можно задать определенные параметры, с помощью которых мы могли бы кон-
тролировать общее число треугольников в фасетной аппроксимации при исполь-
зовании транслятора. Иначе говоря, при создании STL-файла из трехмерной мо-
дели мы можем контролировать величину отклонения фактической поверхности
модели от аппроксимирующих ее треугольных ячеек по нормали (рис. 12.30).
Рис. 12.30. Отклонение хорды в STL-файле
Можно задать максимальное расстояние, на которое аппроксимирующий треуголь-
ник может быть удален от исходной поверхности. Больший объем STL-файла
приведет к увеличению времени расщепления при генерации поперечных сече-
ний и большему объему файла сечений, но зато повысит точность. Зависимо-
стью времени изготовления от размера STL-файла можно пренебречь.
На сегодняшний момент STL-файлы стали фактическим стандартом представле-
ния входных данных для всех типов систем быстрого прототипирования. В дей-
ствительности большинство систем твердотельного моделирования предусмат-
ривают возможность сохранения данных в виде STL-файлов. Это не требует от
системы твердотельного моделирования дополнительной работы, поскольку фа-
сетное представление все равно необходимо для вывода изображения объекта
с автоматическим формированием теней.
12.4.2. Ориентация детали
Точность и эффективность процесса стереолитографии зависят от того, как объ-
ект располагается в чане. Критерии определяются тем, что нужно пользователю.
От выбранной пользователем ориентации детали в рабочей камере будет зави-
сеть длительность изготовления, разрешающая способность и гладкость поверх-
ности. Очевидно, что минимизация высоты приведет к уменьшению требуемого
количества слоев и тем самым к сокращению длительности изготовления. В за-
висимости от предполагаемого способа использования детали пользователь мо-
жет пожертвовать быстротой изготовления в пользу большей разрешающей спо-
собности или точности. Обычно наиболее важна точность изготовления детали,
следующим по значимости является эстетический фактор, а длительность изго-
товления несколько менее критична.
Более высокая разрешающая способность кривых поверхностей достигается пу-
тем ориентации их в горизонтальной плоскости перпендикулярно лазерному лучу.
Наклонные поверхности, идущие вдоль оси расщепления, будут иметь явствен-
ный «ступенчатый» вид (рис. 12.31). Высота каждой ступеньки — это толщина
слоя в данном месте детали. Для некоторых случаев ориентации детали может
потребоваться поддерживающая структура.
Рис. 12.31. Ступенчатый вид кривой поверхности
В общем, определяя оптимальную ориентацию детали, необходимо принимать в
расчет такие факторы, как требуемая гладкость поверхностей, возможность раз-
мещения максимального количества деталей на платформе, сведение к миниму-
му числа подпорок, а также обеспечение надлежащей поддержки для нависаю-
щих частей детали.
12.4.3. Поддерживающая структура
Следующим шагом является моделирование поддерживающих структур и соот-
ветствующих STL-файлов. Поддерживающие структуры в процессе стереолито-
графии аналогичны держателям для деталей в машинной обработке (например,
зажимным патронам). Они необходимы в стереолитографии по следующим при-
чинам. Во-первых, они гарантируют, что лезвие формирователя слоя не ударит-
ся о платформу при нанесении первого (нижнего) слоя. Лезвие формирователя
слоя перемещается поступательно по внешней поверхности жидкой смолы для
получения слоя равномерной толщины. Во-вторых, поддерживающие структуры
обеспечивают равномерность толщины слоя вне зависимости от возможной де-
формации платформы. Любые неоднородности принимает на себя слой поддер-
живающих структур, поэтому слой детали имеет одинаковую толщину во всех
местах. В-третьих, они обеспечивают простоту снятия готовой детали с платфор-
мы. Обычно поддерживающие структуры имеют неплотный контакт с платфор-
мой. Для достижения означенных выше трех целей минимальное возвышение
пьедестала над поверхностью платформы должно составлять от 6,35 мм (0,25 дюй-
мов, для SLA-250) до 8,89 мм (0,35 дюймов, для SLA-5000) [751. Поддерживаю-
щая структура должна также следовать периферийной части нижнего слоя дета-
ли, включая углы. Поддержка всей нижней плоскости детали ограничит ее тен-
денцию к изгибанию под собственным весом по мере наращивания следующих
слоев. Однако на практике край поддерживающей структуры делают отступаю-
щим внутрь от края нижнего слоя детали на 0,254 мм (0,01 дюйма). Это позволяет
избежать поломки краев при удалении поддерживающей структуры. Распро-
страненной практикой является изготовление ячеистого пьедестала типа контей-
нера для яиц (рис. 12.32), что позволяет легко удалить поддерживающую струк-
туру.
Рис. 12.32. Генерация ячеистого шаблона для пьедестала
Поддерживающие структуры требуются также, когда деталь имеет «островки»
нлп нависающие части. Островком (island) называется часть детали, не связан-
ная с какой-либо другой частью данного слоя (см. рис. 12.2, б). В этом случае
островок присоединяется к платформе или к самой детали путем проектирова-
ния профиля островка на поверхность платформы пли предыдущего слоя детали
Соединение с предыдущим слоем может быть предпочтительно, если островок
располагается высоко над платформой, поскольку это сократит длительность из-
готовления. Нависшие части также следует поддерживать с помощью треугольных
подпорок, называемых клиньями (gussets) (см. рис. 12.2, а). Выступ, выдающийся
более чем на 1,27 мм (0,05 дюймов), будет изгибаться под собственным весом,
если его не подпирать. Арки или выпуклые поверхности поддерживают себя сами,
поскольку величина уступа между соседними слоями мала, и поддерживающие
структуры не требуются. Но если поверхность является плоской, обращенные
вниз поверхности длиной более 1,27 мм необходимо поддерживать (рис. 12.2, ей г).
Во многих системах твердотельного и поверхностного моделирования преду-
смотрен режим сборки, в котором пользовагель может моделировать поддержи-
вающие структуры, глядя или опираясь на геометрию детали.
12.4.4. Расщепление и объединение
На стадии расщепления и слияния деталь и поддерживающие структуры рас-
секаются компьютером на серию параллельных горизонтальных плоскостей.
Результатом являются файлы сечений, состоящие из расположенных слоями
друг над другом поперечных сечений. Расстояние между поперечными сечения-
ми — это толщина слоя. Толщина слоя выбирается исходя из упомянутого выше
эффекта «ступенек». Нижний предел толщины слоя определяется разрешающей
способностью управления подъемным механизмом платформы, а верхний
мощностью лазера и скоростью сканирования. В существующих машинах для
стереолитографии диапазон допустимой толщины слоя составляет от 0,064 мм
(0,0025 дюйма) до 0,762 мм (0,030 дюйма).
После того как файлы сечений для детали и поддерживающих структур созданы,
они объединяются, так что деталь и ее поддерживающие структуры могут изго-
тавливаться вместе как единое целое. Если одновременно на одной платформе
должны изготавливаться несколько детален (рис. 12.33), файлы сечений всех де-
талей и поддерживающих структур объединяются таким образом, что попереч-
ные сечения, принадлежащие одному и тому же слою, интерпретируются как по-
перечное сечение одной детали.
На этой стадии также определяются параметры, необходимые для изготовления
детали (предполагаемый стиль и желаемый шаг решетки, компенсация ширины
линии и коэффициенты компенсации усадки).
Рис. 12.33. Пример объединения двух различных деталей
Стиль и шаг решетки
Внутренняя решетка (internal hatch) — это метод отверждения внутренности де-
тали, или объема внутри границ. Поскольку отверждение производится путем
сканирования лучом лазера конечного диаметра, практически невозможно пол-
ностью просканировать внутренность детали. Однако выборочное сканирование
может обеспечить структурную жесткость, а незатвердевшие области оставля-
ются до процедуры окончательного отверждения. То есть сначала очерчиваются
границы, а затем сканируется внутренность, для чего используется один из сле-
дующих стилей. Трехлинейная решетка (Tri-Hatch) состоит из линий, парал-
лельных оси х, а также линий под углом 60° и 120° к оси х. Это дает внутреннюю
структуру из равносторонних треугольников. Шаг между этими линиями чаще
всего устанавливается равным 1,27 мм (0,05 дюйма). Трехлинейная решетка
была самым распространенным шаблоном сканирования, пока не появился ме-
тод WEAVE — новая технология изготовления деталей, разработанная фирмой
3D Systems.
В методе WEAVE обычно используется решетка из линий, параллельных осям х
и у. Обратите внимание, что ячеистый шаблон для подпорки-основания, пока-
занной на рис. 12.32, можно создать с помощью метода WEAVE с большим ша-
гом решетки. Решетка для детали имеет шаг около 0,279 мм (0,011 дюйма) при
толщине слоя 0,254 мм (0,010 дюйма) по осям х и у. Для более тонких слоев не-
обходимо уменьшать шаг решетки.
Появление метода WEAVE значительно повысило точность изготовления дета-
лей в сравнении с прежним методом трехлинейной решетки. С тех пор были раз-
работаны еще несколько технологий выполнения процесса. Почти все передовые
процессы изготовления деталей, стремящиеся повысить точность изготовления
детали, сосредоточиваются на минимизации эффектов внутреннего напряжения.
Технологии STAR-Weave, QuickCast и ACES были специально разработаны
с целью уменьшить искажения.
Новый стиль STAR-WEAVE, являющийся производным от WEAVE, вводит три
новых понятия: шахматная решетка (staggered hatch), чередование последова-
тельности (alternate sequencing) и сокращенная решетка (retracted hatch). В акро-
ниме «STAR-WEAVE» буквы «ST» обозначают шахматную решетку, «А» — че-
редование, a «R» — сокращенную решетку.
Различия между обычной и шахматной решеткой иллюстрирует схематическая
диаграмма на рис. 12.34. При сканировании по методу STAR-WEAVE, посколь-
ку вектора решетки и-го слоя смещены ровно на половину шага обычной решет-
ки (h,/2) по отношению к векторам решетки (п — 1)-го слоя, какие-либо следы
микротрещин исчезают. Кроме того, этот метод позволяет уменьшить концен-
трацию напряжений вдоль более слабых областей между векторами.
Термин чередование последовательности означает, что последовательность рисо-
вания линий чередуется от слоя к слою. В этом случае векторы X и Y будут чере-
доваться в порядке, определенном последовательностью рисования. Так, на-
пример, в четных слоях первыми могут рисоваться векторы X, а в нечетных —
векторы У. Более того, направление рисования векторов также чередуется. Соот-
ветственно, например, в п-м слое векторы X рисуются первыми в направлении от
передней стенки чана к задней стенке. В (п + 1)-м слое векторы X рисуются вто-
рыми (после векторов У), причем в направлении от задней стенки чана к пе-
редней.
12.4. Процесс стереолитографии
421
Рис. 12.34. Сравнение стилей решеток: а — обычная решетка; б — шахматная решетка
(Источник-. Р. Jacob, Rapid Prototyping & Manufacturing-, Fundamentals of Stereo Lithography,
Society of Manufacturing Engineers (SME), McGraw-Hill, 1992)
В сокращенной решетке каждый вектор, X либо Y, проведен так, что он соединен
только с одной из границ. Противоположный конец вектора решетки отстоит от
соответствующей границы на небольшое расстояние, обычно порядка 0,25 мм
(0,01 дюйма). Сокращенная решетка схематически изображена на рис. 12.35.
Рис. 12.35. Сокращенная решетка (Источник: Р. Jacob, Rapid Prototyping & Manufacturing;
Fundamentals of Stereo Lithography, Society of Manufacturing Engineers (SME),
McGraw-Hill, 1992)
Помимо STAR-WE AVE был также разработан метод QuickCast, позволяющий
повысить точность изготовления деталей, используемых в качестве моделей при
литье по выплавляемым моделям. Когда выяснилось, что тепловое расширение
твердых моделей, выполненных методом стереолитографии, приводит к ломке
даже самых прочных оболочек, стало очевидно, что модели необходимо изготав-
ливать с поддерживающей структурой в виде внутренней решетки с большим
шагом, которая фиксировала бы внешние границы детали. Варьируя шаблон ре-
шетки, с тем чтобы обеспечить возможность удаления излишков смолы, можно
изготавливать квазнполые модели, позволяющие успешно отливать твердые метал-
лические детали. Поскольку квазиполая структура шаблонов в методе QuickCast
требует меньшего количества материала, связывающего соседние слои, внутрен-
ние напряжения в «зеленой детали» ослабляются. Искажения при окончатель-
ном отверждении также снижаются, поскольку меныпее количество материала
подвергается усадке.
Чтобы создать квазиполую структуру по методу QuickCast, необходимо изготав-
ливать объект с большим шагом решетки. Говоря математическим языком, объ-
ект должен быть односвязным. Если в произвольном месте топологически одно-
связного шаблона умышленно создать спускное отверстие, а еще в одном его
Глава 12. Быстрое прототипирование и изготовление
месте создать относительно небольшое вентиляционное отверстие, устраняющее
частичный вакуум, который в противном случае неминуемо бы образовался, ие-
затвердевшая жидкая смола может вытечь из шаблона. Шаблоны решетки для
метода QuickCast показаны на рис 12.36.
QuickCast V1.1 uses ап equilateral triangle hatch and offset square hatch
a
QuickCast V2.0 uses a hexagonal grid to build weaker patterns
for easy burn-out in the investment casting process
6
Рис. 12.36. Шаблоны решетки QuickCast. a — в QuickCast версии 1.1 используется решетка
из равносторонних треугольников и смещенных квадратов; б — в QuickCast версии 2.0
используется шестиугольная решетка для построения более слабых шаблонов, которые
легко выжигаются при литье по выплавляемым моделям
Цель технологии ACES состоит в том, чтобы с высокой точностью и четкостью
изготавливать твердые детали из эпоксидной смолы, обладающие превосходной
формоустойчивостыо. Это достигается путем полной н однородной полимериза-
ции в процессе изготовления детали, что практически устраняет искажения при
окончательном отверждении и внутренние напряжения. Для минимизации би-
металлического эффекта в ACES используется прогрессивное отверждение слоя
смолы, при котором опа почти полностью затвердевает, прежде чем свяжется со
следующим слоем.
12.4. Процесс стереолитографии
Компенсация ширины линии v
Точно так же как центр режущего инструмента должен .быть смещен на величи-
ну его радиуса от границы детали при обработке на станке с ЧПУ, лазер в сте-
реолитографии должен быть смещен на половину ширины линии внутрь детали
для получения правильного положения границ. Например, на рис. 12.37, а ком-
пенсация ширины линии отсутствует, а на рис. 12.37, б она имеется Оптималь-
ное значение поправки для компенсации ширины линии определяется обычно
путем тестирования на пробной детали.
Рис. 12.37. Компенсация ширины линии
Компенсация усадки
Полимеризация ведет к увеличению плотности материала и тем самым к умень-
шению объема детали. Поэтому необходимо несколько увеличить деталь, чтобы
компенсировать усадку, происходящую после затвердевания. Степень увеличе-
ния указывается через коэффициент усадки, который задается пользователем.
Определить коэффициент усадки крайне сложно, это требует тщательных вы-
числений и большого опыта.
12.4.5. Подготовка
На стадии подготовки указывается ряд параметров, характеризующих процесс
изготовления детали, в частности глубина отверждения и параметры формиро-
вания слоя. К параметрам формирования слоя относятся количество возвратно-
поступательных движений ракельного ножа на один слой, период этих движе-
ний, желаемая задержка по оси г, а также скорость и ускорение подъемного ме-
ханизма платформы. Глубина отверждения будет рассмотрена в этом разделе, а
параметры формирования слоя — в следующем.
Глубина отверждения — это глубина, на которую затвердевает жидкий полимер
вследствие поглощения энергии (рис. 12 38). Глубина отверждения должна пре-
вышать толщину слоя, в противном случае соседние слои разойдутся^ Поглоще-
ние энергии зависит от интенсивности н размеров лазерного луча, скорости ска-
нирования и свойств используемого фотополимера. Соответственно, указание
глубины отверждения определяет скорость сканирования лазерного луча при за-
данной мощности лазера.
Глава 12. Быстрое прототипирование и изготовление
Луч
Поверхность жидкости
Рис. 12.38. Глубина отверждения и толщина слоя
12.4.6. Изготовление детали
На этом этапе начинается полимеризация и создается физическая трехмерная
деталь. Процесс состоит из следующих шагов.
1. Контроль уровня. Обычные жидкие полимеры, используемые для стереоли-
тографии, подвергаются при затвердевании объемной усадке в размере 5-7%.
Из этого количества примерно 50-70% происходит в чане в результате поли-
меризации под действием лазерного луча; оставшаяся объемная усадка про-
исходит на стадии окончательного отверждения. Это значит, что свободная
поверхность полимера по ходу полимеризации опускается вниз, изменяя рас-
стояние, на котором она находится от лазера. Соответственно, цель контроля
уровня — обеспечить надлежащее расстояние по оси z от лазера до поверхно-
сти полимера для оптимальной фокусировки.
По окончании прохождения лазером каждого слоя сенсор проверяет уровень
жидкого полимера. Если этот уровень выходит за границы допуска, включа-
ется плунжер. Плунжер вытесняет жидкость, приводя 2-координату поверх-
ности полимера в границы заданного диапазона.
2. Глубокое погружение. Платформа опускается так, чтобы поверхность преды-
дущего отвержден но го слоя оказалась под поверхностью полимера. Тем самым
гарантируется, что даже детали с плоскими участками большой площади,
сравнимыми по размеру со всей платформой, будут надлежащим образом по-
крыты полимером. Этот шаг занимает около 11 секунд.
3. Подъем. Платформа поднимается так, чтобы верхний слой детали оказался
над поверхностью полимера и на толщину одного слоя ниже нижнего края
ракельного ножа. Ракельный нож располагается над поверхностью полимера
(рис. 12.39). Этот шаг занимает около 6 секунд.
Рис. 12.39. Элементы системы формирования слоя
4. Разравнивание. Ракельный нож проходит от передней стенки чана к задней
(или наоборот), удаляя излишек полимера с детали. На этом шаге действуют
параметры, заданные на стадии подготовки (количество возвратно-поступа-
тельных движений на слой и период этих движений). Количество возвратно-
поступательных движений может варьировать от 1 до 7, а период — от 3 до
30 секунд. По умолчанию период возвратно-поступательного движения равен
5 секундам, за исключением ситуаций, когда приходится иметь дело с запер-
тыми объемами. Запертые объемы (trapped volumes) — это пространства,
содержащие жидкость, не связанную с жидкостью в чане. Эти области могут
потребовать специальной обработки в процессе формирования слоя и, соот-
ветственно, снижают скорость изготовления. В данном случае период воз-
вратно-поступательного движения ракельного ножа может увеличиться до
15-25 секунд. Обратите внимание, что глубокое погружение, подъем и раз-
равнивание требуются только для ножевой системы Doctor машин SLA-
250/40 и SmartStart фирмы 3D Systems. Другие стереолитографические сис-
темы, например, SLA-2500 и SLA-3500, используют разработанный 3D Systems
новый процесс под названием Zephyr, в котором глубокое погружение, подъ-
ем и разравнивание не нужны. Система Zephyr использует вакуумный нож,
который захватывает полимер из чана и наносит его тонким слоем при прохо-
ждении над деталью. Zephyr сокращает время формирования слоя и ускоряет
весь процесс изготовления детали. Кроме того, эта система частично решает
проблемы, связанные с запертыми объемами. Процесс формирования слоя
системой Zephyr иллюстрирует рис. 12.40.
Формирователь |
t слоя Zephyr
м wu
Затвердевший Ходкий
полимер полимер
_________________U
Формирователь
слоя Zephyr
Затвердевший
полимер
Ходкий
полимер
а
-
Формирователь
слоя Zephyr
Затвердевший Ходкий
полимер потер
_______.____________а
Формирователь
слоя Zephyr
Затвердевший Ходким
полимер полимер
Шаг 4. По окончании
разравнивания лазер
отверждает следующий
слой, и резервуар
формирователя
слоя заполняется
вновь
Шаг 1 Когда лазер Шаг 2. Перед
завершает отверждение формированием слоя
слоя, формирователь платформа опускается
слоя снова готов на толщину одного
начать разравнивание слоя
Шаг 3. Формирователь
слоя совершает
возвратно-
поступательные
движения вдоль
поверхности детали,
нанося ровный тонкий
слой полимера
Рис. 12.40. Система формирования слоя Zephyr фирмы 3D Systems
(с разрешения 3D Systems, Inc.)
5. Установка в рабочее положение. Платформа опускается так, чтобы поверх-
ность сформированного слоя полимера находилась на уровне свободной
поверхности полимера в чане Таким образом, поверхность предыдущего от-
вержденного слоя находшся на одну толщину слоя ниже свободной поверх-
ности. Этот шаг занимав! около 2 секунд.
6. Задержка по оси г. После юго как платформа переместилась в рабочее поло-
жение, полимер на поверхности предыдущего слоя в принципе должен неза-
метно переходить в свободную поверхность полимера в чане. К сожалению,
из-за эффектов конечного поверхностного натяжения на поверхности раздела
твердой и жидкой фаз по периметру детали обычно возникает небольшой, но
явственный изгиб. Его амплитуда будет уменьшаться с конечным временем
релаксации. Назначение интервала задержки но оси z — дать поверхности
жидкости достаточно времени для выравнивания этих неоднородностей. Этот
интервал может варьировать от 15 до 30 секунд.
7. Сканирование лазером. Когда произойдет выравнивание поверхности жидко-
го фотополимера, начинается лазерное сканирование каждого профиля. На
первом шаге прочерчиваются границы детали в данном поперечном сечении.
Исходя из ранее заданной глубины отверждения автоматически вычисляется
скорость сканирования. Прочерчивание границ занимает всего несколько се-
кунд. Когда границы готовы, начинается штриховка внутренних областей.
Для большинства деталей львиная доля времени при лазерном сканировании
тратится именно на штриховку. Для профилей, которые целиком состоят из
«глядящих» вниз и вверх поверхностей, вместо штриховки используется ре-
жим сплошного заполнения (skin fills). В режиме сплошного заполнения про-
черчивается ряд очень близко расположенных друг к другу параллельных
векторов, так что затвердевшие линии в действительности соприкасаются
друг с другом сторонами, образуя сплошную поверхность. Это предотвращает
нежелательное вытекание полимера из внутренних областей детали. Однако
вытекание полимера не является проблемой при использовании передовых
стилен решеток, таких как WEAVE, STAR-WEAVE, QuickCast и ACES.
12.4.7. Завершение детали и спив излишков полимера
Описанный выше процесс повторяется для каждого из последовательно идущих
слоев детали. Когда будет завершен последний (или-верхний) слой, платформа
поднимается так, чтобы и платформа, и деталь (детали) на ней располагались
над поверхностью полимера в чане. Если деталь имеет запертые объемы, пеот-
верждепный полимер сливается обратно в чан, для чего платформа наклоняется
па опорных рычагах. Этот шаг считается завершенным, когда большая часть из-
быточного жидкого полимера стечет в бак.
12.4.8. Последующая обработка
Стадия последующей обработки состоит из трех шагов: удаления детали, окон-
чательного отверждения и отделки.
Удаление детали
Деталь вместе с платформой наклоняется через край, чтобы слить излишек жид-
кого полимера обратно в чаи. Обычно перфорированную платформу можно оп-
рокинуть через край на опорных рычагах. Таким образом деталь можно ориенти-
ровать почти перпендикулярно ее исходному положению. После нескольких
минут стекания платформа и прикрепленная к ней деталь извлекаются из сте-
реолитографической машины. С детали и платформы вытирается избыток поли-
мера, что продлевает срок службы чистящего растворителя, который будет ис-
пользоваться на следующем шаге.
Далее деталь и платформа помещаются в очищающий аппарат. Популярным
чистящим растворителем является трипронпленгликоль-мопометиловый эфир
(коммерчески известный как ТЕМ), поскольку он не дает больших искажений
формы, связанных с разбуханием, если деталь погружается в пего на короткое
время. Для сокращения времени очистки крайне важно движение растворителя
вокруг детали. Для простых деталей с плоскими поверхностями в свежем рас-
творителе ТРМ тщательная очистка занимает менее 5 минут при непрерывном
движении. Если сложную часть просто погрузить в растворитель, не обеспечи-
вая движения, очистка может занять много часов.
Деталь, тщательно очищенную от излишков полимера, можно извлекать из рас-
творителя. Поскольку практически во всех случаях время погружения составля-
ет менее 1 часа, масштабы возможного разбухания должны быть пренебрежимо
малы. Затем платформа и деталь тщательно промываются в обычной проточной
воде, чтобы удалить с них блестящую пленку ТРМ. Если эту пленку не удалить,
она может замедлить окончательное отверждение поверхности на следующем
шаге. После промывки платформа с деталью высушиваются в потоке сжатого
воздуха низкого давления (140-210 КПа). Используя сжатый воздух, можно вы-
сушить даже самые геометрически сложные детали примерно за минуту.
Последнее, что необходимо сделать на этом шаге, — снять деталь с платформы.
Оптимальный метод снятия детали зависит от характеристик используемого по-
лимера. Обычно используются различного рода ножи с плоскими лезвиями.
Окончательное отверждение
На данный момент деталь еще только частично полимеризовалась. Как вы пом-
ните, лазер фотолитографической машины сканирует каждый слой только вдоль
границ и по линиям решетки. Это означает, что внутренние области слоев могут
затвердеть не до конца. В связи с этим производится окончательное отверждение
детали, завершающее процесс полимеризации и увеличивающее итоговую меха-
ническую прочность прототипа.
Окончательное отверждение выполняется с помощью ультрафиолетового излу-
чения в специальном аппарате. Чтобы достичь однородного окончательного от-
верждения полимера с минимальным повышением температуры и максималь-
ной точностью при разумной длительности процесса, важно оптимизировать
длины волн излучения отверждающего аппарата [75]. Окончательное отвержде-
ние приводит к повышению температуры внутри детали, поскольку фотополи-
меризация является экзотермической реакцией.
Высокая температура полимера может привести к значительным термическим
напряжениям и соответствующим температурным деформациям. Эти деформа-
ции вызывают искажения формы детали на стадии окончательного отверждения,
а в худшем случае и поломку детали. Таким образом, желательно найти источ-
ник излучения со значительно меньшей спектральной плотностью потока, чтобы
обеспечить более медленную полимеризацию, а следовательно, более низкие
температуры и меньшие термические напряжения и деформации.
Как долго должно продолжаться окончательное отверждение, зависит от особен-
ностей геометрии детали. Для большинства деталей окончательное отверждение
может занять час или два, а для деталей очень большого размера может потребо-
ваться и десять часов. Вообще говоря, время окончательного отверждения почти
всегда меньше времени изготовления детали.
Доводка детали
После того как деталь окончательно затвердеет, выполняют ее отделку. Если де-
таль должна служить лишь в качестве концептуальной модели, достаточно будет
просто удалить подпорки. В случае хрупких полимеров для отламывания подпо-
рок между деталью и подпорками вставляют тупой нож или шпатель.
Необходимо соблюдать осторожность, чтобы не повредить хрупкие части детали.
В случае вязких полимеров можно не отламывать подпорки, а отрезать их ост-
рым ножом. В очень тонких местах могут помочь острые ножницы. Подпорки из
[прочных полимеров можно также удалять на станках. После удаления подпо-
рок деталь подвергается легкой шлифовке, чтобы устранить оставшиеся от них
Следы.
юс л и деталь предполагается использовать иначе, например в качестве шаблона
или модели для литья по выплавляемым моделям, применяется более тщатель-
ная отделка — ручная шлифовка, струйная обработка стеклянными шариками
Или некоторое сочетание этих двух методов.
12.5. Программные технологии
для быстрого прототипирования
Подобно тому как компьютер не может функционировать без операционной сис-
темы, машине для быстрого прототипирования для работы также необходимо
программное обеспечение. Это программное обеспечение состоит из двух компо-
нентов. программы подготовки детали и программы управления процессом, или
программы изготовления. Программы подготовки детали выполняют такие зада-
чи, как проверка CAD-модели, компенсация и исправление ошибок STL-файла,
дополнительное STL-моделирование, размещение и ориентирование модели, ге-
нерация поддерживающих структур, определение параметров изготовления де-
тали и формирования слоя, получение поперечных сечений и объединение ком-
понентов в соответствующий рабочий файл. Программы управления процессом
используют рабочий файл, созданный на стадии подготовки, для управления
процессом изготовления детали в машине для быстрого прототипирования. Эта
процедура схематически изображена на рис. 12.41. В следующем разделе мы об-
судим задачи, выполняемые программами подготовки детали.
STL- файл
Файл процесса
Программа управления процессом
(машина для быстрого
прототипирования)
Рис. 12.41. Программное обеспечение для БПИ
I лава 12. Быстрое прототипирование и изготовление
12.5.1. Задачи программ подготовки детали
Проверка STL-файла и исправление ошибок
Как сказано выше, STL-файл, созданный программой твердотельного моделиро-
вания, может содержать в себе ошибки, даже если исходная трехмерная модель
не имела дефектов. В STL-файле могут возникать следующие виды ошибок [961.
□ Зазоры. Предполагается, что ячейки STL-файла должны образовывать набор
замкнутых оболочек, заключающих в себе объект. Но если какая-либо из яче-
ек отсутствует, оболочка получает «прокол», в результате чего образуется
зазор (рис. 12.42). Как следствие, отсутствует четкое различие между внут-
ренней и внешней областью. Кроме того, при растеплении STL-файла, имею-
щего зазоры, в слоях могут создаваться незамкнутые контуры, которые поро-
ждают случайные векторы при изготовлении детали.
Рис. 12.42. Зазоры в STL-файле
Несогласованные нормали. Нормали некоторых ячеек могут быть обращены
(рис. 12.43), в результате чего они окажутся несогласованными с направлени-
ем наружу, которое имела исходная поверхность.
Рис. 12.43. Обращенные нормали в ячейке
12.5. Программные технологии для ьыстрого проплиниро
U Неправильные нормали. Нормали ячеек, хранимые в STL-файле, могут не сов-
падать с нормалями, рассчитанными по вершинам соответствующих ячеек.
□ Неправильные пересечения. Ячейки могут пересекаться неправильно, то есть в
каких-либо местах, кроме своих сторон; могут быть и перекрывающиеся
ячейки (рис. 12.44).
Рис. 12.44. Пересечение двух треугольников не по сторонам
□ Внутренние стенки и структуры. Неверные геометрические алгоритмы, за-
крывая зазоры в STL, могут по ошибке создавать внутренние стенки и струк-
туры, что может привести к неоднородному затвердеванию материала. Ошиб-
ку с появлением внутренней стенки иллюстрирует рис. 12.45.
Внутренняя стенка
Рис. 12.45. Ошибка STL-модели с появлением внутренней стенки
□ Несогласованности. STL-файл может иметь несогласованные значения допус-
ков, если он создан путем объединения двух различных файлов. Кроме того,
могут существовать зазоры на пересечении двух объединенных STL-моделей.
□ Вырождение ячеек. Ячейки могут быть вырожденными. Вырожденные ячей-
ки — это такие ячейки, которые не занимают конечной площади и, соответст-
венно, не имеют нормали. Есть два тина вырождения ячеек: топологическое и
геометрическое. Топологическое вырождение происходит, когда две пли бо-
лее вершины ячейки совпадают. Оно не влияет на геометрию или связность
остальных ячеек, поэтому топологически вырожденную ячейку можно просто
отбросить. Геометрическое вырождение происходит, когда все вершины ячей-
ки различны, а все стороны коллинеарны. Такая неметрически вырожденная
ячейка не имеет нормали, однако содержит неявную топологическую инфор-
мацию о том, как связаны соседние ячейки, то есть как сопрягаются две по-
верхности. Оба типа вырожденных ячеек демонстрирует рис. 12.46.
। лава 12. Ьысгрое прототипирование и изготовление
Геометрическое вырождение
Вырожденный треугольник
с тремя различными
вершинами
Топологическое вырождение
Вырожденный треугольник
с тремя совпадающими
вершинами - точка
Топологическое вырождение
Вырожденный треугольник
с двумя совпадающими
вершинами - линия
Рис. 12.46. Вырождение ячеек в STL-файле
Если в STL-файле обнаружены ошибки, то прежде чем производить расщепле-
те, необходимо предпринять некоторые дополнительные действия в отношении
]>айла. Исправление ошибочного STL-файла требует больших вычислительных
ресурсов, что является серьезным недостатком формата STL. Существует ряд
коммерческих программных пакетов для проверки и исправления STL-файлов.
'< ним относятся 3D Verify1 от 3D Systems и MagicsRP2 от Materialise.
Определение направления наращивания
1оскольку все объекты изготавливаются послойно, решающим фактором явля-
тся выбор направления наращивания слоев. Он влияет на многие ключевые
спекты процесса быстрого прототипирования, включая качество отделки по-
.ерхности, длительность изготовления, требуемое количество поддерживающих
труктур и запертые объемы. В настоящее время, однако, выбор направления
сращивания осуществляется методом проб и ошибок, а может и вовсе не рас-
матриваться. Четыре различных оптимальных направления наращивания, соот-
ветствующих каждому из четырех ключевых аспектов процесса, показаны на
мс. 12.47.
Точность Время Поддерживающая Запертый объем
изготовления изготовления структура
Рис. 12.47. Оптимальные направления наращивания, соответствующие
четырем ключевым аспектам процесса БПИ
3D Verify является торговой маркой 3D Systems, Inc.
MagicsRP является торговой маркой Materialise. N. V.
12.5. Программные технологии для быстрого прототипирования
433
Оценка запертых объемов ч
Как было сказано выше, запертый объем — это количество жидкого полимера в
стереолитографической машине, заключенное в обрабатываемой или отверждае-
мой области. Таким образом, запертые объемы могут существовать в вогнутых
областях, действующих как контейнеры. Жидкий полимер заперт, если его не-
возможно слить из контейнера. Соответственно, в зависимости от ориентации
одна и та же вогнутая область может запереть необработанный полимер, а может
и нс запереть его. Если образуется запертый объем, иногда бывает необходимо
изготовить деталь со спускным отверстием, а после затвердевания заполнить эго
отверстие. В таком процессе, как ламинирование, запертые объемы не допуска-
ются, поскольку удаление лишнего материала, находящегося в запертом объеме,
практически невозможно. Автоматическое обнаружение запертого объема про-
граммой иллюстрирует рис. 12.48 [99].
Рис. 12.48. Автоматическое обнаружение запертого объема
Размещение или упаковка деталей
Поскольку методология процесса быстрого прототипирования отличается от ме-
тодологии традиционного производственного процесса, для обеспечения эффек-
тивного использования данного метода необходимо внести некоторые коррек-
тивы. Прежде всего, время, требуемое для изготовления множества прототипов
деталей с помощью системы быстрого прототипирования, можно коренным об-
разом сократить, изготавливая несколько деталей одновременно. В быстром про-
тотипировании время, затраченное на изготовление прототипа, зависит не от ко-
личества деталей, а от общего числа слоев. Тесно расположив несколько деталей
в подходящем объеме, можно изготовить их одновременно. Поэтому многие ком-
пании и другие пользователи находят преимущества в одновременном изготов-
лении нескольких деталей. В настоящий момент пользователь вручную выбирает
произвольные STL-файлы и пытается добиться их оптимального расположения
в рабочем пространстве методом проб и ошибок, после чего запускает процесс
изготовления. Однако подбор расположения в интерактивном режиме — утоми-
тельный процесс, не гарантирующий достижения оптимального размещения
всех деталей, и поэтому в общем случае он недостаточно хорош. Поскольку зада-
ча трехмерной упаковки является недетерминированной задачей, решаемой за
полиномиальное время, оператор системы быстрого прототипирования не может
ее решить. Поэтому требуется эффективный алгоритм размещения множества
деталей в рабочем объеме, и в некоторых программных продуктах, таких как
MagicsRP от Materialise, предусмотрена функция полуавтоматической упаков-
ки [104]. Пример размещения нескольких деталей демонстрирует рис. 12.49 [99|
Глава 12. Быстрое прототипирование и изготовление
Рис. 12.49. Пример оптимального размещения нескольких деталей
Создание поддерживающих структур
Очень важно эффективно сформировать поддерживающую структуру, отражаю-
щую геометрию детали. Например, избыточность поддерживающих структур
приводит к увеличению времени проектирования и изготовления, а недостаточ-
ность — к получению негодных деталей. Качество конструкции поддерживаю-
щей структуры целиком и полностью зависит от возможностей программного
обеспечения для быстрого прототипирования. Обычно для автоматической гене-
рации поддерживающей структуры используются программы MagicsSG1 и Brid-
geworks2. Примеры поддерживающих структур, которые были созданы програм-
мой для быстрого прототипирования, иллюстрирует рис. 12.50 |99].
Рис. 12.50. Примеры поддерживающих структур, созданных программами быстрого
прототипирования
MagicsSG® является торговой маркой Materialise, Inc.
Bridgeworks® является торговой маркой Solid Concepts, Inc.
Вопросы и задачи
435
Вопросы и задачи '
1. В чем состоит основное различие между процессами стереолитографии и от-
верждения на твердом основании?
2. Перечислите производственные процессы, с помощью которых можно изго-
тавливать прототипы из оригинального материала, предварительно создав
модель методом быстрого прототипирования.
3. Каким требованиям должен удовлетворять материал прототипа, используе-
мого в качестве модели при литье по выплавляемым моделям?
4. Перечислите факторы, которые необходимо принимать во внимание при оп-
ределении оптимального направления наращивания детали. Какой из факто-
ров будет наиболее важен для процесса ламинирования?
5. Объясните, для чего в процессе стереолитографии к нижней поверхности де-
тали присоединяется поддерживающая структура.
6. Опишите ситуации, в которых в процессе стереолитографии пришлось бы ис-
пользовать другие поддерживающие структуры, помимо пьедестала.
7. Чем определяются нижний и верхний пределы толщины слоя в процессе сте-
реолитографии?
8. С помощью имеющейся в вашем распоряжении системы твердотельного мо-
делирования создайте STL-файл для изображенного здесь объекта. По STL-
файлу попытайтесь изготовить прототип с помощью любой доступной вам
машины для быстрого прототипирования. Используйте два различных на-
правления наращивания и сравните их влияние на точность и длительность
изготовления детали.
лава 13
виртуальная инженерия
Стремительно меняющийся и диверсифицированный рынок требует сокраще-
пя жизненного цикла для многих товаров. Быстрота разработки продукта явля-
гся ключевым фактором для удовлетворения этих требований рынка. Однако
радиционная разработка продукта основывалась на итерациях процесса проек-
нрования и построении дорогостоящих и трудоемких физических прототипов,
югда встала задача сокращения этого процесса, неизбежным стало появление
етодов разработки, основанных на компьютерном моделировании.
Iporpecc автоматизированной разработки также привнес новую парадигму в
роектирование и анализ. Прежде всего, системы геометрического моделирова-
ня настолько продвинулись вперед за последнее десятилетие, что современные
'AD-системы способны обрабатывать модели деталей и агрегатов самой слож-
ой геометрии и конструкции. Агрегат можно отображать, оценивать и модифи-
ировать как единое целое, а его движение можно имитировать так же, как это
елается с физическим прототипом. Еще одно достижение — это анализ по мето-
у конечных элементов. Он мог бы стать средством виртуальной оценки надеж-
Юсти и технических характеристик продукта, если бы его вычислительную
ффективность можно было улучшить до такой степени, чтобы выводить резуль-
агы в реальном времени. С его помощью можно было бы предсказывать меха-
ические свойства и характеристики (напряжение, прогиб, вибрация, температу-
а, давление в сложных деталях) так, как если бы они измерялись посредством
различных экспериментов. Более того, производители CAD-систем в настоящий
Юмент пытаются объединить геометрическое моделирование с методом конеч-
ых элементов. Такая интеграция обеспечила бы непрерывное течение цикла
роектирования и анализа. Метод конечных элементов использовался бы изна-
ально в процессе проектирования для принятия конструкторских решений, что
озволило бы сэкономить драгоценное время и затраты, связанные с перепроек-
ированием.
)тп тенденции в инженерной науке сходятся в новом понятии — виртуальная
иженерия (virtual engineering). В сущности, виртуальная инженерия — это раз-
аботка, основанная на имитации. Прогресс современной имитационной техно-
°гии сделал возможным решение таких задач, как численное моделирование
ольшинства механических свойств системы и обнаружение столкновений меж-
У геометрическими объектами в реальном времени. Имитационные технологии
озволили успешно применить виртуальную инженерию в промышленности для
икращення затрат времени и средств на разработку. Область применения вир-
уальной инженерии расширяется, и достигнув зрелости, она станет главной со-
гавляющей процесса разработки.
В этой главе мы дадим определение виртуальной инженерии и обсудим ее ком-
поненты и применение. Далее мы обсудим попытки'разработки средств вирту-
альной инженерии, предпринимаемые производителями CAD-систем, и предста-
вим примеры их промышленного применения. После этого мы познакомимся с
коммерческими программными и аппаратными средствами виртуальной инже-
нерии. В заключение мы коснемся проблем и препятствий, стоящих перед иссле-
дователями в этой области.
13.1. Определение виртуальной инженерии
Виртуальная инженерия (virtual engineering) — это имитационный метод, помо-
гающий инженерам в принятии решений и управлении Виртуальная среда пред-
ставляет собой вычислительную структуру, позволяющую точно имитировать
геометрические и физические свойства реальных систем. Виртуальная инжене-
рия включает имитацию различных видов инженерной деятельности, таких как
машинная обработка, сборка, управление производственными линиями, осмотр
и оценка, а также процесс проектирования. Таким образом, виртуальная инже-
нерия может охватывать весь цикл разработки и производства продукта. После
того как смоделирована деталь, имитируется ее машинная обработка и сборка.
Затем, также с помощью имитации, собранный прототип тестируется, и в его
конструкцию вносятся необходимые изменения. Когда прототип одобрен, ими-
тируется производственная система и ее функционирование. Прогнозируются
также себестоимость и график поставок. В результате этих имитаций получается
оптимизированный конечный прототип и производственные процедуры, на ос-
нове которых затем реализуется физическая система.
Виртуальная инженерия дает совершенно новый подход к инженерным задачам.
Использование имитации устранит необходимость в дорогостоящих физических
прототипах и физических экспериментах. Время разработки коренным образом
сократится, появится возможность проверить большее количество альтернатив-
ных вариантов конструкции, повысится качество конечного продукта. Виртуаль-
ная инженерия обеспечит также превосходный интерфейс для клиента, позволяя
ему заранее увидеть трехмерную модель продукта и запросить конструктивные
изменения. Можно будет построить прототип продукта, который недоступен,
слишком опасен или слишком дорог для того, чтобы создавать его в реальности.
Такая возможность будет неоценима в автомобильной и авиационной промыш-
ленности, где физические макеты стоят дорого, время разработки велико, про-
дукты крайне сложны и требуется глубокая обратная связь от клиентов
13.2. Компоненты виртуальной инженерии
К виртуальной инженерии существуют различные подходы. Поскольку вир-
туальная инженерия — это зарождающаяся технология, ее терминология и оп-
ределения еще не до конца устоялись. В производстве основным компонентом
виртуальной инженерии является виртуальное производство. Виртуальное про-
изводство (virtual manufacturing) определяется как интегрированная синтетиче-
ская производственная среда, используемая для расширения всех уровней при-
г^гуигипи/ттглхспсртл
пятня решений и управления. Оно может быть классифицировано как проектпо-
зриентированное, производственно-ориентированное и управленчески-ориен-
тированное [101, 102]. Проектно-ориентированное виртуальное производство —
это имитационная среда для проектирования продукта и оценки возможности
сто производства. Производственно-ориентированное виртуальное производ-
ство — это имитационная среда для планирования технологических процессов
ц производства. Управленческн-ориентпроваппое виртуальное производство —
это имитационная среда для моделирования функционирования пропзводствен-
। юго цеха.
Виртуальное производство можно также классифицировать в терминах жизнен-
ного цикла продукта как виртуальное проектирование, цифровую имитацию,
виртуальное прототипирование и виртуальный завод. Виртуальное проектирова-
ние выполняется с помощью устройств виртуальной реальности. Цифровая ими-
тация позволяет проверять и оценивать работу продукта без использования фи-
зических прототипов. В процессе виртуального прототипирования строится
компьютерный прототип, имеющий ту же геометрию и физическое поведение,
кто и реальный продукт. Виртуальный завод — эго имитация заводской произ-
водственной линии. Ниже следует подробное описание каждой из этих СОСТаВ-
ГЯЮЩИХ.
L3.2.1. Виртуальное проектирование
виртуальное проектирование выполняется в виртуальной среде с использова
;ием технологий виртуальной реальности (рис. 13.1) Виртуальное ироектнрова-
ше сосредоточивается на альтернативном пользовательском интерфейсе для
|роцесса проектирования. Используя технологии виртуальной реальности, кон-
структоры могут погрузиться в виртуальную среду, создавать компоненты,
модифицировать их, управлять различными устройствами и взаимодействовать
: виртуальными объектами в процессе конструкторской деятельности. Коист
эукторы могут видеть стереоскопическое изображение виртуальных объектов и
слышать пространственный реалистичный звук. Эти изображение и звук возни-
кают, когда рука конструктора движет виртуальной рукой и пальцем. Прпкосно-
»ение к виртуальному объекту ощущается конструктором в виде обратной связи.
1 ем самым замысел конструктора эффективно воплощается в проекте и прове-
дется функциональное поведение конструкции.
Основная цель виртуального проектирования — позволить конструктору действо-
«ать интуитивным и естественным образом. В системах геометрического моделиро-
|ания, даже притом, что современные CAD-системы предоставляют изощренные
редства моделирования, взаимодействие конструктора с моделью ограничено. Воз-
можности обзора ограничиваются изображением, спроектированным на мопи-
ор, а возможности ввода информации от конструктора — точечными манппуля-
1ИЯМИ с мышью. Таким образом, в рамках CAD-технологпи сегодняшнего дня
инструктор является «одноглазым и однопалым». Более естественное взаимо-
(еиствие, обеспечиваемое технологиями виртуальной реальности, дало бы кон-
труктору большую свободу и позволило бы ему повысить креативность при
оздании модели. Вторая цель виртуального проектирования — на ранних сгади-
IX проектирования учесть точку зрения потенциального пользователя продукта.
ij.z. r, mi юней । ы вир|уальнои инженерии
43»
В процессе проектирования могут быть в полной мере оценены такие качества,
как доступность и управляемость. Третья цель — учесть при проектировании
опыт экспертов в сборке или манипулировании деталями. Этот опыт сложен и
трудно формализуем, но система виртуального проектирования может пролить
свет на положение пользователя, его взаимодействие с объектами и последова-
тельность операций сборки.
Рис. 13.1. Виртуальное проектирование с помощью аппаратуры виртуальной реальности
(с разрешения DIVISION, Inc.)
Виртуальное проектирование потребует совершенно иного подхода к моделиро-
ванию трехмерной геометрии. Например, меню и кнопки можно заменить техно-
логией распознавания речи или жестов. Если конструктор захочет изменить раз-
меры модели, то вместо того чтобы указать на нее, конструктор сможет взять ее
в руки и растянуть. В связи с процессом виртуального проектирования непре-
менно возникнут новые методы проектирования и схемы моделирования.
13.2.2. Цифровая имитация
Проверка процесса — одна из наиболее важных целей цифровой имитации. Ма-
шинные операции необходимо тщательно проверить, прежде чем начинать ре-
альную работу. Если в управляющем коде имеется ошибка, это может привести к
серьезной поломке станка. Используя цифровую имитацию, пользователь перед
началом работы может проверить траекторию перемещения инструмента станка
с ЧПУ, щупа координатно-измерительной машины или руки робота. Например,
процессом машинной обработки можно управлять графически, как если бы это
делалось на реальном станке (рис. 13.2). виртуальный станок с ЧПУ, читая стан-
ртные инструкции, будет выполнять всю обработку в реальном времени,
ключая перемещение инструментов, принадлежностей, укладчиков и деталей.
1епрерывный контроль за снятием материала позволяет пользователю выяв-
ить ситуации, приводящие к вибрации и поломке инструмента, появлению вы-
>ии и зарубок. С помощью имитации пользователь может также спрогнозиро-
1ть столкновения между инструментом и приспособлением или деталью.
Рис. 13.2. Цифровая имитация сварки (с разрешения Deneb Robotics, Inc.)
изуализация также помогает инженерам лучше понять систему. Она позволя-
г легко уяснить идею конструкции и заранее проверить ее эксплуатационные
тгества. В настоящее время для этой цели используется главным образом кине-
атическая имитация твердых тел. Имитация моделей более высокого уровня —
идкостей, человеческих существ и сложных сред — требует моделирования
изических эффектов, включая эффекты динамики, вибрации, акустики и де-
ормации. Однако сложные имитации с использованием виртуальных прото-
шов помогут осуществить проверку рабочих характеристик системы быстрее
с меньшими затратами.
3.2.3. Виртуальное прототипирование
«рпн/альньсм прототипированием (virtual prototyping) называют построение
рототипа агрегата из геометрических моделей его отдельных частей (рис. 13.3).
иртуальный прототип называют иногда цифровым макетом (digital mockup),
ни предварительной цифровой сборкой (digital preassembly). Системы цифрового
Рототипирования позволяют визуализировать процесс сборки и проверять осу-
ествимость предлагаемых агрегатов в рамках имеющихся производственных
13.2. Компоненты виртуальной инженерии
441
ограничений. Путем сборки виртуального прототипа' можно выявить конструк-
тивные просчеты и внести изменения в проект, чтобы-реальную сборку можно
было выполнить с первой попытки.
Рис. 13.3. Виртуальный прототип двигателя и подвески
Основная функция виртуального прототипирования заключается в проверке осу-
ществимости операции сборки. Система проверяет сопряжение деталей в кон-
тексте сборочных ограничений и требований к допускам. Функции обнаружения
столкновений указывают на мешающие друг другу детали. Проверяется также
последовательность сборки и траектории движения деталей. Кроме того, можно
определить оптимальные траектории сборки. Передовые системы позволяют также
проводить структурный и функциональный анализ виртуального прототипа, ис-
пользуя встроенное аналитическое программное обеспечение. Часто выполняет-
ся кинематическая и динамическая имитация прототипа.
Инженеры смогут основывать конструкторские решения на виртуальных прото-
типах. Оптимизация конструкции будет достигаться путем последовательного
уточнения виртуального прототипа. С увеличением степени детальности вирту-
ального прототипирования станет возможной более точная структурная и функ-
циональная имитация. Идеальная ситуация будет достигнута тогда, когда вирту-
альный прототип будет иметь всю совокупность характеристик физического
прототипа. Таким образом, в конце концов виртуальное прототипирование уст-
ранит необходимость в дорогих и трудоемких физических прототипах.
13.2.4. Виртуальный завод
Виртуальный завод (virtual factory) — это смоделированная на компьютере полная
производственная система (рис. 13.4). Виртуальный завод имитирует конструк-
ции производственных участков, производственные процессы и складские системы.
Кроме того, для него можно программировать автоматизированное заводское
оборудование — роботы, конвейеры и станки. Система моделирует и имитирует
42
Глава 13. Виртуальная инженерия
акне компоненты, как конвейеры, накопители, доки, производственные участки
I процессы. Кроме того, система моделирует процедуры — маршруты, последо-
вательности и слияния. После этого модель производства анализируется в тер-
шнах затрат на рабочую силу, инвентаризации, эксплуатационных расходов, за-
рат на обработку и длительностей цикла.
Рис. 13.4. Виртуальная имитация автомобильного завода
(с разрешения Deneb Robotics, Inc )
Sth возможности позволяют использовать виртуальный завод для планиро-
ания производства, включая оценку проектов производственных систем и срав-
ение альтернативных способов производства. Когда эта технология достигнет
релости, с помощью виртуального завода можно будет сымитировать всю це-
очку поставок, что позволит оценивать и оптимизировать весь процесс управ-
ения ресурсами и производства.
3.3. Применение виртуальной инженерии
роцесс виртуальной инженерии начинается с геометрических моделей, затем
митируются производственные системы и в конце изготавливается виртуаль-
ыи прототип или виртуальный продукт. Поскольку на выходе этот процесс не
ют никаких физических объектов, может показаться, что действия, выполняе-
ые в его рамках, фиктивны. Однако виртуальная инженерия является эффек-
тным средством проектирования. Она позволяет испытать различные вариан-
ы конструкции и выбрать из них оптимальный до того, как начнется реальное
I оизводство. Кроме использования в качестве средства проектирования, впрту-
пьная инженерия имеет ряд применений в реальной производственной деятель-
•сти.
13.3. Применение виртуальной инженерии
443
13.3.1. Средство проектирования \
Виртуальная инженерия предлагает совершенно новый подход к процессу про-
ектирования. Ее принципиально иной пользовательский интерфейс создает сре-
ду проектирования, стимулирующую большую интерактивность и погружение
в процесс. Она помотает конструкторам лучше понять особенности конструи-
руемого объекта и быть более креативными. Кроме того, она позволяет уже на
ранних стадиях учесть в конструкции человеческие факторы.
В проверке и оптимизации могут помочь цифровая имитация и виртуальное
прототипирование. Эксплуатационные характеристики одной из потенциально
возможных конструкций можно оценить с помощью виртуального прототипи-
рования и цифровой имитации. Возможность производства конструкции можно
оценить путем имитации процесса производства на виртуальном заводе. Имея
виртуальный прототип, можно произвести тонкую корректировку конструкции,
анализируя его методом конечных элементов и другими методами. Полная ими-
тация функциональности продукта может выявить конструктивные упущения
и возможные усовершенствования. Имитация эксплуатационных характеристик
продукта н возможности его производства дает инженерам возможность прини-
мать правильные решения в процессе проектирования. Итеративная процедура
виртуального прототипирования позволяет достичь более полной оптимизации
проекта.
Еще одни аспект процесса, который упрощает виртуальная инженерия, — это про-
ектирование «сверху вниз». Вместо нынешнего подхода к проектированию, при
котором сначала разрабатываются все компоненты по отдельности, а затем они
соединяются, проектирование «сверху вниз» начинается с глобальных функцио-
нальных требований, на основе которых затем разрабатывается детализирован-
ная конструкция. Таким образом, за отправную точку при проектировании бе-
рется концептуальный проект, а на выходе получаются детальные конструкции
компонентов. В отличие от реальных прототипов, виртуальный прототип может
быть собран даже в том случае, когда нет проработанных во всех подробностях
компонентов. После оценки проекта по виртуальному прототипу можно разра-
ботать подробные конструкции деталей на базе структуры, заданной виртуаль-
ным прототипом. Такой подход обеспечивает более интуитивный процесс проек-
тирования на ранних стадиях.
13.3.2. Оценка возможности производства
Виртуальная инженерия позволяет оценивать возможность производства раз-
личных вариантов конструкции. Такая оценка дает информацию о длительности
обработки, времени цикла, затратах и качестве продукта. Она позволяет также
прогнозировать время подготовки к работе, время выполнения и затраты на
рабочую силу. Разумеется для такого рода оценок требуются исчерпывающие
модели производственного процесса. Требуется принять решение, подходит ли
данная конструкция для производства. Можно сделать также качественную
оценку возможности производства, позволяющую охарактеризовать простоту
производства. Если данная конструкция не подходит для производства, можно
выявить, исследовать и необходимым образом изменить атрибуты конструкции,
являющиеся причиной затруднений.
Глава 13. Виртуальная инженерия
L3.3.3. Оценка и контроль качества
Имитация тестирования и процесса эксплуатации позволяет оценить сборку или
жсплуатационные характеристики продукта. Имитация процесса эксплуатации
тозволяет выполнить ряд статистических тестов на модели для определения ее
[увствительности к конструктивным и производственным изменениям. Затем
ложно определить индекс качества по отношению к возможности выполнения
шределенного процесса или конструктивному допуску. Это дает оценку качест-
ва до начала реального производства.
:$ процессе оценки качества определяются также основные факторы, влияющие
:а него. Имея эту информацию, можно усовершенствовать конструкцию, моди-
фицируя те факторы, которые были идентифицированы как ухудшающие каче-
ство. Кроме того, качество продукта можно повысить, улучшив производствен-
ное оборудование. Так как итеративный процесс проектирования является менее
юрогим при использовании виртуальной системы, можно исследовать весь спектр
альтернативных вариантов конструкции для нахождения оптимума. Оценка воз-
можности производства и оптимизация конструкции позволяют организовывать
жальный производственный процесс наиболее эффективным способом. Эти про-
цедуры приводят к созданию лучше спроектированного и изготовленного про-
дукта с минимальным количеством дефектов.
13.3.4. Оценка и оптимизация производственного процесса
Цифровая имитация позволяет проверять операции обработки на станке с ЧПУ,
действия роботов и траектории измерений с помощью координатно-измеритель-
1ой машины до начала реального производства. Траектория движения инстру-
мента, руки робота или щупа, заданные в плане процесса, визуализируются и
щениваются по результатам имитации. При имитации можно выявить и предот-
зратить потенциальные столкновения и другие ошибки. В качестве альтернати-
вы можно автоматически определить траекторию движения без столкновений,
гем самым избежав дорогостоящих повреждений, которые могут возникнуть в
жальном процессе.
1омимо общей оценки процесса, оценка ключевых его элементов позволяет оп-
тимально спланировать процесс. К ключевым элементам относятся закрепление
детали, подача деталей, обработка компонентов и перемещения в процессе обра-
ютки.
13.3.5. Планирование производства и продуктов
Имитация производственной деятельности осуществляется путем моделиро-
тания отдельных событий. Это позволяет оценить производительность, исполь-
1уемость оборудования, эксплуатационные расходы и поток материалов. Можно
также анализировать статические характеристики: время цикла, рабочие зоны
механизмов, размещение механизмов, доступность для управления и обслужива-
шя, а также эффекты и взаимодействие вариаций допуска. Имитационное пла-
нирование лучше подходит для производственных линий, на которых весь про-
тзводственный процесс состоит из сходных последовательностей действий. Для
имитации цехов, выпускающих мелкие серии продукции различных типов с раз-
ными техпочогическимп маршрутами, необходимы более продвинутые системы.
Еще одно применение виртуальной инженерии — планирование продуктов. <
годня быстро меняющиеся рынки требуют короткий периодов планирования и
быстрой доставки продуктов. Моделирование позволяет мгновенно оценить за
траты, цикл производства и график доставки, не прибегая к физической реализа-
ции. Использование имитационного планирования продуктов позволит компа-
нии эффективно реагировать на изменения рынка.
13.3.6. Интерфейс для заказчика
Виртуальная инженерия позволяет легко подстраивать продукт под требования
заказчика и точно оценивать время доставки. Разработав виртуальный продукт,
можно продемонстрировать клиенту его трехмерную модель и сымитировать ра-
боту прототипа. После этого в прототип можно внести изменения в интерактив-
ном режиме в соответствии с требованиями заказчика, передать его напрямую
в инженерный отдел, а оттуда в цех, тем самым ускоряя производство. Таким об-
разом, пожелания заказчика выступают в качестве непосредственной обратной
связи в процессе разработки продукта. Виртуальная инженерия предоставляет
интерфейс, позволяющий быстро и точно схватывать желания клиента, благода-
ря чему производитель способен более эффективно реагировать на нужды кли-
ентов, как в терминах затрат, так и в смысле своевременности.
13.3.7. База знаний
Когда виртуальная инженерия станет реальностью, можно будет систематически
получать и анализировать информацию о производственном процессе. Управле-
ние производственной информацией имеет своей задачей обработку всеобъем-
лющей информации о непрерывном обороте моделей и инструкций по обработке
на всем протяжении цикла разработки. В сегодняшней физической среде экс-
пертные знания трудно зафиксировать, кроме того, отсутствует четкая система
обработки информации о производстве и разработке, поэтому предшествующий
конструкторский опыт не полностью отражается в последующих поколениях про-
дуктов. Виртуальная инженерия позволяет эффективно накапливать обширную
базу данных по экспертным знаниям, храня и обрабатывая всю имеющуюся инже-
нерную информацию. Впоследствии данные из этой базы знаний и результаты
их визуализации могут послужить руководством для инженерных аналитиков,
работающих в группах по проектированию и модификации продукта.
13.3.8. Коллективная разработка
Виртуальная инженерия обеспечивает основу для коллективной разработки.
Инженеры и конструкторы, работающие над одним и тем же проектом, могут
легко делиться друг с другом данными о продукте в цифровом виде. Используя
общие виртуальные среды, инженеры, находящиеся далеко друг от друга, могут
совместно и одновременно изучать цифровой прототип. Они могут работать
параллельно в контексте общих производственных требований. Кроме того, эти
среды позволяют инженерам и конструкторам получить более глубокое пред-
ставление о продукте, повысить его качество, сократить интервал до выхода про-
дукта на рынок и с самого начала обеспечить правильность конструкции, снизив
потребность в дорогостоящих переделках на более поздних стадиях процесса.
>амки совместной работы можно расширить за пределы компании, организовав
бмен информацией о виртуальном продукте с поставщиками и партнерами, что
озволит установить более тесные связи при разработке продукта.
.3.4. Родственные технологии
3.4.1. Интеграция CAD и компьютерного моделирования
1режде чем запускать программу анализа методом конечных элементов или про-
рамму имитации, необходимо создать геометрическую модель. Таким образом,
онструктор, работая с системой геометрического моделирования, создает модель,
затем экспортирует ее в программы анализа или имитации. Перенос данных из
дной программной системы в другую в стандартном формате данных нередко
риводит к потере части информации. Для преодоления этой трудности в совре-
1енных CAD-системах предусмотрены дополнительные модули анализа и пми-
ации, тесно интегрированные с системой моделирования1. Эти модули позволя-
>т решать задачи кинематического моделирования, анализа методом конечных
лементов, генерации сетки и последующей обработки непосредственно в систе-
ie моделирования.
'акое интегрированное решение предоставляет в распоряжение пользователя
динообразную среду для моделирования, анализа и имитации, позволяя избе-
гать потери информации, часто происходящей при переносе данных. Это позво-
яет легко переходить от проекта к его оценке и также закладывает основу для
имитационной виртуальной инженерии.
,3.4.2. Управление степенью детализации
। избирательная визуализация
>г графических средств виртуальной инженерии требуется способность рисо-
ать в реальном времени большое количество сборных моделей и движущихся
1еханизмов. Хотя современная графическая аппаратура достигла впечатляющих
ысот, ее возможностей все еще недостаточно для реалистичного отображения
юделей и обновления их в реальном времени либо соответствующее оборудова-
|ие слишком дорого. Быстродействие графической аппаратуры является одним
Система I-DEAS Masters компании SDRC — одна из первых систем, предоставляющая
полную линейку модулей компьютерного моделирования, САМ и тестирования, интег-
рированных с центральным модулем проектирования. Система Pro/Engineer от Para-
metric Technology Corporation включает в себя модули Pro/Mechanica, выполняющие
структурный, вибрационный, температурный и двигательный анализ. Pro/MESH и Рго/
FEMPOST — это пре- и постпроцессоры анализа по методу конечных элементов соот-
ветственно, Система CATIA от Dassault System включает программу анализа по методу
конечных элементов CATIA Finite Element Modeler и программу компьютерного моде-
лирования механизмов CATIA Kinematics. Система Unigraphics от Unigraphics Solutions
имеет модуль пре- и постпроцессора UG/Sccnario и модуль анализа UG/FEM. Модуль
UG/Mechanics используется для кинематического анализа и компьютерного моделиро-
вания конструкций.
1э.ч. гидывеннье шхныилии
из главных препятствий в виртуальной инженерии. Даже при ограниченных
аппаратных возможностях быстродействие графических систем можно повысить,
используя такие программные методы, как управление-степенью детализации и
избирательная визуализация.
Под управлением степенью детализации (level of detail — LOD) понимается
управление качеством отображения. Вспомните, что нелинейные поверхности
представляются на графических дисплеях с помощью плоских ячеек, обычно
имеющих форму треугольников. Чем больше плоских ячеек используется для
представления поверхности, тем более адекватно поверхность отображается,
но при этом отображение замедляется. Поскольку уровень детализации, кото-
рый может восприниматься пользователем или отображаться с помощью имею-
щейся графической аппаратуры, ограничен, попытка изобразить слишком много
деталей представляет собой напрасную трату процессорного времени. В мето-
де управления степенью детализации используется несколько представлений
одной и той же сцены, которые отображаются с различным уровнем детализации
в зависимости от контекста. Управление степенью детализации происходит дву-
мя способами: статически и динамически. При статическом управлении степень
детализации варьирует в соответствии с размером модели. Близко находящийся
объект отображается с высокой степенью детализации, а с удалением объекта
степень детализации уменьшается.
Избирательная визуализация (culling) — это выборочное отображение объектов.
В любой момент при просмотре сцепы пользователю видна только часть всего
набора моделей. Определенное количество данных либо окажется за пределами
отображения, либо будет закрыто другими объектами. Таким образом, отправ-
лять па графическое устройство всю информацию об объектах нет необходимо-
сти Есть два типа избирательной визуализации: зрительный конус и зрительное
присутствие. В режиме зрительного конуса отсекаются все объекты, выходящие
за пределы зрительного конуса. В зависимости от того, в какое место модели
направлен вз>ляд пользователя, одни объекты будут находиться в поле зрения,
а другие вне его. Объекты, находящиеся вне поля зрения, которое иногда назы-
вают зрительным конусом (view frustum), не посылаются в очередь объектов на
графическое отображение. Например, когда пользователь смотрит на комнату,
системе не нужно посылать графическую информацию о потолочном вентилято-
ре, если он находится вне зрительного конуса. В режиме зрительною присутст-
вия (оссигепсе) объекты, находящиеся позади других, более близких объектов,
являются невидимыми. Объекты, которые не видны пользователю при взгляде в
данном направлении, можно не посылать в графическую очередь. Например, ко-
гда отображается полностью собранный автомобиль, его двигательное отделение
не показывается, поскольку оно закрыто корпусом автомобиля.
С возрастающей сложностью виртуальной инженерии и приложений виртуаль-
ной реальности растет спрос па высококачественную графику и компьютерное
моделирование с высокой частотой смены кадров. Управление степенью детали-
зации и избирательная визуализация помогают повысить производительность
графической системы программными средствами. Они начинают все более ши-
роко применяться в САГ) и виртуальной инженерии.
44Н
1 лава и. ьи|лу—б-и ж нория
13.5. Примеры промышленного применения
виртуальной инженерии
□ Самолет Boeing 777. Boeing 777 — это первый коммерческий самолет, успеш-
но спроектированный безбумажным методом. Для разработки модели 777 кор-
порация Boeing организовала 238 межфункциональных «групп проектиро-
вания и изготовления», ответственных за конкретные продукты. Компания
Boeing использовала CAD-систему CATIA от Dassault/IBM и разработала
собственную систему предварительной компьютерной сборки EPIC (Electro-
nic Preassembly In Computer). Перед сборкой первого самолета не было изго-
товлено ни одного физического прототипа, кроме макета носовой части (для
проверки критической проводки). Виртуальное прототипирование позволило
компании Boeing вовлечь в процесс проектирования самолета заказчиков и
операторов (до линейных механиков). Виртуальное прототипирование было
настолько успешным, что несоосность при монтаже левого крыла составила
всего 0,03 мм.
□ Виртуальный прототип локомотивного двигателя фирмы СМ. Подразделе-
ние Electro-Motive фирмы General Motors разработало локомотивный двига-
тель GM16V265EI мощностью 6300 л. с. путем так называемой «виртуальной
разработки продукта» в сотрудничестве с Unigraphics Solutions. Все детали
были представлены в виде трехмерных моделей, и последующий анализ, оп-
тимизация конструкции и программирование станков с ЧПУ и приспособле-
ний проводились для этих моделей. Модель двигателя целиком показана на
рис. 13.5. Моделирование позволило обеспечить поставку продукта в сжатые
сроки: первый двигатель был построен через 18 месяцев после начала про-
граммы, в то время как обычно этот процесс занимает более 36 месяцев. Это
позволило также гораздо быстрее провести тесты надежности, что дало GM
возможность удовлетворить более жесткие требования к надежности.
Рис. 13.5. Локомотивный двигатель GM16V265H (с разрешения General Motors)
□ Дизайн интерьера салона автомобиля фирмы Chrysler. Дизайн интерьера са-
лона автомобиля Dodge Durango 1998 г. был разработан методом виртуаль-
ного проектирования. Член дизайнерской группы (рис. 13.6) сидит в упро-
щенном макете салона автомобиля, состоящем только из сиденья, руля
и педалей. Дизайнер, на котором надеты колонной дисплей системы вирту-
альной реальности, информационные перчатки и датчики движений, рассмат-
ривает виртуальный прототип интерьера автомобиля (приборная доска, орга-
ны управления радиоприемника, бардачок и окна) и взаимодействует с ним.
Виртуальный прототип позволяет легко вносить изменения в дизайн и оце-
нить обзор, доступность и эстетику. Этот метод дает возможность быстро
проверять различные варианты дизайна.
Рис. 13.6. Виртуальное проектирование интерьера салона автомобиля
(с разрешения Chrysler Corporation)
□ Поезд Metrocar 2000 в Стокгольме. Metrocar 2000 — это новая система общест-
венного транспорта в Стокгольме, разработанная компанией Adtranz Sweden.
Используя программу dVISE от Division, Adtranz сконструировала виртуаль-
ные прототипы поездов, включая полностью оснащенные интерьеры с тек-
стурными сиденьями, полами, рекламными плакатами и индикаторной пане-
лью машиниста. Глядя на виртуальный прототип (рис. 13.7), зрители могут
получить представление о масштабе, пространственных отношениях и эстети-
ке дизайна. Это позволяет заказчику и инженеру на ранних стадиях проекти-
рования знакомиться с дизайном продукта и вносить в него изменения.
□ Проектирование кораблей для Королевского военно-морского флота Велико-
британии. Морской директорат перспективных проектов Великобритании
внедрил виртуальное проектирование в рамках своей новой программы раз-
работки кораблей. С помощью программы ENVISION от Deneb Robotics ме-
тодом имитации в интерактивном режиме был разработан квартердек для но-
вого корабля. Имитация включала движение корабля (с шестью степенями
свободы) и его влияние на работающее оборудование, людей на борту и усло-
вия освещения в каютах. Это моделирование позволило инженерам оценить
проект и внести в него необходимые изменения.
Рис. 13.7. Виртуальный прототип Metrocar 2000 (с разрешения DIVISION, Inc.)
13.6. Программные продукты
Компании, производящие программные продукты для виртуального проекти-
рования, множатся. Большая часть этих компаний производят программы с мо-
дульной структурой, так что покупатель имеет возможность приобрести именно
те модули, которые требуются для его нужд. Имеются модули для виртуальной
сборки, цифровой имитации машин производственного участка и имитации про-
изводства. В них встроены обширные библиотеки моделей используемых в на-
стоящее время станков с ЧПУ, роботов, компонентов машин и производствен-
ных компонентов. Они помогают быстро создать модель собственной системы
заказчика. Все производители программного обеспечения расширяют свои моду-
ли, закладывая в них более широкий спектр инженерной деятельности и повы-
шая качество имитации.
□ Программа ADAMS от Mechanical Dynamics (http://www.adams.com). ADAMS —
это программный пакет для имитации и анализа автомобилей. Его сильной
стороной является наличие полной линейки модулей для моделирования
и анализа (кинематического, статического и динамического), а также имита-
ции. Таким образом, в отличие от других программных пакетов, ориентиро-
ванных главным образом на кинематическую имитацию, эта программа точно
реализует динамическую имитацию. ADAMS/Solver — это ядро линии про-
граммных продуктов ADAMS, обеспечивающее формулировку и решение
уравнений движения. Модули для моделирования включают ADAMS/Android
(анимационное моделирование людей), ADAMS/Driver (моделирование че-
ловеческого отклика на имитацию автомобиля), ADAMS/Tire (моделирова-
ние шин) и ADAMS/Vehicle (моделирование подвески легковых и грузовых
автомобилей). Интеграционный модуль обеспечивает интерфейс к подпро-
граммам моделирования и анализа ADAMS: ADAMS/FEA, ADAMS/IGES
и ADAMS/Linear. Модуль визуализации называется ADAMS/Animation.
Кроме того, ADAMS имеет отдельные модули для различных видов транс-
портных средств, куда входят ADAMS/Car (рис. 13.8) и ADAMS/Rail.
Рис. 13.8. Изображение, созданное модулем ADAMS/Car
(с разрешения Mechanical Dynamics, Inc.)
□ Программное обеспечение Deneb Robotics, Inc. (http://www.deneb.com). Deneb
Robotics производит программы виртуального проектирования, виртуального
прототипирования и имитации производственных участков и заводов. Воз-
можные виды имитации включают визуализацию, обнаружение столкнове-
ний и оценку длительности производственного цикла. Компанией выпуска-
ются следующие программные продукты: ENVISION (виртуальное
проектирование и прототипирование), IGRIP (проектирование роботов и
планирование движения) и ERGO (имитация и анализ эргономики и челове-
ческого фактора). В качестве надстроек к базовому модулю IGRIP могут быть
подключены специализированные модули UltraArc, UltraGrip, UltraPaint и
UltraSpot (рис. 13.9). Имеется модуль имитации дискретных событий QUEST,
с помощью которого можно имитировать заводскую линию. Кроме того, име-
ется модуль VirtualNC для имитации станков с ЧПУ.
□ Программное обеспечение Division (http://www.division.com). Изображение, соз-
данное программой виртуального прототипирования dVISE компании
Division, показано на рис. 13.10. Эта программа предоставляет средства
для импортирования существующих данных из CAD-программ и построения
виртуального прототипа. Возможности dVISE включают обнаружение столк-
новений и проверку свободного пространства при создании и просмотре про-
тотипов. Достоинством этой программы является ее системная архитектура —
распределяемая, многопользовательская и открытая. Распределяемая архи-
тектура позволяет выполнять процессы имитации на нескольких серверах.
Многопользовательская архитектура поддерживает коллективную разработ-
ку, при которой пользователи находятся в разных местах. Открытая архитек-
тура позволяет пользователям расширять функциональность продукта, при-
спосабливая его к своим нуждам. Семейство продуктов включает следующие
программы: dV/WebFly, dV/Player, dV/Review, dV/Mock-up и dV/Reality.
Рис. 13.9. Изображение, созданное модулем UltraSpot (с разрешения Deneb Robotics, Inc.)
Рис. 13.10. Изображение, созданное программой dVISE (с разрешения DIVISION, Inc.)
J Программное обеспечение Engineering Animations (http://www.eai.com).
VisMockUp — это программа виртуального прототипирования от Engineering
Animations, делающая упор на трехмерную визуализацию (рис. 13.11). Поль-
зователи могут исследовать сборку и детали компонентов с помощью различ-
ных средств визуализации. Система имеет трансляторы для популярных фор-
матов CAD-данных, что позволяет импортировать в нее геометрические
13.6. Программные продукты
модели. Аналитические функции включают обнаружение помех и столкно-
вений. Система поддерживает коллективную разработку, обеспечивая сов-
местное использование базы данных и предоставляя визуальный интерфейс
в окне стандартного веб-браузера.
Рис. 13.11. Изображение, созданное программой VisMockUp (с разрешения E.A.I.)
□ Программное обеспечение SILMA (http://www.silma.com). Компания SILMA про-
изводит серию модулей виртуальной инженерии, включающую модули Soft-
Assembly, SoftMachines, CimStation и AdeptRapid. SoftAssembly обеспечивает
имитацию последовательности сборки, запись оптимальной траектории и ви-
зуализацию. Столкновения выявляются в процессе имитации последователь-
ности сборки. SoftMachine — это модуль для имитации обработки на станке
с ЧПУ. Виртуальный станок выполняет стандартные G- и М-коды и ими-
тирует соответствующие процессы обработки. Имитация позволяет выявить
ошибки обработки и столкновения. CimStation Robotics — это модуль ими-
тации роботизированного производственного участка. Он использует собст-
венную библиотеку CAD-данных коммерческих роботов для имитации про-
изводственной системы. CimStation Inspection (рис. 13.12) — это модуль
программирования и имитации координатно-измерительных машин. В нем
имеется библиотека кинематических моделей коммерческих координатно-из-
мерительных машин и щупов.
Глава 13. Виртуальная инженерия
Рис. 13.12. Изображение, созданное модулем CimStation
(с разрешения Adept Technology, Inc.)
□ Программное обеспечение Prosolvia (http://www.prosolvia.se). Prosolvia выпус-
кает линейку модулей виртуального прототипирования и визуализации под
названием Oxygen. Oxygen Assembly — это модуль виртуального проекти-
рования и прототипирования, с помощью которого пользователи могут ими-
тировать ручную сборку в виртуальной среде для обзора и анализа последо-
вательности сборки. Oxygen Showroom позволяет рассматривать и оценивать
варианты конструкции продукта в реалистичной и интерактивной среде.
Oxygen MMI имитирует эргономический анализ, посредством которого поль-
зователь может проверить расстояния, доступность, обзор и комфорт. Oxygen
Sketchmap преобразует двумерные рисунки в трехмерные модели, которые
могут использоваться в виртуальной среде. Oxygen также имеет программные
надстройки: Oxygen Immersive Space имитирует системы пространственно-
го погружения; Oxygen Collaboration поддерживает распределенную работу;
Oxygen Peripherals поддерживает аппаратуру виртуальной реальности (систе-
му отслеживания движений, головные дисплеи, информационные перчатки);
наконец, Oxygen CAD-Exchange обеспечивает преобразование данных из
CAD-систем.
Программное обеспечение Tecnomatix (http://www.tecnomatix.com). Tecnomatix
предлагает несколько линеек продуктов для анализа производства, сборки
и допусков. ROBCAD — это набор программ для проектирования, имитации
и автономного программирования производственных систем. Он состоит из
различных специализированных модулей, включая ROBCAD/Line, ROBCAD
Spot, ROBCAD/Paint, ROBCAD/Drill, ROBCAD/Arc, ROBCAD/Fixture,
ROBCAD/Man, ROBCAD/Laser и ROBCAD/Onsi^e. VALISYS — это линейка
программных продуктов для анализа размеров и допусков, а также имитации
процесса контроля на координатно-измерительной’ машине. В нее входят:
VALISYS/Design, VALISYS/Assembly, VALISYS/CMM Offline Program-
ming, VALISYS/Inspection, VALISYS/Analyze и VALISYS/Reverse. DYNAMO
(рис. 13.13) — это линейка модулей для виртуального прототипирования. Го-
ловной модуль обеспечивает имитацию сборки и анализ площадки для об-
служивания. К нему имеются дополнительные модули — DYNAMO/Engineer
и DYNAMO/Link.
Рис. 13.13. Изображение, созданное модулем Dynamo
(с разрешения Tecnomatix Technologies, Inc.)
13.7. Аппаратура
Виртуальная инженерия — чисто программная технология, и поэтому сама по
себе не требует какого-либо специального оборудования. Однако для взаимодей-
ствия с пользователем необходимо оборудование виртуальной реальности. Это
оборудование включает в себя как устройства ввода, так и устройства выво-
да. Устройства вывода дают пользователю ощущения от виртуальной среды. По-
скольку самый эффективный способ сенсорного восприятия — это зрение, глав-
ными компонентами систем виртуальной реальности являются устройства
отображения. Эти устройства должны обеспечивать пользователю стереоскопи-
ческий обзор. Доступное в настоящий момент оборудование включает головные
дисплеи, бинокулярные всенаправленные мониторы, дисплеи пространствен-
ного погружения и специальные очки. Звук и осязание обогащают ощущения
от виртуальной реальности, когда они используются в совокупности со зритель-
ной системой. Типичным примером звуковой аппаратуры могут служить науш-
ники с пространственно расширенной звуковой системой. Аппаратура осяза-
ния — это приборы с силовой обратной связью. Популярными устройствами
ввода являются системы распознавания речи, следящие системы и информаци-
онные перчатки.
Глава 13. Виртуальная инженерия
□ Головные дисплеи. Головной дисплей — это устройство отображения с полным
погружением. Шлем полностью закрывает глаза и позволяет смотреть только
прямо перед собой. Небольшой экран, смонтированный перед глазом пользо-
вателя, дает стереоскопическое изображение. Прибор имеет встроенную сле-
дящую систему, благодаря которой изображение на дисплее меняется при из-
менении положения и ориентации головы пользователя. В настоящее время
доступно более 40 моделей головных дисплеев. Среди них можно упомянуть
FOHMD от CAE-Electronics (рис. 13.14) и Looking Glass от Polhemus Lab.
Рис. 13.14. Головной дисплей (с разрешения САЕ, Inc.)
Бинокулярные всенаправленные мониторы. Бинокулярный всенаправленный
монитор — это механическая версия головного дисплея. Он состоит из дис-
плейной коробки, которая сбалансирована по весу на многозвенной стреле.
Пользователь смотрит на дисплей, а движение его головы отслеживается че-
рез систему механических звеньев. Основным преимуществом бинокулярных
всенаправленных мониторов перед головными дисплеями является быстрое и
точное слежение. В продаже имеются бинокулярные всенаправленные мони-
торы ВООМ-2С от Fake Space Labs (http://www.fakespace.com) и Cyberface3
от LEEP.
Дисплеи пространственного погружения. В дисплеях пространственного по-
гружения используется панорамный видеоэкран, окружающий пользовате-
ля, так что пользователь чувствует себя погруженным в виртуальную среду.
Дисплеи пространственного погружения обеспечивают большое поле зрения
и свободу передвижения в виртуальной среде. В Университете штата Илли-
нойс (Чикаго) разработана четырехстенная система пространственного по-
гружения CAVE. Приобрести систему CAVE можно через фирму Pyramid
System. Существуют большие куполообразные дисплеи пространственного
погружения, такие как Visionarium фирмы Silicon Graphics, имеющий 8 м в
диаметре. Фирма Spitz Electrichorizen построила дисплей пространственного
погружения диаметром 8,5 м (рис. 13.15).
Рис. 13.15. Театр виртуальной реальности (с разрешения SPITZ, Inc.,
Чэдс-Форд, Пенсильвания, США)
□ Шторные очки. Шторные очки — это недорогое устройство отображения. Поль-
зователь надевает устройство, напоминающее очки, которое попеременно за-
крывает обзор то одному, то другому глазу. Монитор или другое устройство
отображения, синхронизированное с очками, имеет в два раза большую часто-
ту обновления и попеременно показывает картинку для левого и для правого
глаза. В результате на экране монитора пользователь видит стереоскопиче-
ское изображение. Данное устройство может использоваться вместе с выпус-
каемыми в настоящий момент дисплеями, поэтому оно экономически выгодно.
Однако оно обеспечивает недостаточное погружение для того, чтобы пользо-
ватель увидел реальную среду, так как поле зрения ограничено размерами мо-
нитора. В продаже имеются шторные очки CrystalEyes от Stereographies и SGS
от Tektronix.
□ Устройства осязания. Устройство осязания дает ощущение физического при-
косновения. Такое устройство позволяет пользователям почувствовать реаль-
ный объект через систему силовой обратной связи, создающую иллюзию
работы с реальным материалом. Примером устройства осязания является
джойстик с силовой обратной связью, через который пользователь ощущает
силу реакции на рабочей руке. В продаже имеются джойстики Haptic Mater от
Nissho Electronics и BSP Joystick от AEA Technologies. Прибор Phantom фир-
мы SensAble Technology — это устройство осязания на базе карандаша, имею-
щее шесть степеней свободы (рис. 13.16). Более передовым типом устройства
осязания является экзоскелет — сложная система механических звеньев,
окружающая всю руку и палец, так что каждый палец и сустав независимо
получают силовую обратную связь. Он объединяет в себе информационную
перчатку и устройство осязания. Примерами экзоскелетов являются The Ехо-
skeletal Hand Master от Sarcos и Force ArmMaster от Exos.
Рис. 13.16. Устройство осязания Phantom от SensAble Technology
(с разрешения SensAble Technology и PennWell Publishing Company)
Следящие системы. Следящие устройства используют электромагнитную,
ультразвуковую, оптическую или механическую систему для определения по-
ложения и ориентации отслеживаемого объекта. Следящее устройство может
быть встроено в головной дисплей для отслеживания направления взгляда
и положения головы или в информационную перчатку — для отслеживания
положения руки. Следящее устройство можно также прикрепить на любую
часть тела. В продаже имеются такие следящие системы, как Flock of Birds от
Ascension и ISOTRAK II от Polhemus (http://www.polhemus.com). Типичным
примером следящих устройств с использованием ультразвуковой технологии
могут служить Head-tracker от Logitech (http://www.logitech.com) и GAMS от
Transition State Corporation. Механическая система используется в устройст-
вах GyroEngine от Gyration, ADL-1 от Shooting Star Technology и Wrightrac
от Vidtronics. Наконец, к устройствам с использованием оптической техноло-
гии относятся GRD-1010 от GEC Ferranti, DynaSight от Origin Instruments
и RtPM от Spatial Positioning Systems.
Информационные перчатки. Информационная перчатка имеет на каждом сус-
таве пальцев руки датчики, измеряющие изгиб пальца. Положение руки в
целом определяется следящей системой, прикрепленной к перчатке. Обычно
информация, получаемая с перчатки, преобразуется в виртуальной среде об-
ратно в изображение, форма и положение которого динамически изменяются,
следуя за движениями руки пользователя. В продаже имеются информацион-
ные перчатки Dexterous Hand master от Exos, CyberGlove GG1801 от Virex
и DataGlove от Greenleaf Medical Systems (рис. 13.17).
Рис. 13.17. Информационная перчатка DataGlove (с разрешения Greenleaf Medical Systems)
13.8. Исследовательские проблемы
и препятствия виртуальной инженерии
Виртуальная инженерия — зарождающаяся технология. Она обладает достаточ-
ным потенциалом для того, чтобы стать значительной составляющей деятельно-
сти инженера, однако на сегодняшний день функциональность и возможности
применения систем виртуальной инженерии ограничены. Чтобы виртуальная
инженерия превратилась в развитую технологию, необходимо получить возмож-
ность полностью отразить функциональное поведение физических систем по-
средством компьютерной имитации. Обсудим некоторые связанные с этим про-
блемы.
□ Новые средства проектирования. Виртуальное проектирование предоставля-
ет принципиально иную среду для разработки. В ней зрение является стерео-
скопическим, а взаимодействие с моделью конструкции осуществляется с по-
мощью нескольких органов чувств. Эта новая среда открывает возможности
для появления новых методов проектирования и подходов к моделированию.
В ближайшем будущем конструктор будет иметь возможность взять объект
в руки и растянуть его или создать и изменить модель с помощью одного
только голоса. Новый подход к моделированию обеспечит более естествен-
ные и интуитивные способы создания моделей.
□ Моделирование процессов и физических объектов. В настоящее время возмож-
ности имитации сводятся главным образом к кинематике. Моделирование
динамических систем, деформируемых систем и жидких систем обычно тре-
бует анализа методом конечных элементов, отнимающего большое количест-
во вычислительных ресурсов. Чтобы это имело какую-то ценность в качестве
средства виртуального проектирования, данный анализ необходимо произво-
дить в реальном времени. Чтобы стала возможной имитация в реальном вре-
мени, необходимо компактное и точное моделирование. Более того, модели
должны содержать в себе информацию о своих физических свойствах и экс-
периментальные данные, демонстрирующие их физическое поведение.
□ Мера возможности производства. Производственные процессы различны,
каждый процесс имеет свои собственные уникальные характеристики. Таким
образом, найти какую-то общую метрику, определяющую возможность про-
изводства различных продуктов, представляется трудной задачей. Необходимы
исследования определений возможности производства и методологии ее
оценки. Помимо простого решения типа «да/нет» необходимо определить
количественную меру возможности производства. Кроме того, оценку воз-
можности производства необходимо трансформировать в оценку продолжи-
тельности производственных процессов и затрат.
□ Быстродействие системы. В настоящий момент качество визуализации и
имитации сильно ограничивается быстродействием системы. Благодаря экс-
поненциальному росту скорости обработки и прогрессу технологии распреде-
ленных вычислений качество имитации улучшается. Однако быстродействие
системы остается все еще слишком низким для полноценного виртуального
проектирования. Для визуализации требуется детализированное трехмерное
отображение и анимация с высокой частотой кадров. Оценка проекта включа-
ет анализ динамических систем и оптимизации, требующие больших вычис-
лительных ресурсов. Кроме того, для обеспечения коллективной разработки
необходимо повысить скорость работы сетей, расширить полосу пропускания
и увеличить число каналов.
□ Стандарт интерфейса данных. Виртуальное проектирование включает в себя
взаимодействие различных пакетов прикладных программ. Моделирование
детали обычно производится в CAD-системе, анализ — в программе анализа
по методу конечных элементов, а компьютерная имитация — в интерактивной
системе имитации производства. Для коллективной разработки необходимо,
чтобы эти различные системы работали вместе. Стандартные интерфейсы баз
данных и программного обеспечения являются ключом к виртуальному про-
ектированию.
□ Открытая архитектура. Открытая архитектура придает системе масштаби-
руемость. Системы виртуального проектирования необходимо объединять с
имеющимися в настоящий момент инженерными системами для получения
дополнительной функциональности или решения разнотипных задач. Откры-
тая архитектура позволяет системе задействовать большой резерв инженер-
ных ресурсов и находить разнообразные формы применения.
вопросы и задачи
I. Перечислите преимущества виртуальной инженерии в применении к процес-
су разработки продукта.
ь. Из каких компонентов состоит виртуальная инженерия в терминах производ-
ственного цикла?
Какие дополнительные возможности, скорее всего, потребуются современ-
ным CAD-системам для реализации в них виртуального проектирования?
I- Чтобы агрегат из деталей, созданных современными CAD-системами, можно
было использовать для цифровой имитации, необходимо иметь некоторую
дополнительную информацию, помимо геометрических моделей компонен-
тов и их соединений. Что это за информация?
Вопросы и задачи
5. Каково наиболее популярное применение цифровых макетов в разработке
продуктов?
6. Объясните, почему виртуальные прототипы делают возможным проектирова-
ние «сверху вниз».
7. Объясните, каким образом виртуальная инженерия поощряет коллективную
разработку.
8. Назовите две типичные программные технологии, позволяющие повысить ско-
рость обработки графической информации при визуализации агрегатов, со-
стоящих из множества частей. Объясните вкратце суть каждой из техноло-
гий.
9. Что такое «избирательная визуализация по зрительному конусу» и «избира-
тельная визуализация по зрительному присутствию»?
10. В чем состоит основное различие между головными дисплеями и всенаправ-
ленными бинокулярными мониторами?
11. Объясните принцип, по которому пользователь, на котором надеты шторные
очки, может видеть стереоскопическое изображение.
12. Когда на вас надета информационная перчатка, как движения ваших пальцев
регистрируются датчиками на каждом суставе пальцев? Как определяется
глобальное положение руки?
|Глава 14
[стандарты обмена данными
[между системами
[В главах 8 и 11 мы показали, что прикладные программы, например программы
генерации сетки для анализа по методу конечных элементов или траектории
(движения инструмента станков с ЧПУ, требуют на входе технического описания
продукта. Данные технических требований делятся на два типа. Первый тип дан-
ных — это данные чертежа; они включают векторное описание линий (сплош-
(ных, пунктирных, осевых, размерных и выносных) и пояснительных данных
комментариев, символов и значений размеров), имеющихся на чертеже. Ко вто-
(юму типу данных технических требований относится представление твердо-
иельной модели и некоторые пояснительные данные. Поэтому данные техниче-
ских требований обычно импортируются из CAD-системы — либо из системы
Ььтоматизированной разработки чертежей, либо из системы твердотельного мо-
делирования. Однако, как было отмечено в главах 4 и 5, все CAD-системы хра-
(шт результаты проектирования, то есть данные технических требований, в сво-
(,х собственных структурах данных, формат которых зависит от конкретной
(истемы. Они могут не соответствовать входному формату используемой при-
кладной программы. Таким образом, когда две или более CAD/CAM/CAE-сис-
емы объединяются и связываются в единое приложение для совместного исполь-
зования данных, часто возникает проблема обмена данными. Фактически всегда
имеется потребность связать воедино несколько систем либо внутри одной орга-
низации, либо внешне, как в случае со смежниками или поставщиками компо-
нентов.
(дя решения этой коммуникационной проблемы необходима возможность пре-
образовывать данные технических требований одной системы в форму, понятную
Ля других систем, и наоборот. Чтобы облегчить преобразование и не разраба-
тывать программы-конверторы для всех возможных пар САПР, было предло-
жено несколько стандартных форматов для хранения данных технических тре-
бований. В этой главе мы вкратце рассмотрим типичные стандартные форматы.
14.1. Методы обмена данными
технических требований
различные CAD/CAM/CAE-системы хранят данные технических требований
структурах разного вида, поэтому для переноса данных необходимо преобразо-
вать данные технических требований одной системы в формат другой системы,
ще один конвертор необходим для переноса данных между двумя системами в
ютивоположном направлении. Следовательно, для каждой пары систем необ-
ходимо иметь два конвертора. Двунаправленные стрелки для каждой пары сис-
тем (рис. 14.1, а) предполагают наличие двух конверторов. Эти конверторы для
каждой конкретной пары систем называются прямыми конверторами {direct
translators). Если у нас есть п различных систем, нам необходимо разработать
п{п - 1) конверторов, поскольку количество пар систем равно п{п - 1)/2. Напри-
мер, для обмена данными между 10 системами придется разработать 90 конвер-
торов. Таким образом, метод прямого конвертирования непрактичен, так как
требует разработки слишком большого количества конверторов при необходи-
мости работать со множеством систем. Более того, добавление одной системы к п
уже имеющимся потребует написания 2п дополнительных конверторов.
Рис. 14.1. Два метода обмена данными между двумя различными системами
Однако обмен данными можно обеспечить, введя нейтральную структуру базы
данных, называемую нейтральным файлом {neutral file), которая была бы незави-
сима от существующих САПР. Эта структура будет действовать как промежу-
точная точка коммуникации между различными структурами баз данных САПР
(рис. 14.1, б). Таким образом, в каждой системе будет своя пара конверторов для
экспорта и импорта данных в этот нейтральный формат. Конвертор, преобразую-
щий данные из собственного формата данной системы в нейтральный формат,
называется препроцессором {pre-processor), а конвертор, выполняющий обратное
преобразование — постпроцессором {post-processor) (рис. 14.2). Соответственно,
в этом случае для обмена данными между п системами потребуется 2п конвер-
торов, и лишь два дополнительных конвертора необходимо будет добавить при
введении новой системы. Иными словами, этот косвенный метод свободен от
присущего прямому методу недостатка, когда требовалось писать все возрастаю-
щее количество программ. Это основная причина, по которой косвенный метод
принят в качестве главного метода обмена данными между различными система-
ми, несмотря на то что в сравнении с прямым методом у него имеются некото-
рые недостатки. В частности, прямые конверторы работают быстрее косвенных,
и создаваемые ими файлы данных обычно имеют меньший размер, чем ней-
тральные файлы, генерируемые косвенными конверторами. Файл данных в соб-
ственном формате конкретной системы обычно также оказывается меньше ней-
трального файла из-за обобщенной природы последнего. Когда мы переносим
данные технических требований через нейтральный файл, некоторая информа-
ция, как правило, теряется, особенно информация о топологическом дереве и ог-
раничениях в системах параметрического моделирования.
। лава 14. стандарты оьмена данными между системами
Рис. 14.2. Обмен данными с использованием нейтрального файла
В этой главе мы рассмотрим три типичных формата нейтрального файла: IGES
(Initial Graphics Exchange Specification — первоначальная спецификация обмена
графическими данными), DXF (Drawing interchange Format — формат обмена
чертежами) и STEP (STandard for Exchange of Product model data — стандарт об-
мена данными о модели продукта). В настоящее время IGES является самым по-
пулярным форматом нейтрального файла, а формат DXF используется главным
образом для обмена данными чертежей. STEP — это стандартный формат дан-
ных, используемый для хранения полной информации обо всем жизненном цик-
ле продукта, включая проектирование, анализ, производство, контроль качества,
испытания и обслуживание помимо обычных данных технических требований.
В настоящее время CAD-системы, поддерживавшие формат IGES, ориентиро-
ваны на переход к формату STEP.
14.2. Формат IGES
В 1979 г. перед техническим комитетом, который состоял из компании Boeing,
компании General Electric и Национального бюро стандартов США (National
Buerau of Standards, теперь Национальный институт стандартов и технологии),
была поставлена задача разработать метод обмена данными в рамках программы
интегрированного автоматизированного производства (ICAM) для ВВС США.
Результатом этих усилий явилось описание формата IGES версии 1.0, опублико-
ванное в январе 1980 г. В 1981 г. оно было принято Американским Националь-
ным институтом стандартов (ANSI) в качестве стандарта.
IGES был первым стандартным форматом обмена данными, разработанным для
нужд передачи данных технических требований между различными САПР. Ран-
ние версии IGES были неявным образом ориентированы на CAD/CAM-системы
1970-х и начала 1980-х гг., то есть главным образом на обмен чертежами. В более
поздних версиях спектр типов данных, подлежащих обмену, был расширен. На-
пример, версия 2.0 поддерживала обмен данными анализа по методу конечных
элементов и данными печатных плат, в версии 3.0 были расширены возможности
пользовательских макрокоманд, играющих важную роль при обмене стандарт-
ными библиотеками деталей, в версии 4.0 была введена поддержка дерева CSG,
в в версии 5.0 появилась обработка данных структуры B-Rep.
IGES-файл остоит из шести разделов, которые должны идти в следующем
порядке (рис. 14.3): Flag (Флаг, необязательный раздел), Start (Начало), Global
(Глобальные данные), Directory Entry, или DE (Запись в каталоге), Parameter Data,
или PD (Параметрические данные) и Terminate (Конец). Пять обязательных раз-
иелов идентифицируются буквами S, G, D, Р и Т, как показывает столбец 73 каж-
юй записи на рис. 14.4. Запись {record') — это строка из 80 символов. IGES-файл,
'оответствующий чертежу на рис. 14.5, показан на рис. 14.4.
14.2. Формат IGES
Рис. 14.3. Структура IGES-файла
Раздел Flag используется только в сжатом ASCII-формате и бинарном формате.
Данные в IGES-файле могут быть представлены в двух форматах: ASCII и би-
нарном. Формат ASCII имеет две разновидности: фиксированную длину строки
80 символов (рис. 14.4) и сжатую форму. Сжатая форма — это не что иное, как
ASCII-файл, сжатый путем устранения пробелов между записями. Подробное опи-
сание сжатой формы можно найти в [166]. Бинарный формат файла являет собой
бинарное представление данных в виде потока битов в формате с фиксированной
длиной записи. Чтобы идентифицировать формат файла как сжатый ASCII, в стол-
бец 73 раздела Flag записывается символ С. Раздел Flag состоит из одной записи
(строки) и предшествует разделу Start. В бинарном формате первый байт (8 бит)
раздела Flag содержит ASCII-символ В, служащий идентификатором типа файла.
Обратите внимание, что на рис. 14.4 раздел Flag отсутствует, так как на этом рисун-
ке представлен IGES-файл в формате с фиксированной длиной записи.
В разделе Start дается описание файла в форме, воспринимаемой человеком.
В нем указывается система, являющаяся источником данных, препроцессор и
описываемый продукт. На рис. 14.4 записи, у которых в столбце 73 стоит сим-
вол S, принадлежат разделу Start.
Раздел Global содержит информацию о препроцессоре, а также информацию, не-
обходимую постпроцессору для интерпретации файла. В частности, в этом раз-
деле имеются следующие элементы:
□ символы, используемые в качестве разделителей между отдельными полями
и записями (на рис. 14.4 для этого используются соответственно запятая и
точка с запятой);
□ имя самого IGES-файла;
□ количество значащих цифр в представлении целых чисел и чисел с плаваю-
щей точкой в системе-источнике;
□ дата и время создания файла;
□ масштаб пространства модели;
□ единицы измерения модели;
□ минимальная разрешающая способность и максимальные значения координат;
□ имя создателя файла и название организации.
Глава 14. Стандарты обмена данными между системами
1GES file generated from an AutoCAD । drawing by the 1GES S0000001
translator from Autodesk, Inc. , translator version 1GESOUT-3.04. S0000002
,, 10HB:WKEYHOLE, 14HB :WKEYHOLE. IGS, 27HAutoCAD-12 c2 International, 12H1GESG0000001
OUT-3. 04. 32. 38. 6. 99. 15.10HB:WKEYHOLE, 1. 0, 1, 4HINCH, 32767, 3. 2767D1, 13H9307G0000002
06. 211545. 5. 0D-9. 5. 0. 13HShin Dong Koo, 12H GoldStar Gl, 6,0; G0000003
100 1 1 1 0 OOOOOOOODOOOOOOl
100 1 D0000002
110 2 1 1 OOOOOOOODOOOOOD3
110 1 D0000004
110 3 1 1 00000000D0000005
110 1 D0000006
110 4 1 1 00000000D0000007
110 1 D0000008
212 5 1 1 00010100D0000009
212 256 1 D0000010
106 6 1 00010100D0000011
106 256 1 40 D0000012
106 7 1 00010lOODOOOOO13
106 256 1 40 D0000014
214 8 1 1 00010100D0000015
214 256 1 3 D0000016
214 9 1 1 00010lOODOOOOO17
214 256 1 3 D0000018
216 10 1 1 0 0000010IDOOOOO19
216 1 D0000020
212 11 1 1 00010100D0000021
212 256 2 D0000022
106 13 1 0001010000000023
106 256 1 40 D0000024
106 14 1 000101OODOOOOO25
106 256 1 40 DOOOOO26
214 15 1 1 00010100D0000027
214 256 2 3 D0000028
214 17 1 1 00010100D0000029
214 256 2 3 D0000030
216 19 1 1 0 OO0OOIO1DOGOOO31
216 1 D0000032
212 20 1 1 00010100D0000033
212 >256 2 D0000034
214 22 1 1 00010100D0000035
214 256 2 3 D0000036
214 24 1 1 00010100D0000037
214 256 2 3 D0000038
206 26 1 1 0 00000101D0000039
206 1 D0000040
110 27 1 1 00000000D0000041
110 1 D0000042
110 28 1 1 OOOOOOO0DOOOOO43
110 1 D0000044
110 29 1 1 OOOOOOOODOOOD045
110 1 D0000046
110 30 1 1 00000000D0000047
110 1 D0000048
110 31 1 1 00000000D0000049
110 1 D0000050
110 32 1 1 O0OOOOOODOOOOO51
110 1 D0000052
100, 0. 0, 30. 0, 30. 0, 2. 3D1, 54. 0, 3 1. 7D1, 54.0; 1P0000001
110, 23. 0,58. 0, 0. 0,37 . 0, 58. 0, 0. o; 3P0000002
110, 23. 0, 54.0, 0. 0, 23 . 0, 58. 0, 0. o; 5P0000003
110, 37. 0, 54.0, 0. 0,37 . 0, 58. 0, 0. o; 7P0000004
212, 1,2,3. 2,3. 0, 1,, 0 . 0, 0, 0, 2. 84D1,6. 3705885482016D1, 0. 0.-2H14; 9P0000005
106, 1, 3, 0. 0, 23. 0, 58. 0, 23. 0, 58. 0,23. 0,6. 4205885482016D1; 11P0000006
106, 1, 3, 0. 0,37. 0, 58. 0, 37. 0, 58. 0,37. 0,6. 4205885482016D1; 13P0000007
214, 1,3. 0, 1.0, 0. 0,23 . 0, 6. 2205885482016D1, 30. 0, 6. 2205885482016D1; , 15P0000008
214, 1,3. 0, 1.0, 0. 0,37 . 0, 6. 2205885482016D1, 30. 0, 6. 2205885482016D1; ; 17P0000009
216, 9, 15, 17, 11,13; 19P0000010
212, 1,2,4. 0, 3. 0, 1,, 1 . 5707963267949D0, 0, 0, 6. 5399660145317D1, 21P0000011
2.95D1.0. 0, 2H53; 21POOOOO12
106, 1,3, 0. 0,37. 0, 58. 0, 37. 0, 58. 0, 6. 8899660145317D1.58.0; 23P0000013
106, 1,3, 0. 0, 30. 0, 5.0 , 30. 0, 5. 0, 6. 8899660145317D1, 5. 0; 25P0000014
214, 1, 3. 0, 1. 0, 0. 0, 6. 6899660145317D1, 58. 0, 6. 6899660145317D1, 27P0000015
3.15D1; 27P0000016
214, 1, 3. 0, 1. 0, 0. 0, 6. 6899660145317D1, 5. 0, 6. 6899660145317D1, 29P0000017
3.15D1; 29P0000018
216, 21, 27, 29, 23, 25; 31P0000019
212, 1,5, 6. 0,3.0, 1,, 4 .85718362620351 >-1,0, 0,-3. 4208387606424D0, 33P0000020
1. 4053290730212D1,0. 0, 5HWc5O; 33P0000021
214,2,3. 0, 1.0, 0. 0, 7. 8915046446839D0, 1. 832890608709D1, 3. 0D1, 35POOOOO22
3. 0D1, -2. 7205731258678DO, 1. 2726781008893D1; 35P0000023
214, 1, 3. 0, 1. 0, 0. 0, 5. 2108495355316D1, 4. 167109391291D1, 3. 0D1, 37P0000024
3. 0D1; 37P0000025
206, 33, 35, 37, 3. 0D1, 3. 0D1; 39P0000026
110, 2. 8D1, 30. 0, 0. 0,3 . 2D1, 30. 0, o.o; 41P0000027
110, 3. 0D1, 28. 0, 0. 0, 3 . OD1,32. 0, 0.0; 43P0000028
110, 2. 6D1, 30. 0, 0. 0,3 . 0, 30. 0, 0. o; 45P0000029
110, 34. 0,30. 0, 0. 0,57 . 0. 30. 0, 0. 0; 47P0000030
110, 3. 0D1, 26. 0, 0. 0,3 . 0D1, 3. 0, 0 10; 49P0000031
110, 3. 0D1, 34. 0, 0. 0, 3. 0D1, 57. 0, o.o; 51POOOOO32
SOOOOOO2GOOOOOO4DOOOOO52POOOOO32 T0000001
Рис. 14.4. IGES-файл, соответствующий чертежу на рис. 14.5
14.2. Формат IGES
467
Рис. 14.5. Пример чертежа
На рис. 14.4 записи с символом G в столбце 73 принадлежат разделу Global.
Раздел Directory Entry содержит список всех элементов и некоторых их атри-
бутов. В IGES-файле все данные технических требований представлены в виде
списка предопределенных элементов: геометрических (линии, кривые плоско-
сти, поверхности) и пояснительных (комментарии и значения размеров). Каж-
дому элементу присваивается определенный номер типа. Геометрические эле-
менты, определенные в каждой версии IGES, перечислены в табл. 14.1.
Обратите внимание, что впервые твердые тела были введены в качестве геомет-
рических элементов в версии 4.0. Запись о каждом элементе занимает две 80-
символьных строки, разделенные в сумме на двадцать 8-символьных полей. Пер-
вое и одиннадцатое поля (начало второй строки каждого элемента) содержат
номер типа элемента. Второе поле содержит указатель на запись в разделе
Parameter Data, где фактически хранятся данные, определяющие элемент. Этот
указатель является просто порядковым номером соответствующей записи в раз-
деле PD. В остальных полях хранятся атрибуты: начертание линии, номер слоя,
матрица преобразования, толщина линии и цвет.
Раздел Parameter Data содержит фактические данные, описывающие каждый из
элементов, перечисленных в разделе Directory Entry. Например, элемент, представ-
ляющий собой прямую линию, определяется шестью координатами двух ее конеч-
ных точек. Хотя каждый элемент всегда имеет две строки в разделе DE, количест-
во записей, требуемое для каждого элемента в разделе PD, различно для разных
элементов и зависит от количества необходимых данных. Параметрические дан-
ные указываются в свободном формате в столбцах 1-64. Разделитель полей, опре-
деленный в разделе Global, используется для разделения параметров, а определен-
ный там же разделитель записей — для обозначения конца списка параметров.
Обычно в качестве разделителя полей используется запятая, а в качестве раздели-
теля записей — точка с запятой. Столбцы 66-72 во всех записях раздела PD содер-
жат обратный указатель на соответствующий элемент в разделе DE. Обратите вни-
мание, что этот указатель представляет собой порядковый номер первой из двух
строк, отведенных под каждый элемент в разделе DE. В столбцах 74-80 хранится
порядковый номер записи, которой они принадлежат. Раздел Terminate содержит
единственную запись, в которой в целях контроля хранится количество записей
в каждом из четырех предшествующих разделов.
Таблица 14.1. Геометрические элементы, поддерживаемые в каждой из версий IGES, и номера их типов
Версия 1GES 1GES 4.0 о СО ХГ кхмоч.90 OJ -on quaxoVdaax dKiniivoorG
со xu lad -ju Jiiqjma<L9O
о 00 ofiodav опагглд
00 со mioouiiiiVG
S uaonodau oj -oiinaiinv 01Г.Э l
см со кип -arm:dn Ob'«\L
S d<>£
со Ш шЬфэ
со СП эХном ijiqif -jXcIji howndу
ХГ UO dVlIlILTHll ШЯ1Г -jAcbl IIOKKCly
см ио П1НГЧ IJI‘111 -чЕолЛоккйц co i<LU?x4L’Xi:ad ai'iiixiiawavg
о LO Van -nnoifaifift’di’LI co 1ЧХЕХЧ1гХк -ad агтлслгЕД
IGES 3.0 XT «uoonxdotioii кпмэоыккоипк! -ни кешюьээд CM XT iixaoiixdanon HoxaahMdxoivcd -nu I’ll KEnild^ co co oniiarmidn И ЭИПЭЖЕ(19 -oj.o аояо!гед
0 КИПЭТПЭМЭ чхэопхсЬяоц 0 BHII -Э1П0ИЭ KEHJid>l CM 00 ВИ нэп -iiVooa 1’мъох
IGES 2.0 co CM l’init?VLI3 -g ojonqvi’ii -OllTllld
00 CM vuiiEirna-g ojoiriruiioiiln’d qxaonxdasoy 2 имьох
CM cm dvniiVHTi тян -nufloduvXpi’x CM BIIHBV1I3 ojoMoahiidxaiv -rdvu КЕПИС1>1 co co хной -Э1Г6 Ш<ШЬ01Ю}1
0 CM Mimamcdn qxoonxdouon 0 Klllllllf XT co
co qxooiixdafioii кшиннэпиц* 0 IIJAV К1331ЭЭЕИ|1О>1 Ю CM ЭИПЛЖШ11О
XT ЕПИШГНЭ охомэ -ahiidiawtidi’ii <IX3OI IXda«O£J CM о inmiidx КШ1ПИХЭОЭ XT CM KumifioL'Edtjo -odii miiidxui\
co 0 ЧХЭОЯЭОЬ'П о о iixa -опж&Ью i’jXJ/ co 0 oiqiumv anil -паяхээжонэд
Kiiiiunodiiir -avow них eirax oriVdaiix iixaoiixdairon arwud)] anhOdfj
При использовании препроцессоров и постпроцессоров с нейтральным форма-
том IGES на практике возникают следующие проблемы. Во-первых, внутренний
способ представления элемента в системе может отличаться от того, как этот
элемент представляется в IGES. Например, дуга окружности в какой-то системе
может быть определена через центр, радиус и начальный и конечный углы, но в
IGES она определяется через центр, начальную точку и конечную точку. Таким
образом, специализированный IGES-конвертор должен выполнить преобразова-
ние с использованием параметрического уравнения дуги. Такое преобразование
должно выполняться дважды (при прямой и обратной конвертации), и каждый
раз значения параметров дуги искажаются из-за ошибок усечения и округления.
Вторая проблема более серьезна: она возникает, когда элемент не поддерживает-
ся явно, и поэтому его необходимо преобразовать в ближайший по форме до-
ступный элемент. Эта проблема часто имеет место при обмене данными между
двумя системами через IGES-файл, если конверторы этих систем поддерживают
разные версии IGES. Типичный пример — потеря символьной информации в
случае, когда одна из двух систем использует более старую версию IGES, не под-
держивающую макросы.
14.3. Формат DXF
Формат DXF (Drawing interchange Format — формат обмена чертежами) изна-
чально разрабатывался для того, чтобы предоставить пользователям гибкость в
управлении данными и преобразовании чертежей программы AutoCAD в фор-
маты файлов, которые могли читаться и использоваться другими САПР. Из-за
популярности AutoCAD формат DXF стал фактическим стандартом обмена
файлами CAD-чертежей почти для всех САПР. На самом деле почти в каждой
из появляющихся новых САПР имеется транслятор в формат DXF и обратно.
DXF-файл — это текстовый ASCII-файл, состоящий из пяти разделов: Header
(Заголовок), Table (Таблица), Block (Блок), Entity (Элемент) и Terminate (Конец).
В разделе Header описывается среда AutoCAD, в которой был создан DXF-файл.
В разделе Table содержится информация о типах линий, слоях, стилях текста и
видах, которые могут быть определены на чертеже. В разделе Block содержится
список графических элементов, определенных как группа. Таким образом, раз-
дел Block эквивалентен определению дисплейного файла (см. главу 3). Конкрет-
ные данные по каждому элементу хранятся в соответствующем разделе Entity, ко-
торый следует сразу за разделом Block. Раздел Entity — это главный раздел DXF-
файла, в котором описываются все элементы, присутствующие на чертеже. По-
дробное описание этих разделов можно найти в [81].
Аналогично тому как это происходило с IGES-файлами, с появлением новых
версий AutoCAD список возможных элементов DXF-файлов расширялся. DXF-
файл, созданный более поздней версией AutoCAD, не может быть прочитан дру-
гими системами, использующими более старые версии формата DXF.
14.4. Формат STEP
Форматы IGES и DXF были разработаны для обмена данными технических тре-
бований, а не данными о продукте. Под данными о продукте мы понимаем
данные, относящиеся ко всему жизненному циклу продукта (например, проекти-
рование, производство, контроль качества, испытания и поддержка). Хотя спе-
цификации IDES и DXF были расширены с целью включения некоторых из
этих данных, информации, содержащейся в этих файлах, по существу недоста-
точно для описания всего жизненного цикла продукта. Вследствие этого в США
в 1983 году началась разработка нового стандарта под названием PDES (Product
Data Exchange Specification — спецификация для обмена данными о продуктах).
Основной упор в PDES делался не на обмен данными технических требований,
а на то, чтобы исключить человеческое присутствие из обмена данными о про-
дукте. Иначе говоря, целью PDES было устранить потребность в инженерных
чертежах и других бумажных документах при обмене информацией о различных
фазах жизненного цикла продукта между сходными или различающимися
САПР. Между тем в июле 1984 г. в Международной организации по стандарти-
зации (ISO) были образованы технический комитет ТС 184 (Системы промыш-
ленной автоматизации) и его подкомитет SC4 (Внешнее представление данных о
модели продукта) для установления единого международного стандарта обмена
данными о модели продукта — STEP (STandard for Exchange of Product model
data). Цели PDES и STEP были идентичны, поэтому в июне 1985 г. Управляю-
щий комитет IGES решил, что интересы США в программе STEP должен пред-
ставлять стандарт PDES. В результате значение акронима PDES поменяли на
«обмен данными о продукте с использованием STEP» (Product Data Exchange
using STEP), чтобы подчеркнуть идентичность целей PDES и STEP.
В основе разработки STEP лежат следующие принципы.
□ Стандарт STEP должен ориентироваться на данные о продукте, которые
включают информацию обо всем жизненном цикле продукта: проектирова-
нии, производстве, контроле качества, испытании и поддержке. Таким обра-
зом, в качестве данных должна рассматриваться информация о допусках, тех-
нологических особенностях формы, конечноэлементная модель, модель для
кинематического анализа и т. д.. а также данные технических требований, от-
носящиеся главным образом к форме продукта.
□ В структурах данных STEP информация, относящаяся к приложению, долж-
на храниться в модуле уровня приложения, отдельно от общей информации о
форме. Благодаря такому подходу структура данных сможет поддерживать
широкий спектр приложений, избегая при этом избыточности в общей струк-
туре данных.
□ Для определения структуры данных должен использоваться формальный
язык. Спецификации IGES и DXF описывают формат физического файла, в
котором хранятся все геометрические и прочие данные. В STEP данные опи-
сываются на языке EXPRESS, а затем результат преобразовывается в физи-
ческий файл. Таким образом можно избежать неоднозначностей при интер-
претации данных о продукте, извлеченных из файла.
STEP разрабатывается рядом комитетов и рабочих групп, занимающихся разны-
ми частями стандарта. Эти части группируются по методам описания, интегри-
рованным информационным ресурсам, прикладным протоколам, методам реали-
зации и методологией согласования (рис. 14.6 и рис. 14.7). Статус каждой части
показан рядом с ее номером. Статус обозначается буквами от «О» (предвари-
тельная стадия ISO) до «I» (международный стандарт — высшая стадия разра-
ботки и принятия стандартов). Части, обозначенные' буквами «Е», «F» (проект
международного стандарта) и «I», считаются находящимися на достаточно высо-
ком уровне для того, чтобы позволить производителям программных продуктов
приступить к их реализации.
Группа методов описания образует фундамент STEP. Она включает часть 1 «Об-
зор», которая содержит также определения, являющиеся в STEP универсаль-
ными. Принадлежащая той же группе часть И «Справочное руководство по язы-
ку EXPRESS» описывает язык моделирования данных, который используется
в STEP. Части, относящиеся к группе методов описания, имеют номера от 1 до 9.
На следующем уровне находится группа интегрированных информационных ре-
сурсов — части, содержащие фактическое описание моделей данных STEP. Эти
модели данных являются «кирпичиками» STEP. Интегрированные информаци-
онные ресурсы включают обобщенные ресурсы, прикладные ресурсы и конст-
рукции, интерпретируемые приложением.
Прикладные протоколы и абстрактные испытательные пакеты
I 201 Явное черчение (W) I 202 Ассоциативное черчение (С) I 203 Проектирование с контролем конфигурации (С) С 204 Проектирование мехашческих объектов с использованием граничного представления (С) С 205 Проектирование механических объектов с использоважем поверхностного представления (W) X 206 Проектирование механических объектов с использованием каркасов (X) Е 207 Планирование и проектирование штампов из листового металла (С) W 206 Процесс иэмения продукта в ходе жизненного цикла (W) С 209 Композитные и металлические структуры, анализ и проектирование (W) С 210 Проектирование и изготовление печатных плвт (W) X 211 Тестирование, диагностика и модернизация (W) С 212 Электротехническое проектирование и сборка (W) Е 213 Планирование процесса машинной обработки деталей на станках с ЧПУ (W) С 214 Основные данное для процессов проектирования автомобильных механизмов (W) W 215 Схемы судов (W) W 216 Формы поверхностей судовых корпусов (W) W 217 Системы судовых трубопроводов(W) И 218 Судовые надстройки (W) X 219 Контроль размеров (X) 0 220 Печатные платы: планироеаннв производства (0) С 221 Фунщиональные данные технологического процесса и его схематическое представление (W) W 222 Проектирование композиционных структур (W) W 223 Явная информация о проектировании и изготовлении питых деталей (W) Е 224 Определение деталей, требующих мехажчесхой обработки(W) Е 225 Структурные элементы, требующие явного представления формы (W) W 226 Судовые механические системы (W) Е 227 Пространственная конфигурация завода (О) 0 228 Вспомогательные системы зданий: отопление, вентиляция, кондиционгрование (О) W 229 Кованые детали (W) W 230 Строительные каркасы: стальные конструкции (W) W 231 Данные для разработки процессов (W) W 232 Оформление технических дангых (W) О Нейтральный формат обмене данными (О) О Поддержка жизненного цикла продукта - НАТО (О) О SGML и индустриальные данные (О)
Методы реализации
I 21 Текстовый обменный файл Е 22 Стандартный интерфейс доступа к данным Е 23 Ранний C++(интерфейс для №22) С 24 Поздний C++(интерфейс для № 22) X 25 Поздний Fortran Е 26 IDL (интерфейс для № 22)
Методологические основы аттестационных испытаний
I 31 Общие понятия
Е 32 Требования к испытательным лабораториям и клиентам
X 33 Абстрактные испытательные пвкеты
С 34 Абстрактные испытательные методы для реализации чвсти 21
W 35 Абстрактные испытательные методы для реализации части 21 (дополнительные)
Рис. 14.6. Архитектура STEP (1)
I JIODO Л~Т.
m—пдар|Ы uuivicn
ППС1ИИ исл\цу LHl-iendNH
Методы с 1 1 Обзор и фундаментальные принципы I 11 Справочное руководство по языку Express X 12 Справочное руководство по языку Express (тк
Интегрированные инф
Интегрированные п
I 101 Черчение X 102 Корабельные структуры X 103 Е/Е-соединение С 104 Конечноэлементный анализ
Интегрированные о{
I 41 Основное описание и спецификация продукта I 42 Геометрическое и топологическое представление продукта I 43 Уточняющее представление I 44 Структурная конфигурация продукта
Конструкции, интерпрет
С 501 Реберный каркас С 502 Оболочечный каркас С 503 Геометрические ограничения дау мерного каркаса С 504 Надписи на чертеже С 505 Структура чертежа С 506 Элементы чертежа С 507 Геометрические ограничения поверхности С 508 Нетрубчатые поверхности С 509 Трубчатые поверхности С 510 Геометрические ограничения каркаса С 511 Топологические ограничения каркаса
описания ип 2)
ормационные ресурсы
рикладные ресурсы
I 105 Кинемвтика W 106 Построение базовой модели А 107 Разработка аналитической модели
бобщенные ресурсы
F 45 Материалы I 46 Визуальное предстааление F 47 Допуски X 48 Характеристики формы F 49 Структура и свойства процесса
тируемые приложением
С 512 Ячеистое греничное представление С 513 Элементарнов граничное представление С 514 Расширенное граничное представление С 515 Конструктивная твердотельная геометрия X 516 Контекст проектирования механических объектов С 517 Геометрическое представление механических объектов С 518 Объемное представление механических объектов С 519 Геометрические допуски С 520 Ассоциированные элементы чертеже
Рис. 14.7. Архитектура STEP (2)
Интегрированные обобщенные ресурсы — это элементы, которые используются
по необходимости прикладными протоколами. Номера частей, относящихся к
обобщенным ресурсам, начинаются с 40 и используются всей гаммой приклад-
ных протоколов STEP. Интегрированные прикладные ресурсы содержат элемен-
ты, имеющие несколько больший объем контекста, чем обобщенные элементы.
Номера частей, относящихся к прикладным ресурсам, начинаются со 100. Части
с номерами от 500 — это конструкции, интерпретируемые приложением. Они
представляют собой многократно используемые группы информационных ре-
сурсов, облегчающие представление одной и той же семантики в различных при-
кладных протоколах.
На верхнем уровне иерархии STEP находятся более сложные модели данных,
используемые для описания конкретных данных о продукте. Эти части называ-
ются прикладными протоколами и описывают не только то, какие данные долж-
ны использоваться при описании продукта, но и то, как эти данные должны ис-
пользоваться в модели. Прикладные протоколы используют интегрированные
информационные ресурсы в четко очерченных сочетаниях и конфигурациях для
представления определенной модели данных или некоторой фазы жизненного
Пикла продукта. Прикладные протоколы нумеруются, начиная с 200. В настоя-
щее время используются такие прикладные протоколы, как «Явное черчение»
(201) и «Проектирование с управлением конфигурацией» (203).
Вопросы и задачи
473
Группа методов реализации STEP, части в которой нумеруются с 20, описывает
соответствие между формальными спецификациями STEP и представлением,
используемым для реализации STEP. Группа методологии проверки соответст-
вия, части в которой нумеруются с 30, предоставляет информацию о методах
проверки соответствия программных продуктов стандарту STEP, дает указания
по созданию абстрактных испытательных пакетов и описывает задачи испыта-
тельных лабораторий. Часть 31, описывающая методологию выполнения провер-
ки соответствия, принята в качестве международного стандарта (см. рис. 14.6).
Стандарты STEP уникальны в том отношении, что они делают упор на испыта-
ния и содержат в себе описания методов испытаний.
Группа частей с номерами от 300 (абстрактные испытательные пакеты), состоит
из данных и критериев, используемых для проверки соответствия программного
продукта, реализующего стандарт STEP, его прикладному протоколу. Номера,
присваиваемые абстрактным испытательным пакетам, превышают номера при-
кладных протоколов ровно на 100. Таким образом, абстрактный испытательный
пакет с номером 303 относится к прикладному протоколу 203. Более подробную
информацию о STEP можно получить на сайте http://www.nist.gov/sc4.
Сегодня STEP привлекает к себе повышенное внимание, так как ожидается, что
он войдет в систему стандартов технологий CALS (Computer-aided Acquisition
and Logistics Support — Непрерывные поставки и информационная поддержка
жизненного цикла продукции) как стандарт обмена данными о продуктах. Цель
инициативы CALS, автором которой является Министерство обороны США, —
компьютеризация процесса формирования требований, заказа, эксплуатации,
поддержки и обслуживания систем вооружений, используемых в армии США.
Основное внимание эта инициатива уделяет заданию форматов, которые будут
использоваться для хранения и обмена компьютерными данными. Хотя CALS
создавалась для военных целей, она становится промышленным стандартом хра-
нения и обмена компьютерными данными в организации.
Вопросы и задачи
1. Опишите преимущества и недостатки использования стандартного формата
при обмене данными технических требований между различными САПР.
2. Создайте DXF-файл для чертежа из задачи 1.1 к главе 4 с помощью системы
автоматизированной разработки чертежей. Прочитайте этот файл в другой
чертежной системе и выведите чертеж на экран. Каковы будут ваши выводы?
3. Создайте IGES-файл для объекта из задачи 8 к главе 12, прочитайте этот
файл в другой системе твердотельного моделирования и попытайтесь выпол-
нит следующее.
1) Выведите объект на экран.
2) Рассчитайте центр тяжести объекта.
Какие можно сделать выводы о возможностях IGES по обмену данными
о твердых телах?
4. Опишите преимущества использования STEP в качестве стандарта.
Приложение А
Реализация структуры данных полуребер
В листинге А.1 продемонстрирована реализация структуры данных полуребер,
использованная Мянтюля [106] в системе твердотельного моделирования GWB.
Структура данных реализована на языке С.
Процедура, приведенная в листинге А.2, — это подпрограмма на С, которая ищет
все ребра, содержащие заданную вершину. Эта процедура показывает, что струк-
тура данных полуребер, показанная в листинге А.1, предоставляет необходимую
информацию о смежности для топологических элементов.
Листинг А.1. Структура данных полуребер, предложенная Мянтюля
typedef float vector[4]:
typedef float matrix[4][4]
typedef short Id;
typedef struct solid Solid:
typedef struct face Face:
typedef struct loop Loop:
typedef struct halfedge Halfedge;
typedef struct vertex Vertex
typedef struct edge Edge:
typedef union nodes Node;
struct solid
}: Id Face Edge Vertex Solid Solid Solidno: /* *sfaces; /* *sedges: /* *sverts; /* *nexts: /* *prevs: /* Идентификатор объема */ Указатель на список граней */ Указатель на список ребер */ Указатель на список вершин */ Указатель на следующий объем */ Указатель на предыдущий объем */
struct faci { Id Sol id Loop Loop vector Face Face }: a faceno; /* Идентификатор грани */ *fsolid: /* Обратный указатель на объем */ *flout; /* Указатель на внешнее кольцо */ *floops: /* Указатель на список колец */ feq: /* Уравнение грани */ *nextf: /* Указатель на следующую грань */ *prevf: /* Указатель на предыдущую грань */
struct loop
HalfEdge *ledg: /* Face *lface: /* Loop *nextl: /* Указатель на кольцо полуребер */ Обратный указатель на грань */ Указатель на следующее кольцо */
Реализация структуры данных полуребер
475
Loop
}:
*prevl: /* Указатель на предыдущее кольцо */ \
struct edge
{
HalfEdge *hel;
HalfEdge *he2:
Edge *nexte:
Edge *preve:
):
/* Указатель на правое полуребро */
/* Указатель на левое полуребро */
/* Указатель на следующее ребро */
/* Указатель на предыдущее ребро */
struct halfedge
{
Edge *edge: /* Указатель на родительское ребро */
Vertex *vtx: Loop *prevl; /* Указатель на начальную вершину */ /* Обратный указатель на кольцо */
HalfEdge *nexthe; /* Указатель на правое полуребро */
HalfEdge *prevhe; /* Указатель на левое полуребро */
struct vertex
{
Id vertexno; /* Идентификатор вершины */
HalfEdge *vedge: /* Указатель на полуребро */
vector *vcoord; /* Координаты вершины */
Vertex *nextv: /* Указатель на следующую вершину */
Vertex *prew: /* Указатель на предыдущую вершину */
}:
union nodes
{
Solid s;
Face f;
Loop 1:
HalfEdge h:
Vertex v;
Edge e:
)
Листинг A.2. Процедура поиска всех ребер, содержащих вершину
#define mate(he) (((he) == (he)->edg->hel) ? \
(he)->edg->he2 : (he)->edg->hel)
void list_adjacent_edge(V. List)
Vertex *V:
Edge *list[];
{
HalfEdge *ad j;
int i = 0:
adj = V->vedge;
if(adj) do
{
list[1] = adj->edg;
i++:
)
while((adj = mate(adj)->nexthe) != V->vedge);
else printf("ОшибкаХп"):
Приложение Б
Реализация структуры данных
крыльевых ребер
В листинге Б.1 показана структура данных крыльевых ребер, используемая в
SNUMOD. Структура данных реализована на языке С.
Листинг Б.1. Реализация структуры данных крыльевых ребер в SNUMOD
typedef struct snu_body Body;
typedef struct snu_shell Shell:
typedef struct snu_face Face:
typedef struct snu_loop Loop:
typedef struct snu_edge Edge:
typedef struct snu_vertex Vertex:
typedef struct snu_surface Surface
typedef struct snu_curve Curve:
typedef struct snu_point struct snu body { int id: Body *next; Shell *shell; char *name: ): struct snu shell { int id; Body *body: Shel1 *next: Face *face: }: struct snu face { int id: Shell *shell; Face *next: Loop *loop? Surface *surface: ): struct snu_loop int id: Face *face: Loop *next: Edge *edge: int *type; Point: /* Идентификатор тела */ /* Указатель на следующее тело */ /* Указатель на оболочку */ /* Указатель на имя тела */ /* Идентификатор оболочки */ /* Указатель на тело */ /* Указатель на следующую оболочку */ /* Указатель на грань */ /* Идентификатор грани */ /* Указатель на оболочку */ /* Указатель на следующую грань */ /* Указатель на кольцо */ /* Указатель на геометрические данные */ /* Идентификатор кольца */ /* Указатель на грань */ /* Указатель на следующее кольцо */ /* Указатель на ребро */ /* Тип кольца */
тизация структуры данных крыльевых ребер
477
struct snu_edge
{
int id: /* Идентификатор ребра */
Loop *left_loop: /* Указатель на левое кольцо */
Loop *right_loop: /* Указатель на правое кольцо */
Edge *left_arm: /* Указатель на левую руку (левое ребро
против часовой стрелки) */
Edge *left_leg: /* Указатель на левую ногу (левое ребро
по часовой стрелке) */
Edge *right_arm; /* Указатель на правую руку (правое ребро
против часовой стрелки) */
Edge *right_leg; /* Указатель на правую ногу (правое ребро
по часовой стрелке) */
Vertex *tail_yertex: /* Указатель на хвостовую вершину
(предыдущая вершина) */
Vertex *head_vertex: /* Указатель на головную вершину
(следующая вершина) */
Curve *curve: /* Указатель на геометрические данные */
}:
struct snu_vertex
{
int id: /* Идентификатор вершины */
Edge *edge: /* Указатель на ребро */
Point *point: /* Указатель на геометрические данные */
Приложение В
Операторы Эйлера
В.1. Операторы Эйлера, используемые в SNUMOD
B.l.l. MEWLS и KEWLS — создать (уничтожить) ребро,
две вершины, внешнее кольцо и оболочку
Оператор MEWLS вызывается для создания оболочки при первоначальном соз-
дании объема или при добавлении пустоты к существующему объему. В реаль-
ности MEWLS просто выделяет место в памяти под оболочку, объявляя о ее соз-
дании. Он также создает две вершины, ребро между этими вершинами и внешнее
кольцо, обходящее вершины в обоих направлениях. Это кольцо будет использо-
ваться в качестве начального элемента, который превратится в реальную оболоч-
ку по ходу операции моделирования. При создании внешнего кольца создается
также грань. Однако геометрическая информация о грани при создании ее опе-
ратором MEWLS не добавляется, поскольку это всего лишь абстрактная грань, с
помощью которой выделяется требуемая память1. Необходимая геометрическая
информация появится, когда начальное ребро по ходу операции моделирования
превратится в замкнутую цепочку, содержащую в себе область.
Описание изменения топологии, произведенного оператором MEWLS, иллюст-
рируется схематической диаграммой на рис. В.1. Периферийное кольцо L1 пред-
ставляет собой цепочку, проходящую по маршруту V1-V2-V1 и не содержащую в
себе площади. Площадь появится в ней по ходу моделирования, и соответствую-
щая грань получит необходимую геометрическую информацию.
Рис. В.1. Действие оператора MEWLS (KEWLS)
Входные и выходные аргументы оператора MEWLS могут быть описаны следую-
щим образом:
MEWLS (В. &Е1. &V1. &V2. &L1. &S1. XI Yl. Zl. Х2. Y2. Z2)
Выделение места в памяти для топологического элемента.
в.1. операторы дилера, используемые в SNUMOD
В этом выражении элементы, перед которыми стоит символ &, являются выход-
ными элементами, генерируемыми оператором MEWLS, а остальные элементы
являются входными. Поэтому данное выражение можно интерпретировать так,
что на объеме В создаются новое ребро Е1, новые вершины V1 и V2 в точках (х1,
У1. z1) и (х2, у2, z2), новое внешнее кольцо L1 и новая оболочка S1. Тот же способ
записи мы будем использовать для различения входных и выходных аргументов
в других операторах Эйлера.
Соответственно, обратный оператор KEWLS может быть описан следующим об-
разом:
KEVVLS (В. El. VI. V2. LI. S1. 8X1. &Y1. &Z1. &Х2. &Y2. &Z2)
Обратные операторы весьма полезны для реализации функции Откат, или От-
мена (Undo), которая отменяет ранее выполненную операцию моделирования.
Именно поэтому большинство систем твердотельного моделирования одновре-
менно реализуют и прямые, и обратные операторы.
В. 1.2. MEL и KEL — создать (уничтожить) ребро
и внешнее кольцо
Оператор MEL добавляет ребро Е1, соединяющее вершины V1 и V2 в кольце L1
(рис. В.2). В результате применения оператора MEL исходное кольцо L1 делит-
ся на два новых кольца L1 и L2. Исходное кольцо, которое подвергается делению,
может быть внешним кольцом (рис. В.2, а) или кольцом отверстия (рис. В.2, б).
Но просто добавить ребро и кольцо мало: оператор MEL должен обновлять со-
единения ребер в вершинах V1 и V2 и связи ребро-кольцо, чтобы отразить разде-
ление исходного кольца L1 на два новых кольца.
MEL
KEL
а
MEL
KEL
б
Рис. В.2. Действие оператора MEL (KEL)
Входные и выходные аргументы операторов MEL и KEL могут быть описаны сле-
дующим образом (В по-прежнему обозначает объем):
MEL (В. LI. VI. V2. &Е1. &L2)
KEL (В. &L1. &V1. &V2. El. L2)
480
Приложение В. Операторы Эйлера
В.1.2. MEV и KEV — создать (уничтожить) ребро и вершину
Оператор MEV создает ребро Е1, проходящее от вершины V1 кольца L1 до задан-
ной точки (х, у, z), и добавляет это ребро к кольцу L1 (рис. В.З). Разумеется, в за-
данной точке создается также новая вершина V2. Ребро Е1 может быть добавлено
к внешнему кольцу (рис. В.З, а) или к кольцу отверстия (рис. В.З, б).
MEV
KEV
а
MEV
KEV
б
Рис. В.З. Действие оператора MEV (KEV)
Как и в случае оператора MEL, необходимо обновить связь ребра в вершине V1,
чтобы новое ребро Е1 было включено в кольцо L1 (то есть ребро Е1 будет фигу-
рировать дважды в списке ребер, как соединительные ребра, описанные в разде-
ле 5.3.2, когда из обновленной информации о связях будет получен список ребер
кольца L1).
Входные и выходные аргументы операторов MEV и KEV могут быть описаны сле-
дующим образом (В по-прежнему обозначает объем):
MEV (В. LI. VI. &Е1. &V2 X. Y. Z)
KEV (В. &L1. &V1. El. V2. &Х. &Y. &Z)
Оператор KEV является обратным по отношению к MEV.
В.1.2. MVE и KVE — создать (уничтожить) вершину и ребро
Оператор MVE разделяет ребро Е1, добавляя к нему вершину V1 в точке (х, у, z),
и соответственно заменяет старое ребро Е1 двумя новыми Е1 и Е2 (рис. В.4). По-
этому входные и выходные аргументы операторов MVE и KVE могут быть описа-
ны следующим образом (В по-прежнему обозначает объем):
MVE (В. El. &V1. &Е2. X. Y. Z)
MVE (В. &Е1. VI. Е2. &Х. &Y. &Z)
Оператор KVE можно интерпретировать как обратный по отношению к MVE.
Эффекты, показанные на рис. В.4, достигаются путем изменения одной вершины
и соседних ребер Е1 и записью аналогичной информации для Е2. Подробности
приведены в листинге В.1, который демонстрирует реализацию оператора MVE
В.1. Операторы Эйлера, используемые в SNUMOD
481
на языке С на основе структуры крыльевых ребер (листинг Б.1). Выполне-
ние шагов процедуры в листинге В.1 четко демонстрирует, как реализуются эти
операторы Эйлера. Другие операторы Эйлера могут быть реализованы анало-
гично. <
Рис. В.4. Действие оператора MVE (KVE)
Листинг В.1. Реализация оператора MVE
MVE (В. El. VI. Е2. х, у. z)
Body *В:
Edge *Е1.
Vertex **V1:
Edge **E2;
double x. y. z
{
(*V1) = malloc(sizeof(Vertex)):
(*E2) - malloc(sizeof(Edge));
(*E2)->tail_vertex = *V1:
(*E2)->head_vertex = El->head_vertex:
(*E2)->right_leg = El;
(*E2)->left_leg = El;
(*E2)->right_arm = El->right_arm:
(*E2)->left_arm = El->left_arm:
(*E2)->right_loop = El->right_loop;
(*E2)->left_loop = El->left_loop-
(*Vl)->edge = *E2;
(*Vl)->point.x = x; (*Vl)->point.y = y; (*Vl)->point.z = z;
El->right_arm = El->left_arm = *E2:
El->head_vertex = *V1;
}
B.1.5. MEKH и КЕМН — создать (уничтожить) ребро
и уничтожить (создать) кольцо отверстия
Оператор МЕКН соединяет внешнее кольцо и кольцо его отверстия, добавляя
ребро, в результате чего получается одно внешнее кольцо (рис. В.5, а), либо со-
единяет два кольца отверстия в одно кольцо отверстия (рис. В.5, б). Если гово-
рить точнее, он соединяет вершину V1 кольца L1 с вершиной V2 кольца V2, добав-
ляя между ними ребро Е1, и изменяет кольцо L1 так, чтобы оно включало L2.
Таким образом, входные и выходные аргументы операторов МЕКН и КЕМН могут
быть описаны так.
МЕКН (В. VI. V2. LI. L2. &Е1)
КЕМН (В. &V1. &V2. &L1. &L2. Е1)
Оператор КЕМН можно интерпретировать как обратный по отношению к МЕКН.
4OZ
Приложение В. Операторы Эйлера
Рис. В.5. Действие оператора МЕКН (КЕМИ)
В.1.6. MZEV и KZEV — создать (уничтожить)
ребро нулевой длины и вершину
Оператор MZEV разбивает вершину VI на две новые вершины V1 и V2, добавляя
ребро Е1 нулевой длины (рис. В.6). Вершина разбивается вертикально, а не гори-
зонтально, поскольку новое ребро Е1 принадлежит заданным кольцам L1 и L2.
Таким образом, вершина V1 будет разбита горизонтально, если на входе будут
заданы кольца L3 и L4 (см. рис. 5.31). Входные и выходные аргументы операто-
ров MZEV и KZEV могут быть описаны так:
MZEV (В. LI. L2. VI. &Е1. &V2)
KZEV (В. &L1. &L2. &V1. E1.&V2)
Оператор KZEV можно интерпретировать как обратный по отношению к MZEV.
MZEV
KZEV
Рис. В.6. Действие оператора MZEV (KZEV)
В.1.7. МРКН и КРМН — создать (уничтожить) внешнее кольцо
и уничтожить (создать) кольцо отверстия
Оператор МРКН преобразует кольцо отверстия во внешнее кольцо (рис. В.7).
Точнее, он преобразует кольцо отверстия L1 во внешнее кольцо. Кроме того, он
Дает на выходе кольцо L2, чтобы зафиксировать тот факт, что кольцо L1 изна-
чально было кольцом отверстия L2. Аналогичным образом, оператор КРМН пре-
образует внешнее кольцо L1 в кольцо отверстия, принадлежащее внешнему коль-
цу L2. Исходя из этого, входные и выходные аргументы операторов МРКН и
КРМН могут быть описаны так:
МРКН (В. LI. &L2)
КРМН (В. LI. L2)
В.2. Применение операторов Эйлера
483
Рис. В.7. Действие оператора МРКН (КРМН)
При применении операторов МРКН и КРМН, когда кольцо отверстия L1 превраща-
ется во внешнее кольцо, могут образоваться два несвязанных объема. Справиться
с этой проблемой можно, сохранив разъединенные объемы внутри отдельных обо-
лочек после выполнения поиска по внешним кольцам, образующим каждую из
оболочек. Точно так же необходимо объединить две отдельные оболочки, если
кольца L1 и L2 изначально принадлежат отдельным оболочкам, заданным КРМН.
В.2. Применение операторов Эйлера
Теперь приведем несколько примеров, показывающих, как описанные выше опе-
раторы Эйлера используются для реализации функций моделирования. Другие
функции моделирования могут быть реализованы аналогичным образом.
В.2.1. Трансляционное заметание
Сначала мы продемонстрируем, как операторы Эйлера вызываются в функции
трансляционного заметания, создающей объем путем трансляции двумерной
замкнутой области. Предположим, что функция моделирования требует от нас
нарисовать двумерный профиль в плоскости ху. Это предположение не ограни-
чивает возможностей моделирования, поскольку объему, созданному таким спо-
собом, можно будет придать желаемую ориентацию позже. Ниже следует описа-
ние процедуры.
1. Из двух точек на двумерном профиле, который предстоит транслировать, соз-
дается начальный элемент. А именно, с помощью оператора MEWLS мы соз-
даем две вершины в этих точках, ребро между вершинами, внешнее кольцо,
обходящее эти вершины в обоих направлениях, и оболочку (рис. В.8). Кольцо
изображается цепочкой со стрелками. Непременно обратите внимание на то,
как изменяется кольцо L1 по ходу процедуры. Кольцо и оболочка не имеют
физического смысла на этом шаге, но об их существовании заявляется с це-
лью выделения памяти.
Рис. В.8. Результат после шага 1
2. Точки профиля соединяются с созданным на шаге 1 начальным ребром путем
применения операторов MEV, следуя профилю до тех пор, пока все точки не
48
Приложение В. Операторы Эйлера
окажутся соединены (рис. В.9). Если профиль содержит п точек, оператор
MEV будет вызван на этом шаге п — 2 раз.
Рис. В.9. Результат после шага 2
3. Добавлением ребра между первой и последней вершиной с помощью опера-
тора MEL создается замкнутый многоугольник (рис. В. 10). Обратите внима-
ние, что исходное кольцо L1 разделяется новым ребром на два новых кольца
L1 и L2. Позже мы обнаружим, что L1 станет верхней гранью, a L2 — нижней
гранью создаваемого объема.
Рис. В. 10. Результат после шага 3
4. В направлении трансляции создаются ребра (рис. В.И). Для этого п раз вы-
зывается оператор MEV. Результаты вызова оператора MEV один и п раз соот-
ветственно показаны на рис. В. И и рис. В. 12. Обратите внимание, как
меняется кольцо L1 по мере применения операторов.
Рис. В.11. Результат после однократного
применения оператора MEV
Рис. В. 12. Результат после применения
оператора MEV л раз
5. Боковые грани создаются путем добавления соответствующих ребер
(рис. В.13 и В.14). Для этого п раз вызывается оператор MEL. Результаты вы-
зова оператора MEL один и п раз соответственно показаны на рис. В.13 и В.14.
Когда операция заметания будет закончена, L1 станет верхней гранью.
Рис. В.13. Результат однократного
применения оператора MEL
Рис. В.14. Результат после применения
оператора MEL л раз
В.2.2. Вращательное заметание
Теперь рассмотрим вращательное заметание, при котором объем создается путем
вращения двумерной замкнутой области. Предположим, что функция моделиро-
вания требует от нас нарисовать двумерный профиль в плоскости xz, где z явля-
ется осью вращения (рис. В.15). Это предположение не ограничивает возможно-
стей моделирования, поскольку объему, созданному таким способом, можно
будет придать желаемую ориентацию позже. Ниже следует описание процедуры.
Эта процедура описывает вращение на 360°, однако чтобы получить процедуру
для неполного оборота, потребуются лишь незначительные модификации.
Рис. В. 15. Замкнутый профиль в плоскости xz
1. Из двух точек на двумерном профиле, который предстоит вращать, создается
начальный элемент (рис. В.16). Это делается с помощью оператора MEWLS,
как и в трансляционном заметании. Обратите внимание, что кольцо опреде-
ляется так же, как на рис. В.8.
Рис. В.16. Результат после шага 1
2. Точки профиля соединяются с созданным на шаге 1 начальным ребром путем
применения операторов MEV, следуя профилю до тех пор, пока все точки не
окажутся соединены, как и на шаге 2 процедуры трансляционного заметания.
Если профиль содержит п точек, оператор MEV будет вызван на этом шаге
п - 2 раз. Результат изображен на рис. В. 17.
Рис. В. 17. Результат после шага 2
3. Шаги 1 и 2 повторяются для создания зеркального отображения профиля по от-
ношению к плоскости уг (рис. В. 18). После создания зеркального изображения
вызывается оператор КРМН, уничтожающий оболочку, связанную с этим изобра-
жением, и превращающий кольцо L2 в кольцо отверстия, принадлежащего L1.
Рис. В. 18. Результат после шага 3
4. Кольцо L2 сливается с кольцом L1 путем соединения их ребром. Оператор
МЕКН создает соединительное ребро с полукруглой геометрией на плоскости
ху (рис. В.19).
5. Симметричные вершины соединяются соответствующими ребрами (рис. В.20
и В.21). Каждое ребро будет иметь форму полуокружности, как и выше. Для
этого п - 1 раз выполняется оператор MEL. Результаты вызова оператора
MEL один и и - 1 раз соответственно показаны на рис. В.20 и В.21. Обратите
внимание, как меняется кольцо L1 по мере применения операторов MEL.
Рис. В.20. Результат после однократного применения оператора MEL
Рис. В.21. Результат после применения оператора MEL л - 1 раз
6. Шаг 5 повторяется, в результате чего создаются грани на задней половине
объема (то есть оператор MEL применяется п раз). Чтобы понять, что про-
исходит на этом шаге, просто посмотрите на рисунки, демонстрирующие из-
менение геометрии по мере применения операторов MEL. Поскольку задняя
сторона объема лучше отображается при виде сверху, на рис. В.22, В.23
и В.24 показан вид объема сверху после выполнения шага 5 и после приме-
нения оператора MEL один и п раз соответственно. Обратите внимание на то,
как меняется кольцо L1 по мере применения операторов MEL по завершении
операции вращательного заметания L1 становится нижней гранью.
Рис. В.22. Результат после шага 5
Рис. В.23. Результат после однократного применения оператора MEL
Рис. В.24. Результат после применения оператора MEL п раз
В.2.3. Создание примитивов
Как вы помните, большинство систем твердотельного моделирования позволяют
пользователям получать объемы простых форм, на основе которых можно моде-
лировать более сложные объемы. Этот метод работает, поскольку процедуры, ис-
пользуемые для создания этих примитивов, заранее заданы, и примитивы могут
быть сгенерированы в любом желаемом размере в соответствии с параметрами,
заданными пользователем. Эти процедуры обычно состоят из операторов Эйлера,
производящих трансляционное или вращательное заметание, поскольку боль-
шинство примитивов можно создать с помощью этих функций моделирования.
На самом деле операторы Эйлера просто незаменимы для хранения примитивов
в системах твердотельного моделирования. Например, в листинге В.2 приведена
процедура создания примитивного параллелепипеда с параметрами W, D и Н, по-
казанного на рис. В.25.
Рис. В.25. Параметры и система координат для параллелепипеда
Листинг В.2. Процедура создания параллелепипеда
Body *Create_Block (W. D. H)
double W. D. H;
{
Body *B;
Shell *S.
Loop *L1. *L2. *L3. *L4. *L5. *L6;
Edge *E1. *E2. *E3. *E4. *E5. *E6:
Vertex *V1. *V2. *V3. *V4. *V5 *V6. *V7. *V8
В = malloc(sizeof(Body));
MEVVLS(B. &E1. &V1. &V2. &L1. &S. 0/2. W/2, 0. -0/2. -W/2. 0):
MEV(B. LI. V2. &E2. &V3. -0/2. -W/2. 0):
MEV(B. LI. V3. &E3. &V4. 0/2. -W/2. 0);
MEL(B. LI. V4. VI. &E4. &L2).
MEV(B. LI. VI. &E5. &V5. 0/2. W/2. H);
MEV(B. LI. V2. &E6. &V6. -0/2. W/2. H):
MEV(B. LI. V3. &E7. &V7. -0/2. -W/2. H);
MEV(B. LI. V4. &E8. &VB. 0/2. -W/2. H):
MEL(B. LI. V5. V6. &E9. &L3);
MEL(B. LI. V6. V7. &E10. &L4);
MEL(B. LI. V7. V8. &ЕП. &L5):
MEL(B. LI. V8. V5. &E12. &L6):
return(B);
Для реализации этих трех основных функций моделирования мы применили
операторы Эйлера в надлежащей последовательности. Приведенный ниже при-
мер являет собой дальнейшую демонстрацию того, что любую функцию модели-
рования можно реализовать с помощью операторов Эйлера.
Пример B.l
Покажите, как применить последовательность операторов Эйлера для реализа-
ции операции моделирования, которая разделит шестигранник (рис. В.26, а) на
два шестигранника (рис. В.26, е).
Рис. В.26. Реализация функции моделирования с помощью операторов Эйлера
Решение
Необходимо последовательно вызвать следующие операторы Эйлера (рис. В.26).
□ Ребра разбиваются надвое операторами MVE (рис. В.26, б). Этот оператор при-
меняется четыре раза.
К каждой вершине, созданной на предыдущем шаге, применяется оператор
MZEV, что приводит к результату, изображенному на рис. В.26, в. Оператор
MZEV также применяется четыре раза.
□ При помощи оператора MEL соединяются новые вершины, созданные на пре-
дыдущих шагах, и создаются грани. Оператор MEL применяется восемь раз, в
результате чего создается восемь ребер и восемь вершин (рис. В.26, г). Обра-
тите внимание, что четыре грани в середине не содержат в себе областей.
□ Ребра нулевой длины уничтожаются оператором KEL (рис. В.26, д). Когда
ребро уничтожается оператором KEL, две грани, для которых это ребро было
общим, объединяются. Оператор KEL применяется восемь раз, в результате
чего остается одно связующее ребро нулевой длины (рис. В.26, д).
□ Связующее ребро удаляется оператором КЕМН. Так как КЕМН превращает
одно из двух колец, связанных с удаляемым ребром, в кольцо отверстия, не-
обходимо преобразовать его во внешнее кольцо с помощью оператора МРКН.
Как было сказано выше, МРКН обнаружит наличие двух несвязанных обо-
лочек и сохранит разделенные шестигранники в двух отдельных оболочках
(рис. В.27, е).
Приложение Г
Пошаговый алгоритм реализации
булевской операции
Алгоритм выполнения булевских операций, используемый в SNUMOD, можно
описать следующим образом для случая операции, изображенной на рис. Г.1.
1. Вычисляются кривые пересечения всех граней объема А и всех граней объе-
ма В; объемы А и В показаны на рис. Г.1. Затем находятся фрагменты каждой
из кривых пересечения, лежащие внутри двух граней, которые пересекаются
по данной кривой (рис. Г.2). Далее такие фрагменты будут называться ксег-
ментами (xegments). Вычисление кривой пересечения между двумя граня-
ми — сложная задача. Однако оно является важным аспектом определения
эффективности и устойчивости булевской операции.
Объединение Пересечение Разность
Рис. Г.1. Пример булевской операции
Кривая пересечения
Рис. Г.2. Определение ксегмента
Пошаговый алгоритм реализации булевской операции
493
В зависимости от типов уравнений, используемых для представления каждой
поверхности, можно использовать различные методы вычисления кривых пе-
ресечения, как описано в главе 7. Кроме того, конечные точки ксегмента нахо-
дятся по точкам пересечения крйвой пересечения с ребрами граней, как опи-
сано в главе 6.
2. Ксегменты, полученные на шаге 1, наносятся на соответствующие грани объе-
мов А и В (рис. Г.3). Каждый ксегмент добавляется как новое ребро соответ-
ствующей грани каждого объема с помощью операторов Эйлера, так что
разделение граней учитывается автоматически. Операторы Эйлера выбира-
ются в зависимости от расположения ксегмента относительно грани, на кото-
рую он должен быть нанесен. Есть пять возможных вариантов расположения
(рис. Г.4). На рис. Г.4, а изображена ситуация, в которой новое ребро совпада-
ет с существующим; здесь никаких действий не требуется. На рис. Г.4, б два
конца нового ребра совпадают с существующими вершинами, но само ребро
не совпадает с существующими ребрами; в этом случае необходимо при-
менить оператор MEL На рис. Г.4, в один конец нового ребра совпадает с су-
ществующей вершиной, а другой расположен внутри грани; в этом случае
применяется оператор MEV. На рис. Г.4, г оба конца нового ребра находятся
внутри грани; в этой ситуации мы действуем операторами MEWLS и КРМН.
Здесь оператор КРМН преобразует кольцо, созданное оператором MEWLS,
в кольцо отверстия, принадлежащее внешнему кольцу грани. Одновременно
он устраняет избыточную оболочку, если кольцо, которое преобразовывается
в кольцо отверстия, было связано с отдельной оболочкой. На рис. Г.4, д два
конца нового ребра связаны с разными кольцами на грани; в этом случае при-
меняется оператор МЕКН. Из этих объяснений мы можем заключить, что каж-
дый ксегмент можно нанести на соответствующую грань каждого из объемов
автоматически, если можно автоматически определить его положение по от-
ношению к этой грани. Для этого необходимо проверить, где лежат конечные
точки нового ребра: внутри, снаружи или на границе грани. Такая проверка
называется тестом на вхождение (in/out test).
Объем А после модификации Объем В после модификации
Рис. Г.З. Добавление новых граней к объемам А и В
494
Приложение Г. Пошаговый алгоритм реализации булевской операции
а б в г д
Рис. Г.4. Возможное расположение ксегментв по отношению к соответствующей грани
3. Грани объема А классифицируются по их расположению относительно объе-
ма В. Иными словами, для каждой грани определяется, расположена ли она
внутри, снаружи или на граничной поверхности объема В. Грани объема В
классифицируются таким же образом по отношению к объему А.
Классификация требует большого объема вычислений, поэтому мы будем из-
бегать ее, если результат можно вывести из результата для соседних граней.
К счастью, группы граней одного объема могут иметь одинаковое положение
по отношению к другому объему. На рис. Г.5 грани, принадлежащие к каждой
из групп, имеют одно и то же положение относительно другого объема
(то есть грани в группе Л] находятся вне объема В, грани в группе Bt находят-
ся внутри объема А). Эти группы также разделены новыми ребрами, получен-
ными из ксегментов.
Группе В2
Группа Л,
Рис. Г.5. Группы граней
Таким образом, грани, принадлежащие группе, можно определить путем об-
хода соседних граней, начиная с любой грани в группе, без пересечения ксре-
бер (xedges) — новых ребер, полученных из ксегментов. Будем искать грани,
принадлежащие одной группе, начав обход с грани, которая заштрихована на
рис. Г.5. Сначала из всей совокупности соседних граней отбираются только
те, которые не имеют общих ксребер с заштрихованной гранью. Затем проце-
дура повторяется: каждая из отобранных ранее граней используется в качест-
ве вторичной начальной грани, и обнаруженные на данной итерации грани
добавляются к отобранному множеству. Процесс останавливается, когда каж-
дая грань из отобранного множества побывает в роли вторичной исходной
грани. В данном примере будут отобраны грани из группы После этого
в качестве вторичной исходной грани будет выбрана любая из граней, не при-
надлежащих к группе А|; тот же самый процесс будет повторен для нахож-
дения граней, принадлежащих к группе А2. Если какая-либо грань не принад-
лежит ни к Alt ни к Аъ то далее находятся грани группы А3 (которые не
Пошаговый алгоритм реализации булевской операции
существуют в данном примере). Такой же процесс применяется к объему В,
в результате чего получаются группы граней и В2 (рис. Г.5).
После того как грани объемов А и В будут разделены на группы, необходимо
определить положение каждой группы граней по отношению к противопо-
ложному объему. В качестве примера рассмотрим метод для группы At. Ос-
тальные группы можно обрабатывать так же. Сначала произвольно выбирает-
ся одно из ксребер, образующих внешнюю границу группы Ait и обозначается
как Хс (рис. Г.6). Любая из граней группы А,, имеющая Хс одним из своих ре-
бер, обозначается Fa, а грань объема В, делящая ребро Xt с Fa, обозначается Fb.
Затем находятся векторы Na и Nb внешних нормалей к граням Fa и Fb, а также
тангенциальный вектор Т в любой точке Хс (рис. Г.6). Тангенциальный век-
тор Т имеет направление против часовой стрелки, чтобы он был согласован с
направлением внешнего кольца La грани Fa при взгляде снаружи. Наконец,
классификация группы At по отношению к объему В находится из значения
(Na Т) Nb следующим образом. Группа At находится вне объема В, если это
значение положительно, внутри — если значение отрицательно, и на поверх-
ности объема, если это значение равно нулю. Если выясняется, что группа А
находится на поверхности объема В, она далее классифицируется как ON_
SAME (если Na и Nb имеют одно и то же направление) или ON_OPPOSITE
(если Na и Nb направлены противоположно).
Рис. Г.6. Классификация групп граней
4. Группы граней отбираются в соответствии с конкретной булевской опера-
цией. Правила отбора групп определяет табл. Г.1. Мы объясним, как исполь-
зовать эти правила для операции объединения, а для прочих операций они
используются точно так же. Для операции объединения табл. Г.1 показывает,
что нам необходимо отобрать элементы О и О(Х) в столбце «Объединение».
Это означает, что мы должны отобрать группы объема А, находящиеся вне
объема В, группы объема В, находящиеся вне объема А, и группы объема А,
классифицированные как ON_SAME (или группы ON_SAME объема В).
Символы О(Х) и Х(О) в табл. Г.1 подразумевают, что элемент объема А соот-
ветствует элементу объема В, и что данный элемент должен быть отобран
лишь единожды. Если мы применим это правило к группам граней на
рис. Г.5, мы выясним, что для операции объединения будут отобраны группы
496
Приложение Г. Пошаговый алгоритм реализации булевской операции
At и В2. Правила для операций разности и пересечения вы можете проверить,
применяя их к группам граней на рис. Г.5.
Таблица Г.1. Группы граней, отбираемые для булевских операций
Объединение Пересечение Разность
Объем А OUT О X О
IN X О X
ONSAME O(X) O(X) X
ONOPPOSITE X X О(Х)
Объем В OUT о X X
IN X о о
ONSAME X(O) X(O) X
ONOPPOSITE X X Х(О)
5. По результатам, полученным на шаге 4, ненужные группы граней удаляются
из каждого объема. Для примера с операцией объединения из объемов А и В
удаляются соответственно группы А2 и Форму объемов А и В после удале-
ния ненужных групп граней илюстрирует рис. Г.7. Сложной топологической
операции, необходимой для создания объема, можно избежать, удалив не-
нужные группы граней из исходного объема, вместо того чтобы создавать но-
вый объем из отобранных групп граней. Как упоминалось ранее, подходы,
изложенные в работах [132, 115], требуют этой топологической операции.
Рис. Г.7. Объемы после удаления ненужных групп граней
В качестве примера рассмотрим удаление группы граней А2 из объема А. Гра-
ни группы Аг можно удалить путем уничтожения ребер Е, и Е2 (рис. Г.8).
В общем случае грани, принадлежащие группе, удаляются путем уничтоже-
ния всех их ребер, кроме ксребер. Ксребра уничтожать не следует, поскольку
они также являются граничными ребрами других групп граней, которые со-
храняются. Ребро Е) удаляется оператором Эйлера KEL, который также объе-
диняет грани F, и F2 (рис. Г.9, а). Аналогичным образом с помощью операто-
ра KEL удаляется ребро Е2 (рис. Г.9, б). Теперь геометрическая информация,
хранимая для грани Fb не имеет смысла, и на следующем шаге используется
только информация о ее внешнем кольце.
Рис. Г.8. Топологические элементы, принадлежащие к группе Д2
Рис. Г.9. Процедура удаления Е, и Е2
6. Два объема, полученные на шаге 5, склеиваются по общей границе (рис. Г. 10).
Ту же процедуру склеивания необходимо применить к другим группам гра-
ней при использовании операторов пересечения и разности.
Рис. Г. 10. Создание объема путем склеивания
Для примера, изображенного на рис. Г. 10, процедура склеивания выполняет-
ся следующим образом. Во-первых, определяются восемь пар совпадающих
вершин и восемь пар совпадающих ребер, и пара вершин соединяется опе-
раторами КРМН и МЕКН. Как объяснялось ранее, два объема будут объедине-
ны оператором КРМН и сохранены в одной оболочке. Более того, одно из двух
общих граничных колец станет кольцом отверстия для другого в результате
применения оператора КРМН. Оператор МЕКН соединяет пару совпадающих
вершин путем присоединения кольца отверстия к внешнему кольцу. Остав-
шиеся семь пар вершин соединяются путем семикратного применения опера-
тора MEL (рис. Г.11). Во-вторых, каждая пара вершин, соединенных ребром
нулевой длины, удаляется оператором KZEV. Этот оператор применяется во-
семь раз, поскольку имеется восемь вершин, соединенных ребрами нулевой
длины. Обратите внимание, что множественные ребра и вырожденное кольцо
до сих пор существуют для каждого ребра, на что указывает жирная линия на
рис. 7.11. Наконец, восьмикратным применением оператора KEL удаляются
множественные ребра и вырожденные кольца.
Рис. Г.11. Пошаговая иллюстрация процедуры склеивания
7. Далее определяется, имеет ли полученный объем множественные несвязан-
ные оболочки. Этот шаг необходим, поскольку булевская операция может
привести к появлению нескольких объемов, что демонстрирует рис. Г. 12.
Рис. Г. 12. Булевская операция, приводящая к появлению нескольких объемов
Приложение Д
Структура данных и топологические
операторы для немногообразных систем
моделирования
Д.1. Структура данных
В разделе 5.3.2 мы представляли объем в виде трех таблиц — грани, ребра и вер-
шины. Можно представить себе хранение списков топологических элементов
немногообразной модели аналогичным способом. Такой подход, предложенный
в [109], иллюстрирует рис. Д.1. Объект, в данном случае пирамида со слоистой
гранью и свободным ребром, состоит из объема, соответствующего пирамиде,
грани, соответствующей слоистой грани, и ребра, соответствующего свободному
ребру. Объем определяется оболочкой, окружающей объект, а оболочка снова
определяется списком поверхностей (см. таблицу граней в разделе 5.3.2). Далее,
с каждой гранью связаны кольца, и каждое кольцо имеет список ребер (см. таб-
лицу ребер в разделе 5.3.2). Аналогичным образом, каждое ребро имеет список
вершин (см. таблицу вершин в разделе 5.3.2). Структура данных, представлен-
ная на рис. Д.1, а, представляется весьма компактной и четкой, поскольку она
является простым расширением структуры данных на случай немногообразных
моделей. Однако эта структура не дает достаточно информации для получения
сведений о смежности топологических элементов. Например, при добавлении к
модели новой грани (рис. Д.1, а) мы должны выяснить отношения смежности
между гранями. Если добавленная грань создает новую оболочку с существую-
щими гранями, необходимо определить эту оболочку и добавить ее, изменив
оболочку в структуре данных, показанной на рис. Д.1, б. Чтобы можно было
определить оболочку, образуемую гранями, необходимо иметь информацию о
смежности граней.
Разработано несколько подходов к описанию немногообразной топологии, в осо-
бенности информации о смежности. Наиболее значительная работа была проде-
лана Бейлером, который ввел структуру радиальных ребер для представления
немногообразных топологий [156]. В случае многообразных твердотельных мо-
делей информация о смежности хранится в виде двух типов циклического упо-
рядочивания (то есть цикл «грань — ребро» и цикл «вершина — ребро»). Цикл
«грань — ребро» — это список ребер для каждой грани или кольца, а цикл «вер-
шина — ребро» — список связанных ребер, сходящихся в заданной вершине. По-
смотрев на структуру полуребер и структуру крыльевых ребер в разделе 5.3.2,
можно убедиться, что эти сведения о циклах хранятся прямо или косвенно. Ме-
жду тем, для представления немногобразной модели общего вида необходимо
задать три типа циклов: кольцевой, радиальный и дисковый. Кольцевой цикл
(рис. Д.2, а) соответствует циклу «грань — вершина» в многообразных твердо-
тельных моделях. Радиальный цикл, показанный на рис. Д.2, б представляет со-
бой цикл граней, соединенных с определенным ребром. Эта информация не
является необходимой в многообразной модели, поскольку ребро всегда принад-
лежит двум граням. Однако в немногообразных моделях ребро может одновре-
менно принадлежать более чем двум граням, и они должны быть заданы явно.
Дисковый цикл, изображенный на рис. Д.2, в, напоминает цикл «вершина—реб-
ро» в многообразных твердотельных моделях. Однако в немногообразных моде-
лях вершина может иметь несколько дисковых циклов. Например, вершина V на
рис. Д.З, а и б имеет три дисковых цикла, каждый из которых принадлежит сво-
ей оболочке.
б
Рис. Д.1. Представление немногообразной модели с помощью списков
топологических элементов
Д.1. Структура данных
Рис. Д.2. Три типа циклов в немногообразной топологии: а — кольцевой цикл;
б — радиальный цикл; в — дисковый цикл
а б
Рис. Д.З. Топологически различные модели
Представление радиальных ребер, предложенное Бейлером [156], является пер-
вым полным немногообразным представлением для моделирования границ,
в котором топологическая смежность представлена в явном виде. С ее помощью
можно представить радиальный цикл и кольцевой цикл, но она не хранит в яв-
ном виде дисковый цикл вокруг вершины. Хотя информация о смежности у вер-
шины в ограниченном числе случаев может быть получена из другой топологи-
ческой информации, структура радиальных ребер не всегда позволяет получить
правильную информацию такого рода из топологических данных. Более того, то-
пологически различные модели, изображенные на рис. Д.З, представляются в
структуре радиальных ребер одной и той же топологией. Чтобы обойти эту труд-
ность, в [60] было предложено вершинное представление, с помощью которого
можно выразить и дисковые, и радиальные, и кольцевые циклы. Здесь мы опи-
шем только представление радиальных ребер, поскольку прочие представления
можно рассматривать как его расширения. Описания других представлений
можно найти в [161].
Базовыми топологическими элементами, с помощью которых представляется не-
многообразная модель в структуре данных радиальных ребер, являются модель,
регион, оболочка, грань, кольцо, ребро и вершина (рис. Д.4). Модель эквивалентна
комплексу, показанному на рис. Д.1, б, и означает просто множество всех задей-
ствованных регионов. Регион эквивалентен объему, показанному на рис. Д.1, б,
и, таким образом, окружен одной или несколькими оболочками. Регион окружен
несколькими оболочками, когда внутри него имеются пустоты. В представлении
радиальных ребер одиночный твердотельный объект имеет две оболочки — одна
внутренняя, а другая внешняя, имеющая бесконечные размеры. Оболочка — это
□uz
I |риложение д. структура данных и топологические операторы
ориентированная граничная поверхность региона, и она имеет то же значение,
что и на рис. Д.1, б. Такие топологические сущности, как грань, кольцо, ребро и
вершина, имеют тот же смысл, что и в многообразном представлении.
Рис. Д.4. Топологические элементы в представлении радиальных ребер
Рисунок Д.4 показывает, что связи между базовыми топологическими сущностя-
ми задаются косвенно через четыре дополнительных топологических элемента:
вхождение грани, вхождение кольца, вхождение ребра и вхождение вершины.
Это аналогично введению полуребер для косвенного задания связей между коль-
цами, ребрами и вершинами (см. раздел 5.3.2). Вхождение грани (face-use) — это
один из двух вариантов использования грани, или одна из двух ее сторон. Таким
образом, оболочка, окружающая внешнюю или внутренню область объема, опре-
деляется набором связанных вхождений граней. Вхождение грани, или исполь-
зование грани оболочкой, имеет определенную ориентацию по отношению к гео-
метрии грани, и эта ориентация противоположна ориентации сопряженного ему
вхождения данной грани. Каждое из двух вхождений грани становится элемен-
том каждой из двух оболочек, обращенных к данной грани. В случае сотовой
структуры без замкнутого объема, как на рис. Д.5, эти сопряженные вхождения
грани принадлежат одной и той же оболочке. В данном примере список вхожде-
ний граней fiij— fu2— fu5— fu6— fu4— fu3 образует оболочку. Вхождение грани ог-
раничено одним или несколькими вхождениями кольца, так как грань окружена
кольцами. Вхождение кольца (loop-use) — это один из вариантов использования
кольца, связанный с одним из двух вариантов использования грани, и оно имеет
ориентацию по отношению к соответствующему вхождению грани, что опреде-
ляет ее внутреннюю или внешнюю границу (см. рис. Д.5). Вхождение кольца оп-
ределяется списком вхождений ребер. Вхождение ребра (edge-use) — это гранич-
ный сегмент кривой на вхождении кольца, принадлежащего вхождению грани, и
оно представляет использование ребра данным вхождением кольца или, в случае
Д.1. Структура данных
SU3
каркасного ребра, вершинами его конечных точек. Ориентация вхождения ребра
определяется вхождением начальной вершины, как и для полуребер. Вхождение
вершины (vertex use) — это структура, представляющая смежное использование
вершины ребром в качестве конечной точки, кольцом в случае одновершинного
кольца или оболочкой в случае одновершинной оболочки.
Рис. Д.5. Использование дополнительных топологических элементов для указания
смежности
Некоторые вырожденные ситуации указаны пунктирными связями на рис. Д.4.
Во-первых, прямое соединение оболочки и списка вхождений ребра допускает
существование оболочки, представляющей собой каркас. Аналогичным образом,
соединение оболочки и вхождения вершины допускает существование оболочки,
состоящей из одной вершины. Изолированная точка в немногообразном пред-
ставлении хранится как независимая оболочка. Кроме того, прямое соединение
вхождения кольца и вхождения вершины позволяет хранить изолированную
точку, находящуюся на грани, в виде кольца отверстия этой грани, что дает воз-
можность представить свободное ребро, исходящее из некоторой точки на грани.
Немногообразные модели смешанной размерности можно обрабатывать, интер-
претируя элементы меньшей размерности как вырожденные вхождения граней
и храня эти вхождения в списке вместе с другими вхождениями граней, принад-
лежащими той же оболочке.
Теперь поясним, как в структуре радиальных ребер представляются кольцевой и
радиальный циклы. Прежде всего, кольцевой цикл задается просто списком вхо-
ждений ребер для каждого вхождения кольца. Например, вхождение кольца 1и>
на рис. Д.5 несет в себе список вхождений ребер eu( — eu7 — eu8 — еи9. Для зада-
ния радиального цикла каждое вхождение ребра имеет два указателя, указатель
сопряженности и радиальный указатель (рис. Д.6). На рис. Д.6 изображен вид
сотовой структуры, представленной на рис. Д.5, в поперечном сечении. По рис. Д.6
видно, что указатель сопряженности вхождения ребра — это указатель на вхож-
дение ребра на обратной стороне грани, а радиальный указатель указывает на
вхождение ребра, которое принадлежит вхождению грани, смежному в радиаль-
Приложение Д. Структура данных и топологические операторы
ном направлении с вхождением грани заданного вхождения ребра. Благодаря этим
указателям можно полностью радиально упорядочить грани вокруг ребра, отсле-
живая указатели от любого вхождения ребра. Как упоминалось ранее, в пред-
ставлении радиальных ребер дисковый цикл не хранится в явном виде. Однако
цикл «вершина-ребро» хранится, как и в многообразном представлении, в виде
списка вхождений вершин для каждой вершины. Хранение списка вхождений
вершин эквивалентно хранению вхождений ребер, поскольку каждое вхождение
вершины связано с вхождением ребра, и поэтому эквивалентно хранению цикла
«вершина — ребро». Например, вершина VI на рис. Д.5 хранит список вхожде-
ний вершин vu, — vu2 — vu3 — vu4 — vu5 — vu6. Обратите внимание, что вхожде-
ния вершин перечислены без значительного упорядочивания. Именно поэтому
две различные модели, показанные на рис. Д.З, имеют одну и ту же структуру
в представлении радиальных ребер.
Рис. Д.6. Поперечное сечение с указателями вхождений ребер
По рис. Д.4 можно заметить, что такие базовые топологические элементы, как
грань, кольцо, ребро и вершина, являются избыточными, поскольку вся необхо-
димая информация о них хранится в элементах их вхождений. На самом деле не
обязательно иметь прямое представление граней, колец, ребер и вершин как та-
ковых --- представления их вхождений достаточно, чтобы указать их положение
в модели. Однако с точки зрения системной архитектуры удобнее, когда про-
граммисты, использующие операторы для манипуляции структурами данных,
имеют дело с более интуитивными понятиями базовых топологических элемен-
тов, а не с топологическими вхождениями этих элементов. Это одно из несколь-
ких оправданий для того, чтобы включать в представление такие избыточные
элементы, как грани, кольца, ребра и вершины. Это рассмотрение структуры
Данных радиальных ребер станет яснее, если вы познакомитесь с детальной реа-
лизацией этой структуры в [156].
Д.2. Операторы для манипулирования
топологией
По аналогии с операторами Эйлера, используемыми для манипулирования топо-
логическими элементами в многообразных моделях, были предложены операто-
ры, позволяющие манипулировать топологическими данными в немногообраз-
ных моделях [157]. Однако эти операторы не унаследовали полезных свойств
операторов Эйлера, поскольку в их основе не лежало уравнение, подобное фор-
муле Эйлера—Пуанкаре. Как вы помните, формула Эйлера—Пуанкаре устанавли-
вает связь между количествами различных топологических элементов многооб-
разной модели. Возможно, вы скептически относитесь к вопросу существования
аналогичной формулы для немногообразной модели, принимая во внимание
гибкость ее топологии. Однако Масуда с коллегами [109] обобщили формулу
Эйлера—Пуанкаре на случай немногообразной модели следующим образом:
r-e + (/-r)-(V-VA +Vc) = C-C„ +Сс, (Д.1)
где:
v — количество вершин;
е — количество ребер;
f — количество граней;
г — количество колец, или отверстий, в гранях;
V — количество замкнутых объемов во всех комплексах, или просто несвяз-
ных объектах';
Vh — количество отверстий, или проходов через объемы;
Vc — количество полостей, или пустот, в объемах;
С — количество комплексов, или несвязных объектов;
Cf, — количество отверстий, или проходов через объекты;
Сс — количество полостей, или пустот, в объектах.
Выражение (Д.1) можно проверить на модели, изображенной на рис. Д.1, а.
В этой модели v = 6, е = 9, f = 5, г = 0, V= 1, Vh = 0, Vc = 0, С = 1, Ch = 0 и Сс - 0.
Подстановка этих значений в выражение (Д.1) дает 6-9 +(5-0)- (10 + 0) =
= 1-0 + 0, что удовлетворяет уравнению.
Мы можем также показать, что формула Эйлера—Пуанкаре, приведенная в урав-
нении (5.1), является просто частным случаем уравнения (Д.1). Поскольку лю-
бой несвязный объект имеет один объем в многообразной интерпретации, мы
знаем, что V= С, Vh = Ch и Vc = Сс. Подставляя это в уравнение (Д.1), получаем
v - е + (/ - г) = 2(V - Vh + V( ). (Д.2)
Число оболочек 5 равняется сумме количества объемов V и количества пустот Vc,
поэтому (Д.2) можно переписать следующим образом:
v-e + (f-r) = 2(s-Vh). (Д.З)
1 Любой несвязный объект считается одним комплексом, и каждый комплекс может состо-
ять из нескольких объемов и свободных ребер. Комплекс эквивалентен модели в пред-
ставлении радиальных ребер.
। |рилижение д. к,i рук । ура данных и топологические операторы
Следовательно, уравнение (Д.З) — это то же самое, что и уравнение (5.1), по-
скольку г и V/, имеют такой же смысл, что h и р в уравнении (5.1).
Когда связь между топологическими элементами в немногообразной модели
установлена, как в уравнении (Д.1), мы можем определить минимальный набор
операторов, необходимых для манипулирования ими. Поскольку формула (Д.1)
определяет плоскость в 10-мерном пространстве с координатами (v, e, f, г, V, Vh,
Vc, С, Ch, Ct), имеется 9 независимых базисных векторов. Таким образом, для
описания любого объекта в немногообразной топологии достаточно иметь 9 опе-
раторов и соответствующих им обратных операторов. Один из возможных мини-
мальных наборов, определенный в [109], иллюстрирует рис. Д.7. Хотя девяти
операторов достаточно для создания любого объекта, на практике можно до-
стичь большей эффективности, если добавить еще несколько операторов. Как вы
помните, в разделе 5.3.3 мы ввели семь операторов Эйлера, хотя для создания
многообразной модели достаточно пяти.
mvC(kvC) Создать (уничтожить) вершину, комплекс /|\
mev(kev) Создать (уничтожить) ребро, вершину
meCh(keCh) Создать (уничтожить) ребро, отверстие комплекса 4^4
mfkCh(kfmCh) Создать (уничтожить) грань, отверстие комплекса 4^А
mfCc(kfCc) Создать (уничтожить) грань, полость комплекса
mvr(kvr) Создвть (уничтожить) вершину, кольцо /~/ /т/
mVkCc(kVmCc) Создать (уничтожить) объем, полость комплекса 1^—
mvVc(kvVc) Создать (уничтожить) вершину, полость объема 4 Z
meVh(keVh) Создать (уничтожить) ребро, отверстие объема /•/ / • 1/ =ф>
Рис. Д.7. Минимальный набор операторов
Точно так же, как команды моделирования высокого уровня реализованы в сис-
темах твердотельного моделирования с помощью операторов Эйлера, команды
немногообразных систем моделирования реализуются путем последовательного
выполнения соответствующих операторов. На рис. Д.8 показано, как с помощью
предложенных операторов, перечисленных на рис. Д.7, создается примитивный
параллелепипед. Все прочие команды моделирования реализованы аналогично.
На самом деле команды, доступные в немногообразных системах моделирова-
ния, выглядят точно так же, как команды обычных системах твердотельного мо-
Д.2. Операторы для манипулирования топологией
507
делирования, так что пользователь может и не заметить разницы в их использо-
вании. Единственным различием будет область значений представимого объекта
и, соответственно, хранимые в нем данные.
Рис. Д.8. Создание примитивного параллелепипеда с помощью операторов,
предложенных Масудой и др.
Приложение Е
Алгоритм де Кастильо
Алгоритм де Кастильо можно сформулировать следующим образом.
P(w), координаты точки на кривой Безье при значении параметра, равном и, рав-
ны Роп и вычисляются по следующей рекурсивной формуле-.
Р,' =(l-zz)P;-! + иР$, (Е.1)
где
г = 1,п;
i = 0,п - г;
Р® = Р. -
а начальные значения Р® — это координаты задающих точек Р(..
Выражение (Е.1) показывает, что Р* вычисляются по Р°, или что задающие точ-
ки Р,2 вычисляются по Р,1 и т. д., пока не будет получено Ро" — значение Р(«).
Этот процесс показан на рис. Е.1 для кривой Безье порядка 3 (п = 3). Обратите
внимание, что Ру получается путем разбиения сегмента линии Р0Р, на отрезки с
отношением длин и : (1 - и), Р,! и Р2 определяются так же. Затем находится Ру ,
для чего сегмент линии Р^Р^ разбивается на отрезки с тем же отношением длин,
а после этого определяются Pj! или Ру путем аналогичного разбиения сегмента
Р(2Р2. Рр дает координаты точки кривой, соответствующей значению парамет-
ра и. Как вы помните, значение параметра определяет отношение, в котором раз-
биваются соответствующие сегменты линии. Рисунок Е.1 показывает также, что
исходная кривая Безье состоит из двух кривых Безье: одна определена четырьмя
задающими точками Ро, Ру, Ро2 и Ро!, а другая — Ру, Р2, Р2 и Р3. Проверку этого
утверждения можно найти в [48]. Обратите также внимание, что два новых за-
дающих многоугольника аппроксимируют оригинальную кривую Безье гораздо
более близко, чем исходный задающий многоугольник. Таким образом, алгоритм
де Кастильо может применяться многократно для аппроксимации кривой Безье
сегментами прямых линий.
Процесс получения Ру с помощью формулы (Е.1) иллюстрируется схематически
на рис. Е.2. Любая точка Р,г определяется верхним левым соседом Р/~’ и левым
соседом Р,'"*, следовательно, новые точки, создаваемые в процессе рекурсии, об-
разуют нижний треугольник с вершиной в Ро". Эта схематическая диаграмма со-
держит дополнительную полезную информацию. Мы показали, что кривая Безье
порядка 3 в процессе применения алгоритма де Кастильо может быть разделена
на две кривые Безье того же порядка. Эту идею можно распространить на кри-
вую Безье любого порядка. На самом деле две группы точек, окруженные пунк-
тирными линиями, — это задающие точки двух кривых Безье, полученных путем
Приложение Е. Алгоритм де Кастильо
509
разделения исходной кривой Безье, определенной точками Ро, Р,,.... Р„. Таким
образом, кривую Безье любого порядка можно разбить на множество кривых Безье
того же порядка, многократно применяя алгоритм де Кастильо, и результирующие
задающие многоугольники будут достаточно близко аппроксимировать исходную
кривую. Такая аппроксимация прямолинейными сегментами может использоваться
для вычисления начальных значений точек пересечения между кривыми Безье.
Реализация алгоритма де Кастильо на языке С представлена в листинге Е.1.
С помощью алгоритма де Кастильо можно также вычислить производные кри-
вой Безье. Дело в том, что производная любого порядка от кривой Безье может
быть выражена уравнением кривой Безье, как отмечалось в разделе 6.4.1.
Листинг Е.1. Реализация алгоритма де Кастильо на языке С
float decas(degree, coeff. u)
/*
Использует алгоритм де Кастильо для вычисления одной координаты
точки кривой Безье. Должна вызываться для каждой координаты
(х. у и/или z) задающего многоугольника.
510
Приложение Е. Алгоритм де Кастильо
Вход:
degree: степень кривой Безье
coeff: массив коэффициентов кривой
и: значение параметра
Выход:
значение координаты
int degree;
float coeffEJ:
float u:
{
Int r. i;
float ul:
float coeffa[30]: /* дополнительный массив
измените размерность.
если его недостаточно */
ul = 1.0 - и:
for(1=0: 1<=degree; i++)
coeffaEI] = coeff[1]: /* сохраняем входной массив */
for(r=l: r<=degree: r++)
for(1=0: 1<=degree-r: 1++)
{
coeffa[1] = ul * coeffa[1] + u * coeffa[i+l]:
}
return(coeffa[OJ):
Приложение Ж
Вычисление В-сплайновой кривой
по методу Кокса—де Бура
Опишем вычисление В-сплайновой кривой по методу Кокса—де Бура. Для этого
мы вычислим координаты В-сплайновой кривой для параметра и в диапазоне
t\ < и < t/+1. Когда и находится в этом диапазоне, достаточно рассмотреть только
Ntx. Распространяя эффект Nlt (см. рис. 6.5), мы можем заключить, что только
функции сопряжения Ni-(k-t),h Мл могут иметь ненулевые значения. Поэтому
выражение для Р(м) можно изменить следующим образом:
Р(М) = ХрЛ..*(“)= £рЛ.*(“)- (Ж.1)
1=0 !=/-*+1
Подставляя уравнение (6.32) в уравнение (Ж.1), получаем:
у _ у-1 р WiJM + (/i+k ц)^|+1,<-1
;=/-t+i _ ti+k-i ~tj ^-i+k “ tj+i
i=i-k+t
/=/-*+2 tj + k-l
(Ж.2)
;=/-*+2
где Р/ определяется следующим образом1:
р,1 = u~ti р, + Г1 —
(Ж.З)
Таким образом, Р,1 можно интерпретировать как внутреннюю точку разбиения
сегмента линии Р,Р,. , аналогично алгоритму де Кастильо.
Теперь Niji-x выражается через комбинацию Nhk-2 и ^Ч+|,*-2 с помощью форму-
лы (6.32), и это выражение подставляется в уравнение (Ж.2) вместо Nik_t. После
этого, используя процесс, аналогичный тому, который применялся при выводе
уравнения (Ж.2), мы можем получить следующее соотношение:
1 Во второй строке (Ж.2) делается подстановка j-i+ 1, а в третьей строке диапазон сумми-
рования сужается, поскольку Ni-k+ij,-! и Nj+u,-t равны нулю в интервале й и ti+i.
512
Приложение Ж. Вычисление В-сплайновой кривой по методу Кокса—де Бура
р(«)= £р,х_2,
>•-/-*+з
где Распределяется следующим образом:
Р; +|1 —
\ ~ ti
(Ж.4)
и -tf
и -t.
\pL-
Р,2 =
Иными словами, Р2 также представляет собой внутреннюю точку разбиения сег-
мента ЛИНИИ Р/Р/-].
Повторив ту же процедуру произвольное число раз г, мы получим:
Р(н)= ЕР;^Л_г(гг),
(Ж.5)
где
рГ = u t, р,
^i+k-r ~^1
( , и -t:
+ 1--------~
k ^i+li-r
Р. носит название точки де Бура. Обратите внимание, что под Р,° в выраже-
нии (Ж.6) понимается Р,.
Делая в уравнении (Ж.6) подстановку г= (Л - 1), получим
Р(«) = Р,*-1^ ,(«) = ?,*-' (Ж.7)
Поэтому мы можем сказать, что координаты точки, соответствующей значению
параметра и в диапазоне tx < и < £/+1, — это координаты Р*-1, получаемые путем
рекурсивного разбиения сегментов линий между соответствующими точками,
начиная с сегмента между двумя исходными задающими точками.
Пример Ж.1
Для кривой В-сплайна, показанной в примере 6.4, вычислите координаты точки,
соответствующей и = 2,5, используя алгоритм Кокса—де Бура.
Решение
В соответствии с условием примера 6.4 значения узлов таковы:
to = 0, £| = 0, £2 = 0, £3 = 1, £4 = 2, £5 = 3, £g = 4, £7 = 4, £g = 4.
Таким образом, в данном случае / становится равным 4, поскольку £4 < 2,5 < £5,
и в соответствии с уравнением (Ж.7) Р(2,5) = Р2. Используя уравнение (Ж.6),
можно выразить Р42 как
р2 = н-£4 р,
^4+*-2
G — ^4 I 1
= 0,5Р* +0,5Р*.
'4 'о
Обратите внимание, что при выводе уравнения (Ж.8) были подставлены значе-
ния k = 3 и и = 2,5.
Можно также получить Р* и Pj, используя уравнение (Ж.6):
+ 1-
ц -£4
is
Р,
(Ж.6)
ц -£4
ti+k-2 ~*4 >
Рз =
Рз =
(Ж.8)
Вычисление В-сплайновой кривой по методу Кокса—де Бура
513
р' „1Ар4 +fl-^4-k =^р4 +Ь3; (Ж.9)
^6 ^4 к ^6 ^4 )
Р- = -^Р3 + [1-^Мр2 =^Р3 Цр2. (Ж.10)
ts ^3 \
Обратите внимание, что Р° заменяется на Р,, как и прежде.
Теперь можно найти точку Р(2,5) на кривой (см. рис. 6.6), используя уравне-
ния (Ж.10), (Ж.9) и (Ж.8), как показано на рис. Ж.1.
Рис. Ж. 1. Создание точки Р-
Рисунок Ж.1 показывает, что исходная кривая В-сплайна разделена на две кри-
вые В-сплайна того же порядка, как это делалось для кривых Безье: одна кривая
определена задающими точками Ро, Р(, Р2, Р3 и Р4, а другая — Р42, Р4', Р4 и Р5.
Первая кривая В-сплайна имеет пять задающих точек (п = 4) и порядок 3 (Л = 3),
так что она имела бы узловые значения [0 0 0 1 2 2,5 2,5 2,5]. Аналогичным обра-
зом, вторая кривая В-сплайна имела бы узловые значения [2,5 2,5 2,5 3 4 4 4].
Процесс итеративного вычисления Pz*"‘ с использованием уравнения (Ж.6) мож-
но иллюстрировать схематически (рис. Ж.2). Любая точка Р5 определяется верх-
ним левым соседом Р^1 и левым соседом Р/"‘, следовательно, новые точки, соз-
даваемые в процессе рекурсии, образуют нижний треугольник с вершиной в Р/"1.
Эта схематическая диаграмма содержит дополнительную полезную информа-
цию. Мы показали, что кривая В-сплайна порядка 3 в процессе применения ал-
горитма Кокса—де Бура в примере Ж.1 может быть разделена на две кривые В-
сплайна того же порядка. Эту идею можно распространить на кривую В-сплайна
любой степени, как и в случае кривых Безье. На самом деле две группы точек на
рис. 6.12, окруженные пунктирными линиями, — это задающие точки двух кри-
вых В-сплайна, полученных путем разделения исходной кривой В-сплайна, оп-
ределенной точками Ро, Pj, ..., Р„, в точке, где параметр и принимает значение
tj < и < t/+1. Таким образом, кривую В-сплайна любого порядка можно разбить на
множество кривых В-сплайна того же проядка, многократно применяя алгоритм
Кокса—де Бура, и результирующие задающие многоугольники будут достаточно
514
Приложение Ж. Вычисление В-сплайновой кривой по методу Кокса—де Бура
близко аппроксимировать исходную кривую, как и в случае применения алго-
ритма де Кастильо для аппроксимации кривой Безье. Такая аппроксимация пря-
молинейными сегментами может использоваться для вычисления начальных
значений точек пересечения между кривыми В-сплайна. Алгоритм Кокса—
де Бура может быть реализован на языке С (листинг Ж.1).
Рис. Ж.2. Схема вычисления Р*~1
Листинг Ж.1. Реализация алгоритма Кокса — де Бура на языке С
Cox_de_Boor(k. t. Р. и. 1. R)
int к; /* порядок В-сплайна */
Knot *t: /* последовательность узлов */
Point *Р; /* задающие точки */
double и; /* значение параметра */
int 1: /* целое число, такое, что t[l] <- u < t[l+l] */
Point *R; /* р(и) */
{
Point A[MaxOrder];
int 1. j. r:
double dl, d2:
for(j=0; J<k; j++)
A[j] « P[l-k+l+j];
for(r=l; r<k: r++) {
for(j»k-l: j>-r: j--) {
515
1-1 - к + 1 + j:
dl = и - t[1J; <12 = t[i+k-r] - u
A[j] - (dl * A[j] + <12 * A[j-l])/(dl + d2):
}
}
*R - A[k-1]:
Приложение 3
Объединение В-сплайнов
Чтобы получить новые задающие точки и узловые значения объединенной кри-
вой, мы предположим, что объединяемые кривые имеют одинаковый порядок.
В противном случае перед тем как выполнить объединение, нам придется изме-
нить ту кривую, у которой порядок меньше, придав ей тот же порядок, что и у дру-
гой кривой (то есть мы будем находить узловые точки и узловые значения экви-
валентной кривой боле высокого порядка). Эта процедура описывается в [38].
Обозначим уравнения первого и второго В-сплайна порядка k как Pj(w) и Р2(н),
соответственно. Далее предположим, что Р((н) определяется задающими точка-
ми Q, (г = 0, 1,..., и) с узловыми значениями г, (i = 0, 1,..., п + k). Аналогичным об-
разом, Р2(н) определяется задающими точками R, (i = 0, 1,.... т) с узловыми зна-
чениями т, (i = 0, 1,..., т + k). Обратите внимание, что Q„ — это то же самое, что
и Ro (рис. 3.1).
Тогда уравнения РДн) и Р2(и) могут быть записаны следующим образом:
p.(«) = £qa*(“); (3.1)
»=0
m
p2(«)=£r,nm(u). (3.2)
г-0
Теперь определим задающие точки и узловые значения объединенной кривой
(без вывода). Мы проверим результат, показав, что объединенная кривая в своих
соответствующих частях представляет исходные кривые. Во-первых, множество
задающих точек объединенной кривой Р, представляет собой простое объедине-
ние множеств задающих точек двух кривых:
[Q, 0=0,
Pf=(„ . (3.3)
|R,_„ (i = п+1,..., т+п).
иоъединение в-сплаинов
517
Обратите внимание, что Ro не фигурирует в уравнении (3.3), поскольку это то
же самое, что и Q„.
Узловые значения объединенной кривой находятся путем слияния двух наборов
узловых значений, после того как всё узлы будут сдвинуты так, что w0 будет
равняться vn+k. Нам известно, что сдвиг всех узлов на одно и то же расстояние не
влияет на уравнение кривой, поскольку важность имеет только разность между
узловыми значениями. При объединении двух наборов узловых значений не-
которые из них, соответствующие точке сопряжения между двумя кривыми,
исключаются, так что они будут повторяться только k — 1 раз. Если количество
повторений больше, чем k - 1, получившаяся объединенная кривая не может
рассматриваться как один В-сплайн и, таким образом, не удовлетворяет соотно-
шению, определяющему число задающих точек, их порядок и количество узло-
вых значений. Процесс получения узловых значений для объединенной кривой
иллюстрирует рис. 3.2. Узловые значения да, сдвигаются на расстояние (vn+k - w0),
так что узловое значение w0 становится равным v„+l, и из попарно равных узло-
вых значений d„+1, ..., v„+k и w{,..., оставляются только (k - 1) узлов от v„+l до
vn+k. Таким образом, узловые значения, которые будут использоваться для объе-
диненной кривой, находятся, как показано штриховыми прямоугольниками на
рис. 3.2, и могут быть выражены следующим образом:
k (i=o, »+* = 1), (34)
-®о (I = n + k,...,n + m+k).
к раз
/------------\
Лраз
Рис. 3.2. Объединение узловых значений
Теперь убедимся, что объединенная кривая, которая определяется задающими
точками и узловыми значениями, заданными формулами (3.3) и (3.4), совпадает
с двумя исходными В-сплайнами в каждой из соответствующих частей. Рассмот-
рим часть кривой, соответствующую интервалу t„ (= v„) и tn+i (= v„+t = v„+2 =... =
= Vn+h-i)- Мы знаем, что N„i(u) — единственная функция сопряжения первого
порядка, не убывающая в данном диапазоне и. Распространяя эффект Nn l(u)
(рис. 6.5), мы найдем, что N„_t+i.*(n), N„-k+2.k(u)’ М>,*(ы) являются ненулевыми
функциями сопряжения порядка k. Таким образом, кривая определяется задаю-
щими точками Р„_£н, Ри-*+2> > Р„- Эти задающие точки совпадают с точками 0,-нь
Оп-к+г, —> Ол- Далее, подмножество узловых значений объединенной кривой, уча-
ствующих в вычислении функций сопряжения M>_*+i.*(«), Nn-k+2.k(u)’ <
будет совпадать со значениями, входящими в Pt(zz). Из этого мы можем заклю-
чить, что объединенная кривая Р(ы) совпадает с РДм) для значений и в интерва-
ле t„ и t„+l. К тому же заключению мы придем в случае, когда и находятся меж-
(риложение з. иоъединение в-сплаинов
ду узловыми значениями, меньшими t„. Таким же образом можно показать, что
Р(и) совпадает с Р2(ц) при и t„+k.
Пример 3.1
Два непериодических однородных В-сплайна порядка 4, один из которых опре-
делен задающими точками Рь Р2, Р3 и Р4, а другой - Q, (= Р3), Qj, Оз и 04, тре-
буется представить с помощью объединенного В-сплайна. Найти узловые значе-
ния объединенной кривой.
Решение
Кривая В-сплайна, определенная точками Р„ будет иметь узловые значения
00001 1 1 1, а кривая, определенная точками О, — узловые значения
00001222 2. Чтобы сделать первое узловое значение из второго набора рав-
ным последнему узловому значению первого набора, узловые значения второго
набора сдвигаются на 1, в результате чего получаются значения 1 1 1 12333 3.
После этого два набора узловых значений объединяются, и некоторые из узло-
вых значений, равные 1, удаляются, чтобы они фигурировали только три (то
есть k - 1) раза. Соответственно, объединенная кривая будет иметь узловые зна-
чения 00001 1 12333 3.
Приложение И
Доказательство формулы
дифференцирования В-сплайна
Чтобы доказать формулу (6.43), сначала докажем справедливость следующего
соотношения:
= <и1>
l^i+r-1 ^i+r ^i+t J
Для доказательства (И.1) мы перепишем уравнения (6.32) и (6.33) более удоб-
ным образом:
Мл («) = {* (И.2)
[О во всех остальных случах
и
М» = и~\ М,ГЧ(«)+ ~и M+i.r-i(и). (И.З)
Теперь выведем формулу (И.1), рассуждая по индукции. Иными словами, мы
покажем, что уравнение (И.1) справедливо при r=k, если установлена его спра-
ведливость при r= k - 1. Мы также покажем, что равенство (И.1) выполняется
при г = 2. В таком случае оно должно выполняться и при г = 3. Повторяя это ин-
дуктивное рассуждение с увеличением г, мы можем доказать, что формула (И.1)
выполняется для всех г.
U-t,
(И.4)
Первым делом покажем, что равенство (И.1) выполняется при г= 2. Подставляя
г= 2 в (И.З), получим
М.2 («) = \ М Д (« ) + /'+2_ / М+1.1 (“)•
4+1 Ч 4+2 *7+1
Дифференцирование уравнения (И.4) дает
Mi(“) М+1,1(«)
N,2(u) =------------------’
’2 tM ff+2 ~tM
что эквивалентно уравнению (И.1) при г= 2.
Предполагая, что (И.1) справедливо для r=k- 1, имеем
Ni.h-2 (Ц) М+1Д-2 (и ) ]
М*-2 ~^i ^i+k-l ~^i+l J
Теперь с помощью уравнения (И.5) нам необходимо показать, что уравнение (И.1)
справедливо при г = k. Подставляя г = k в уравнение (И.З) и дифференцируя его
по и, получим
Mf>1 («) = (*-2)
(И.5)
□ZU
Приложение и. доказательство формулы дифференцирования ь-сплаина
м.*(“) =
М,*-1 (ц)
tj+k ^/+1 ^i+k-1 If ^i+k ^i+l
(И.6)
^i+i-1 tj
Возьмем выражения &хл_х(и) и из уравнения (И.5) и подставим их
в уравнение (И.6):
*,» =
«о
-t.
*i+* -ti+l J
(И.7)
^,чи-2(Ц)- ^-Wj+2.*-2(“)
t-i+k 4+2
Теперь перепишем второе слагаемое, прибавив и вычтя член
tj+k-l
^i+*-l — ^i+1
^f+U-2(«)
и затем применив формулу (И.З):
k-2 u-ti .. z . tuk_x -и ..
Второе слагаемое =------------------!(w) + —----------------N,+11_2 \и) ~
ti+k-l ~ti L^i+i-2 ^i+k-1 “^i+1
t- L 1 —U u — t-
- M+l.*-2(“) Ki+]J^(u) =
^i+k-l
k-2 t- L, — t
'-N^W =
ti+k-i 4+i
k-2 k-2
К,к_х(и)-- — M+U-2(“)-
^к-i -t. t.+k-i ~tM
Изменим порядок суммирования во втором и третьем слагаемом формулы (И.7):
Второе слагаемое + Третье слагаемое =
k-2 tf+k-i ~ xr z x k-2 t>+k ti+l tj+k ~U J-i+k-l —t). 1-1
tj+k ~ U XT zx ti+k - £ M+2.t-2(“) — Jvi+1.4-2 (Ц) =
^r+* ~tt + 2 ^i+A-l 4+1 -
= {k-2) М,*-1(ц) 1 и -ti+i -М+1>2(«)+-^^-М+24-2(«) =
^i+k /i+k-1 ~t-i+ ^i+k ^i+2 J.
= {k-2) М,*-1(Ц) Мч1Л-1(^)~
J it k-1 ~ti tf+k ~ti*l
Наконец, добавив этот результат к первому слагаемому в формуле (И.7), полу-
чим:
Доказательство формулы дифференцирования В-сплайна
2
(Первое слагаемое) + (Второе слагаемое + Третье слагаемое) =
= (1)Г _ ^U-l(»)l + (k_2)Г _ W,+u-i(»)l =
J-i+k-i ^i+* — ^i+l J _^i+*-l ^i+i — ^i+1
Результат идентичен формуле (И.1).
Теперь докажем формулу (6.43) с помощью формулы (И.1). Перепишем произ-
водную первого порядка от кривой В-сплайна при условии, что значение пара-
метра и находится в интервале Ц и ti+l, следующим образом:
М,*-.
(») Мчи-tfr) =
(И.8)
= t = I РД».
i=0 i=l-k+l
Из формулы (И.1) получаем:
Z Р.(*-1)
du ы-ы
= Z рл^-1)Мл~1(ц) - Zp,(^-1)—'*~|(ы)
W-4+2 Л+i-l 1-/-Л+1 Л+Л — ^i+1
Обратите внимание, что мы сократили диапазон суммирования в формуле (И.8),
зная, что N^u^u) = 0 и M+i,*_i(w) = 0 при t{ и tt+v.
Замена (i + 1) на j во втором слагаемом формулы (И.8) даст
du i^l-k+2 ^i+k-i j=l~k+2 tj+k-l
- f (^-i)fi~p--; мЛ.,(п)= ip’M.^^).
!=/-* +2 4+*-l ~ *i !=/-*+2
Таким образом, мы имеем
EP/^>-i(«x
аи i^i-k+г
где
p* =(&-i).P‘ pe>.
^r+4-1
Приложение К
Подход Пенга к вычислению
пересечения NURBS-поверхностей
В этом приложении дается пошаговое описание подхода Пенга.
К.1. Разбиение
Как объяснялось ранее, для каждой из пересекающихся поверхностей необходи-
мо создать непрерывное разбиение, которое затем нужно сохранить в виде квад-
рантного дерева. Поскольку рациональные (нерациональные) поверхности Безье*
разбивать проще, чем рациональные (нерациональные) поверхности В-сплайнов,
мы преобразуем каждую NURBS-поверхность в множество рациональных лос-
кутов Безье (рис. К.1).
Рис. К.1. Преобразование NURBS-поверхности в рациональные лоскуты Безье
После того как это будет проделано, пары рациональных лоскутов Безье, кото-
рые могут пересекаться, сохраняются в списке, называемом списком соперников
{rival list). Например, на рис. К.2 показано преобразование NURBS-поверхностей
S1 и S2 (рис. К.2, а) в четыре рациональных лоскута Безье Pl, Р2, РЗ и Р4 и два
рациональных лоскута Безье Q1 и Q2 соответственно. Эти рациональные лоску-
ты Безье сохраняются в квадрантных деревьях (рис. К.2, б). Обратите внимание,
что на рис. К.2, а пересечения могут возникать между лоскутами РЗ и Q1 и лос-
кутами Р4 и Q1. Поэтому данные пары записываются в список соперников
(рис. К.2, в). Возможность пересечения двух лоскутов может быть обнаружена
путем сравнения минимального размера блоков, каждый из которых едва умеща-
ет в себе лоскут.
После этого проверяется, являются ли лоскуты, хранящиеся в списке соперни-
ков, достаточно плоскими для того, чтобы их можно было аппроксимировать
плоскими четырехугольниками. Если какой-либо из лоскутов в списке не явля-
1 Рациональная поверхность Безье получается из поверхности Безье путем введения одно-
родных координат для контрольных точек.
К.1. Разбиение
23
ется достаточно плоским, он делится на четыре части. В этом случае квадрантное
дерево соответствующей поверхности обновляется с учетом этих новых лоску-
тов. Также модифицируется список соперников, так что пары, включавшие до
разбиения старый лоскут, удаляются/ а вместо них добавляются пары с новыми
лоскутами.
Рис. К.2. Представление рациональных лоскутов Безье в виде квадрантного дерева
и его список соперников
На рис. К.З показано, как изменяется квадрантное дерево и список соперников,
когда лоскут делится на части, поскольку не прошел тест на плоскостность.
В данном примере на плоскостность проверяются лоскуты из пары P3-Q1, и
лоскут Q1 делится на четыре новых лоскута: Qll, Q12, Q13 и Q14. Здесь мы
предполагаем, что лоскут РЗ прошел тест на плоскостность. Таким образом,
квадрантное дерево, изображенное на рис. К.2, б, обновляется в соответствии с
рис. К.З, б. После этого производится тест на пересечение между новыми лоску-
тами и РЗ для обновления пары P3-Q1 в исходном списке соперников. Если но-
вые лоскуты располагаются, как показано на рис. К.З, а, то пара РЗ- Q1 будет за-
менена на две пары РЗ-Qll и P3-Q12 (рис. К.3, в).
| РЗ- Q11 | P3-Q12 | Р4 - Q1 1
Рис. К.З. Обновление квадрантного дерева и сгиска соперников после теста
на плоскостность
риложение К. I юдход I юнга к вычислению пересечения NURBS-поверхносгей
К.2. Нахождение пересекающихся сегментов
Мы получили квадрантные деревья пересекающихся поверхностей и список со-
перников. Теперь можно приступить к поиску пересекающихся сегментов, начи-
ная с одной из пар в списке соперников. Сначала мы можем взять любую из пар
в списке соперников и вычислить сегмент их пересечения (или, точнее, две ко-
нечные точки). Для вычисления этих конечных точек мы используем пересече-
ние двух плоскостей, поскольку все лоскуты в списке соперников уже прошли
тест на плоскостность. Обозначим эти точки как А1 и А2. Вспомните, что мы
всегда находим точные координаты соответствующих точек, когда получаем ко-
нечные точки по пересечению двух плоскостей. Конечная точка используется
как первоначальное грубое приближение для точного нахождения соответствую-
щей точки путем решения уравнения (7.50).
Теперь необходимо найти следующую пару лоскутов, которые дадут сегмент пе-
ресечения, соединенный с одним из концов текущего сегмента пересечения. До-
пустим, что мы ищем точки пересечения от А1 к А2. Соответственно, нам нужно
найти пару, которая даст сегмент пересечения с точкой А2. Процедура нахожде-
ния следующей пары показана на рис. К.4. Следующая пара, X1-Y2, находится
после получения текущей точки пересечения А2 из текущей пары, XI-Y1. сле-
дующим образом.
□ Определяется местоположение текущей точки пересечения, в данном случае
А2, по отношению к лоскутам текущей пары. Таким образом, А2 находится на
границе лоскута Y1 и внутри лоскута XI.
□ Лоскут, полностью содержащий в себе текущую точку пересечения, то есть
лоскут XI, используется снова для следующей пары. После этого мы выбира-
ем один из лоскутов, соседствующих с Y1, в качестве второго лоскута для
следующей пары. Выбор определяется местоположением текущей точки пе-
ресечения относительно Y1. В данном случае мы выбираем правый соседний
лоскут, поскольку текущая точка пересечения А2 находится на правой грани-
це лоскута Y1. Затем мы вычисляем точки пересечения для этой новой пары,
и для поиска следующей пары роль текущей точки пересечения возьмет на
себя другая точка, отличная от А2.
1Ч.Д-. । >или/гщснис I lepeCCKdlUUr XLM cei менгив -----------------------52“
Эта процедура завершается, когда точка пересечения достигнет границы одной
из пересекающихся поверхностей (рис. К.5). После этого точки пересечения про-
ходятся в обратном порядке, начиная с исходного сегмента пересечения. Можно
считать, что текущая кривая пересечение получена полностью, если она превра-
щается в замкнутый контур или пересекается с одной из поверхностей по двум
граничным кривым. Мы можем также найти остальные кривые пересечения, вы-
полнив поиск точек пересечения от одной из пар в списке соперников, которая
не участвовала в вычислении уже полученных кривых пересечения. Так, если
мы не оставим в списке соперников ни одной пары, которая бы не участвовала
в вычислении какой-либо кривой, то мы тем самым найдем все кривые пересе-
чения.
Рис. К.5. Обратный поиск
Приложение Л
Формулировка системных уравнений
конечноэлементного анализа на базе
основного дифференциального
уравнения
В разделе 8.2 мы рассматривали формулировку и решение системных уравнений
конечноэлементного анализа непосредственно на основе интегрального уравне-
ния, описывающего условие равновесия решаемой задачи. Однако большинство
инженеров знакомы с уравнениями равновесия, выраженными в виде дифферен-
циальных уравнений. Например, уравнения равновесия для задач, связанных с
распространением тепла, вибрацией и потоком жидкости, обычно выражены в
дифференциальной форме. В этом приложении мы опишем использование мето-
да взвешенных остатков как одного из методов формулировки уравнений конеч-
ноэлементного анализа на базе основного дифференциального уравнения1.
Метод взвешенных остатков {method of weighted residuals) — это численный метод
получения приближенных решений дифференциальных уравнений. Он состоит
из двух шагов. Сначала выбирается приближенное решение, удовлетворяющее
дифференциальному уравнению и его геометрическим граничным условиям.
Приближенное решение обычно дается в виде линейной комбинации известных
функций с неизвестными коэффициентами. Эти известные функции эквива-
лентны функциям формы, а неизвестные коэффициенты эквивалентны смеще-
ниям узловых точек. Когда это приближенное решение подставляется в диффе-
ренциальное уравнение и граничные условия, получается ошибка, или остаток.
Соответственно, решение исходного дифференциального уравнения эквивалент-
но устремлению этого остатка к нулю в некотором усредненном смысле во всей
области решений. Отсюда возникают интегральные уравнения. На втором шаге
интегральные уравнения решаются относительно неизвестных коэффициентов,
и таким образом получается приближенное решение.
Рассмотрим каждый шаг несколько более подробно. Прежде всего будем счи-
тать, что основное дифференциальное уравнение имеет вид
Вариационный метод основан на минимизации соответствующего функционала, эквива-
лентного дифференциальному уравнению равновесия, и может быть использован для
формулировки уравнений конечноэлемептного анализа из основного дифференциально-
го уравнения. Однако метод взвешенных остатков можно использовать даже в том слу-
чае, когда функционала, эквивалентного дифференциальному уравнению равновесия, не
существует. Формулировка уравнений с помощью вариационного метода представлена
в [166] и [145].
£(ф)-/=0 (Л.1)
в области континуума D. Допустим также, что граничные условия таковы:
<р = Ф на В.
I
Здесь <р — это зависимая переменная, относительно которой ищется решение,/ —
известная функция независимых переменных, L — линейный или дифференци-
альный оператор, а В — граница области D.
Начнем с того, что зададимся приближенным решением фо:
<ps<po=ic,g„ (Л.2)
i=i
где С, — это неизвестные коэффициенты, относительно которых ищется реше-
ние, a gj — принятые нами известные функции независимых переменных. Под-
становка (Л.2) в (Л.1) дает ненулевое значение 1(фа )- /, поскольку фи является
приближенным решением. Обозначим это ненулевое значение как остаток R, вы-
ражаемый формулой
R = L(<pa')-f. (Л.З)
Чтобы минимизировать R во всей области решений, определим взвешенное
среднее значение, которое должно стремиться к нулю во всей области:
$RW,dD = |[£(фо)-/]^(/£) = 0, (Л.4)
D D
где Щ — это весовые коэффициенты. Подставляя в уравнение (Л.4) п различных
весовых коэффициентов, мы можем получить систему из п уравнений, из кото-
рой можно определить неизвестные С; (i = 1, 2.п).
Эти весовые коэффициенты могут быть выбраны по различным критериям.
В методе Галеркина, например, в качестве IV, используются известные функции
gi из уравнения (Л.2). В этом случае система уравнений для метода Галеркина
принимает вид
$Rg,dD = j[Z(Vu)-/]g,d£> = 0 i = l,2.п. (Л.5)
D D
В примере Л.1 мы покажем, как использовать метод Галеркина для формулировки
уравнений конечноэлементного анализа в задаче распространения тепла. Приме-
нение метода Галеркина к решению других типов задач описывается в [145].
Пример Л.1
Рассмотрим одномерную задачу распространения тепла, представленную на
рис. Л.1, а: температура стержня изменяется только в осевом направлении. Смо-
делировав стержень в виде совокупности линейных элементов с двумя узлами
(рис. Л.1, б), вывести системные уравнения конечноэлементного анализа с ис-
пользованием метода Галеркина. Теплопроводность материала равна k, коэффи-
циент конвективного теплообмена равен /?, окружающая температура равна Та,
а интенсивность теплообразования в единице объема равна Q. Предположим,
что излучательным теплообменом можно пренебречь.
в
Рис. Л.1. Пример одномерной задачи распространения тепла
Решение
Как можно узнать из большинства учебников по распространению тепла, основ-
ное уравнение для температуры Т в стержне имеет вид
—[kA—]-hP(T-Ta)+QA=O. (Л.6)
dx{ dx)
Применяя метод взвешенных остатков, получаем
w
-hP(T-To) + QA dV™ =0 (i = 1,2,n), (Л.7)
где п — это общее число узлов, а знак суммирования тп обозначает суммирование
по всем элементам.
Для конкретного случая метода Галеркина уравнение (Л.7) принимает вид
Z U n[|[kA^-\ -hP(T-Та ) + QA
га л Lari dx)
dV™ =0,
(Л.8)
где матрица-столбец N — это матрица функций формы. Таким образом, (Л.8)
представляет собой систему из п уравнений, каждое из которых соответствует
одному из элементов N. Матрица функций формы была определена, когда было
сделано предположение о распределении температуры в стержне:
T = NtT,
где Т — это матрица-столбец температур в узловых точках.
(Л.9)
Временно проигнорируем символ суммы в уравнении (Л.8), поскольку мы легко
сможем произвести суммирование, когда выведем общее выражение для элемен-
та т. Типичный элемент тп соединяет узлы i uj с координатами X, и Х; соответст-
венно (рис. Л.1, в). Исходя из этого, (Л.8) можно переписать так:
Jx> dx
-hP(T-Tu} + QA dx =0.
(Л. 10)
Формулировка системных уравнении конечноэлементного анализа
Обратите внимание, что элемент объема dv заменяется на A dx, где А — это пло-
щадь поперечного сечения в точке X.
Интегрируя первое слагаемое по частям и опустив постоянную площадь, полу-
чим »
' - \Xi ^-kA^dx -\Xi ^hPTdx +\Х) ^hPTadx +\Х' 'fiQAdx = Q. (Л.11)
dx x. ,x< dx dx Jx< ix‘ }x'
Когда будет выполнено суммирование по всем элементам, первое слагаемое каж-
дого элемента в уравнении (Л,И), кроме первого и последнего, уничтожится, по-
скольку в следующий элемент входит такое же слагаемое с обратным знаком.
Поэтому данное слагаемое достаточно вычислить только для элементов с номе-
рами 1 и М, если считать, что элементы нумеруются последовательно, а М — это
общее число элементов.
Чтобы вычислить это слагаемое для первого и последнего элемента, рассмотрим
один из концов тела (рис. Л.2). Внешний поток тепла обозначен как q,, поток
тепла, обусловленный теплопроводностью, — qx, а поток тепла за счет конвек-
ции - <?от.
Рис. Л.2. Теплообмен на границе в одномерной задаче распространения тепла
Баланс энергии на этом конце тела дает
+?s = Мст-
или
=(ln-4s- (Л. 12)
Мы знаем, что поток тепла, обусловленный теплопроводностью, согласно закону
теплопроводности Фурье может быть выражен в виде
—А (Л.13)
dx
Используя формулы (Л. 12) и (Л.13), можно вывести следующее выражение для
NM— в уравнении (Л.11)1 при х = Х-.
dx
, dT
NfeA-—
dx
= ^{-qxA)\x=Xj = ^Aj(-qcv + qs)\x=x. =
(Л.14)
^А^Т-Та))+ЪА^
-ЩА/Г+ЩА^ +fiAjqJ
1 Поток тепла за счет конвекции qa, равен hj(T- TaJ), где Tuj — это окружающая температура
при х = Xj. Более того, qs в точке х = Л, заменяется на <у, в узле/ Вспомните, что точка
х = Xj обозначает один из концов стержня.
। ipruiviHkCHwe л. 4>upMyjiwpuHK.d LHLiew tx уравнении конечноэлементного анализа
dT'
Аналогичное выражение получается для N/M — при х = Х-.
dx
dx
= ] -n^a,t+n/?,a,7;,. +NAigi
(Л.15)
x^Xj
Обратите внимание, что равенство (Л. 14) выполняется только для последнего
элемента, а равенство (Л.15) — только для первого элемента, как было сказано
ранее.
Подставляя уравнения (Л.9), (Л.14) и (Л.15) в уравнение (Л.11), получим:
(-N^A^^T + N^-A;^ +NA^ )|,=Ау +
+ (-N/?,A^TT + N/?,A,Tui + NAi<7, )| V=A.. - (Л.16)
_ p kA^-tdx -p N/?PNtT<1y + fA' NhPTudx + P7 NQAdx = 0.
Jx, Jx, Jx, Jx,
Вынося T за пределы интегрирования в уравнении (Л.16), получаем следующее
уравнение для элемента т:
K‘m)T = (Л.17)
где матрица жесткости элемента К(т) состоит из трех матриц жесткости, или
матриц проводимостей:
K(m) = К0п> +ко») +к<™’, (Л.18)
а узловой вектор силы элемента f<m) состоит из четырех векторов силы:
f("° = + f^m) + f(™> + f^’ (Л.19)
Матрицы в уравнениях (Л.18) и (Л.19) определяются следующим образом:
ко») =
lx< dx dx
К^> = j*7 N/ipN ‘dx;
f(<«> = £JWhPTadx;
f^m) = J*' NqAdx;
=N9,AL=xt+N^A;|.l.=AV
Имея все матрицы жесткости и узловые векторы силы элементов, мы суммируем
их, чтобы получить системную матрицу жесткости и узловой вектор силы в фор-
ме, данной в главе 8. Слагаемые с символом В в нижних индексах имеют ненуле-
вые значения только для первого п последнего элементов суммы.
Приложение М
Сравнение CAD-систем на платформе
Windows1
1 Источник: Computer Graphics World. Vol. 20, No. 5, May 1997, PennWcll Publishing
Company.
Таблица М.1. Сравнение CAD-систем на платформе Windows
Характеристика CADKEY 97 Euclid Quantum 1.0 Helix Design System V4 I DEAS Artisan Series 1.0
Цена $1195 $9995 $5695 $4995
Минимальный объем ОЗУ. Мбайт 16 96 32 64
Требуемый объем диско- вого пространства, Мбайт 50 2000 150 500
Требуемый объем про- странства для файла подкачки Мбайт 20 400 120 185
Ядро геометрического моделирования ACIS 2 1 CAS CADE DesignBase Собственное
Технология моделирова- ния (параметрическое, вариационное, объектно- ориептнрованное) Гибридное моделирование произвольных форм Явное, вариационное, пара- метрическое, объектно- ориентированное Вариационное, парамет- рическое, объектно-ори- ентированное Явное, гибридное, вариа- ционное, параметрическое, объектно-ориентированное
Использование истории Нет Частичное — в надлежащих случаях Да Да
Моделирование поверх- ностей Да, с использованием программ сторонних производителей (FastSURF) Да Да Да
Моделирование агрегатов Да, с использованием программ сторонних производи телей Да Да Да
Характеристика CADKEY 97 Euclid Quantum 1.0 Helix Design System V4 I DEAS Artisan Series 1.0
Параметрическое модели- рование Нет Да Размерные и геометриче- ские параметры, постпа- раметры для 2D Да
Генерация оболочки Нет Да Да Да
Двусторонняя связь с ин- тегрированными прило- жениями Да Да — со всеми приложения ми Quantum Возможность автоматиче- ской разметки с двусто- ронними обновлениями Да, с интегрированными приложениями
Полная визуализация Да. с использованием допол- нительных модулей сторонних производителей Да Да, включена Да, включена
Поддержка конверторов (в стандартной версии) IGES, DXF, DWG, STL, VRML SAT IGES, STEP, DXF, VDA IGES, STL, DXF, DWG, VRML, STEP DXF, IGES, SET, VDA, STL
Дополнительные конвер- торы .SAT-конверторы сторонних производителей Пол ьзовател ьски е Пользовательские Нет
Системы высшего класса напрямую читают п запи- сывают модели — Двусторонний обмен дан- ными с EUCLID 3 и Strim — I_DEAS Master Series читет полностью модели Artisan, записывает только B-rep
Поддержка Интернета VRML HTML, VRML Вывод в VRML для ком- мерческих браузеров; про- грамма трехмерного просмотра для передачи данных поставщикам Отсутствует в первой версии
Графический интерфейс Windows- совм естим ый Motif и Windows Собственный Собственный
Характеристика CADKEY 97 Euclid Quantum 1.0 Helix Design System V4 I I DEAS Artisan Series 1,0
Поддержка OLE 2.0 Контейнер OLE 2: может при- нимать данные OLE, ио не пе- редавать их другим приложениям Планируется Планируется Нет
Поддержка OLE для D&M Планируется Исследуется возможность Исследуется возможность Нет
Интегрированные модули FastSURF, FastNURBS, FastSOLIDS, DRFT-PAK EUCLID Machinist, EUCLID Analyst ShcetMetal Kinenatics Surfacing. Stand alone drafting, Sheet Metal, Fastener catalog
Управление данными о продукте С помощью программ сторон- них поставщиков Интегрированная програм- ма EUCLID Design Manager или др. Helix EDMS Нет
Интегрированный чер- тежный модуль Advanced Drafting Module (включен), DRAFT-РАК (по- ставляется дополнительно но цепе $595) Включен В комплекте с системой моделирования Включен
Интегрированный модуль машинной обработки FastNURBS NC Euclid Machinist В процессе разработки сторонними производите- лями Нет
Сведения о компании Baystate Technologies Мальборо штат Массачусетс Matra Datavision Эндовер штат Массачусетс MicroCadam Inc. Лос-Анджелес, штат Калифорния SDRC Милфорд, штат Огайо
Характеристика Mechanical Desktop VI.2 MicroStation Modeler V5.5 Pro/Engincer 18.0 Advanced Designer Package SolidDcsigncr V4.5
Цена $6250 ($2750 в случае перехода с AutoCAD) $5325 ($4975, если также приобретается обслужива- ние Bentley SELECT) $26 000, включая Pro/E и 13 модулей $6500
Минимальный объем ОЗУ, Мбайт 32 32 64 96
Требуемый объем дисково- го пространства, Мбайт 62 200 400 200
Требуемый объем простран- ства для файла подкачки Мбайт 64 48 128 96
Ядро геометрического моде- лирования ACIS 1 6 ACIS 2.1 Собственное (Рго/Е) Расширенное AC1S
Технология моделирования (параметрическое, вариационное, объектно- ориентированное) Явное, булевское, вариаци- онное, параметрическое, объектно ориентированное Явное, булевское, вариаци- онное, параметрическое, объектио-орпеитнровапиос Параметрическое, объектно- ориентированное Объектпо- орпеитировапное
Использование истории Да Да Да Да
Моделирование поверхностей Да Да Да Да (дополнительный модуль)
Моделирование агрегатов Да Да Да Да
Параметрическое моделирование Да, система параметриче- ского моделирования, ис- пользующая размерные и геометрические ограниче- ния Да, для создания элементов, связей и твердых тел Да. система объектно-ори- ентированного моделиро- вания иа параметрической основе, таблицы семейств, агрегаты и связи а также среда для построения эски- зов с автоматическим мас- штабированием Дополнительно (позволяет применять динамические связи)
Характеристика Mechanical Desktop VI.2 MicroStation Modeler V5.5 Pro/Engineer 18.0 Advanced Designer Package SolidDcsigner V4.5
Генерация оболочки Нет Да Да, одноэлементная, переменная толщина стенки, положительное и отрицательное направления Да
Двусторонняя связь с ин- тегрированными приложе- ниями Да, с интегрированными приложениями MAI Да, с интегрированными приложениями Да, с интегрированными приложениями Нет, связь односторонняя. Изменение в модели вызывает изменение в приложениях
Полная визулизация Да, с помощью дополни- тельных модулей (AutoVision 3D Studio Max) Да, с помощью дополни- тельного модуля (MicroStation Masterpiece) Да, с помощью дополни- тельного модуля Да, с помощью дополнительного модуля от стороннего поставщика
Поддержка конверторов (в стандартной версии) IGES, стандартный ACIS, DWG. DXF IGES, STEP, DWG, CADKEY PRT, Vcrsacad, ACIS SAT IGES, SET, STL, DXF, DWG, VRML, STEP, VDA, Inventor, TIFF, CGM, JPEG, CALS IGES, SAT, STL
Дополнительные конверторы Доступны через сторонних поставщиков Большое количество конверторов, использующих файлы ACIS SAT. Доступны через сторонних поставщиков Catia. CADAM, PDGS, STEP, IDF 2.0 STEP
Системы высшего класса напрямую читают и записывают модели Да. напрямую читает файлы РТ/ Modeler и записывает нейтральный файл В-rep для использования в PT/Modeler —
Поддержка Интернета Да, через Autodesk Integrated Publishing Kit и надстройку Whip! ModelServer Publisher для динамической публикации проектов HTML, VRML, CGM и JPEG Планируется
X арактеристика Mechanical Desktop VI.2 MicroStation Modeler V5.5 Pro/Engineer 18.0 Advanced Designer Package SolidDesigner V4.5
Графический интерфейс Windows-совместимый Motif и Windows- совместимый Собственный Motif
Поддержка OLE 2.0 Да Да Поддерживает OLE 2.0, только функции копирова- ния и вставки Планируется
Поддержка OLE для D&M Нет Нет Нет Планируется
Интегрированные модули Доступны через сторонних поставщиков MAI MicroStation Matsterpiece, MicroStation TeamMate 96, MicroStation 95, MicroStation PowcrDraft Свыше 50 интегрированных модулей Freeform, Dynamic Relations, Sheet Advisor, PC Blink, ME10, Solid Libraries, Dynamic Viewer
Управление данными о продукте WorkCenter (дополнительно поставляемый модуль) MicroStation TeamMate 96 (дополнительно поставляемый модуль) Pro/PDM и Pro/INTRALINK Интегрирован в WorkManager
Интегрированный чертеж- ный модуль Включен AutoCAD Включен Включен МЕЮ
Интегрированный модуль машинной обработки Через сторонних поставщи- ков, например HYPERM1LL от Open Mind Через сторонних поставщи- ков, например ESPRIT/MS Рго/MFG Solutions предла- гает несколько интегриро- ванных продуктов, а также несколько полностью интег- рированных продуктов, таких как pro/NC от ICAM Через сторонних поставщиков
Сведения о компании Autodesk, Inc. Сан-Рафаэль, штат Калифорния Bentley Systems Экстон, 1 штат Пенсильвания Parametric Technology Corp. Уолтхэм, штат Массачусетс CoCreate Software Форт Коллинс, штат Колорадо
Характеристика SolidWorks 97 UniGraphics II V12 Solid Edge 3.0
Цена $3995, включаясистему для расчета заготовок деталей, штампуемых из листового металла В среднем $17 000 (в зависимости от приобретаемых модулей) $5995
Минимальный объем ОЗУ, Мбайт 48 64 32
Требуемый объем дискового про- странства, Мбайт 25 150 75-100
Требуемый объем пространства для файла подкачки, Мбайт 64 135 150
Ядро геометрического моделирова- ния Parasolid Parasolid ACIS 2.0
Технология моделирования (параметрическое, вариационное, объектио-орнентированпое) Параметрическое, объектно-ориен- тированное Явное, гибридное, булевское, ва- риационное, параметрическое, объ- ектно-ориентированное Параметрическое, объектно- ориентированное
Использование истории Да Да Да
Моделирование поверхностей Да Да Нет, поддерживает только В-гср-объсмы
Моделирование агрегатов Да Да Да
Параметрическое моделирование Да, полное параметрическое моде- лирование, иолные/частичные размерные, геометрические и сборочные ограничения Да, полностью ассоциативное Да, полное параметрическое моделирование с использован нем размерных н геометрических ограничений
Генерация оболочки Да Да, поддерживает как положитель- ное, так и отрицательное направле- ние. Добавляет новую топологию (обычно ребра), когда это необходимо. Да
Характеристика SolidWorks 97 UniGraphics II V12 Solid Edge 3.0
Двусторонняя связь с интегриро- ванными приложениями Да Да Да. через OLE-актпвпзацню на месте в среде Solid Edge. Solid Edge поддерживает интеграцию с приложениями сторонних постав- щиков через OLE для D&M
Полная визулпзация Да, дополнительный модуль (PhotoWorks) Да, дополнительный модуль (UG/Photo) Да, дополнительный модуль от стороннего поставщика
11оддержка конверторов (в стандартной версии) IGES, SAT. STL. DXF. DWG, Parasolid Binary IGES, DXF, STEP AP203, STEP AP214, Interleaf, VRML, фай- лы передачи Parasolid Стандартный ACIS (вер- сии 1.5-2.0), IGES, STEP, VDA/FS, DWG, DXF, DGN)
Дополнительные конверторы Доступны через сторонних постав- щиков Несколько конверторов от сторон- них поставщиков для CATIA, CADDS, Medusa, ACIS и т. д. Доступны через сторонних поставщиков
Системы высшего класса напрямую читают н записывают модели Системы моделирования на базе Parasolid могут напрямую читать геометрию Да Solid Edge экспортпруегфайлы проектов в EMS
Поддержка Интернета VRML, HTML VRML CGM
Графический интерфейс Windows-совместимый Motif, ANSI Y14 Windows-совместимый
Поддержка OLE 2.0 Да Планируется Да
Поддержка OLE для D&M Планируется Планируется Да, включая повое расширение Geometry and Topology
Интегрированные модули Доступны через сторонних постав- щиков Более 50 интегрированных моду- лей Assembly, Part, Drafting, Data Management, Sheet Metal
Управление данными о продукте Полностью интегрированное реше- ние от стороннего поставщика — SmartTcam Works, а также другие (дополнительно поставляемые мо- дули) UG/Manager для инженерных дан- ных, IMAN для полного управле- ния данными о продукте Встроенная возможность управления данными рабочей группы в Solid Edge. Корпоративное управление данными доступно через сторонних поставщиков
Solid Edge 3.0 Средства производственного черче- ния включены в Solid Edge, а также доступны в виде автономной про- граммы Solid Edge Drafting Через сторонних поставщиков Intergraphic Software Solutions Хантсвилль, штат Алабама
UniGraphics II V12 Да, UG/Drafting можно использо- вать в качестве самостоятельного пакета или для черчения в контек- сте большого агрегата Возможность полностью ассоциа- тивной и интегрированной машинной обработки: модули UG/Tool Path, UG/Flow Cut, UG/Lathe и др. Linigraphics Solutions Мэриленд Хейте, штат Миссури
SolidWorks 97 Да, включен бесплатно Через сторонних поставщиков SolidWorks Corp. Конкорд, штат Массачусетс
Характеристика Интегрированный чертежный модуль Интегрированный модуль машин- ной обработки Сведения о компании
Литература
1. Amirouche, М. L. A Computer-Aided Design and Manufacturing, Co. Prentice-
Hall, Englewood Cliffs, NJ, 1993.
2. Armstrong, C. G. «Modeling Requirements for Finite-element Analysis», Com-
puter-Aided Design, Vol. 26, No. 7, pp. 573-578, 1994.
3. Armstrong, C. G., Robinson, D. J., Mckeage, R. M., Li, T. S., Bridget!, S. J., Do-
naghy, R. J., and McGleenan, C. A. «Medials for Meshing and More», 4th Annual
International Meshing Roundtable, (sponsored by Sandia National Laboratories),
October 16-17, 1995.
4. Anderson, R. O., «Detecting and Eliminating Collisions in NC Machining», Com-
puter-Aided Design, Vol. 10, No. 4, pp. 231-237, 1978.
5. Ashley, S. «Manufacturing Firms Face the Future», Mechanical Engineering,
pp. 70-74, June 1997.
6. Avriel, M. Nonlinear Programming-Analysis and Methods, Prentice-Hall, Engle-
wood Cliffs, NJ, 1976.
7. Barfield, W. and Furness, T. A. III. Virtual Environments and Advanced Inter-
face Design, Oxford University Press, New York, 1995.
8. Barnhill, R. E., Birkhoff, G., and Gordon, W. J. «Smooth Interpolation in Trian-
gles», J. Approx. Theory, Vol. 8, pp. 114-128, 1973.
9. Bartels, R. H., Beatty, J. C., and Barsky, B. A. An Introduction to Splines for Use
in Computer Graphics and Geometric Modeling, Morgan Kaufmann Publishers,
Los Altos, CA, 11)87.
10. Bathe, K.-J. Finite Element Procedures in Engineering Analysis, Prentice Hall,
Englewood Cliffs, NJ, 1982.
11. Baumgart, B. «Winged-edge Polyhedron Representation», Stanford Artificial In-
telligence Report No. CS-320, 1972.
12. Baumgart, В. «А Polyhedron Representation for Computer Vision», Proceedings
of the National Computer Conference, 1975.
13. Beasley, D., Bull, D. R., and Martin, R. R. «An Overview of Genetic Algorithm:
Part I, Fundamentals», University Computing, Vol. 19, No. 2, pp. 58-69, Inter-
University Committee on Computing, 1993.
14. Beckert, B. A. «Venturing into Virtual Product Development», Computer-Aided
Engineering, pp. 45-50, May 1996.
15. Bedworth, D. D., Henderson, M. R., and Wolfe, P. M. Computer Integrated De-
sign and Manufacturing, McGraw-Hill, New York, 1991.
542
Литература
16. Beier, К. «Virtual Reality in Automotive Design and Manufacturing», SAE Tech-
nical Paper 94C030, 1994.
17. Bendsoe, M. P. and Kikuchi, N. «Generating Optimal Topologies in Structural
Design Using a Homogenization Method», Computer Methods in Applied Me-
chanics and Engineering, Vol. 71, pp. 197-224, 1988.
18. Bendsoe, M. P., Diaz, A., and Kikuchi, N. «Topology and Generalized Layout Op-
timization of Elastic Structures», In Bendsoe and Scares (eds.), Topology Design
of Structures, Kluwer Academic Publishers, Dordrecht, Holland, 1992.
19. Bezier, P. The Mathematical Basis of the UNISURF CAD System, Butterworths,
London, 1986.
20. Boehm, W., Farm, G., and Kahmann, I. «А Survey of Curve and Surface Methods
in CAGD», Computer-Aided Geometric Design, Vol. 1, pp. 1-60, 1984.
21. Boehm, W. and Prantzsch, H. «Geometric Concepts for Geometric Design», A. K.
Peters, Wellesley, MA, 1994.
22. Botkin, M. E., Yang, R. J., and Bennett, J. A. «Shape Optimization of Three-di-
mensional Stamped and Solid Automotive Components», in The Optimum Shape,
Plenum Press, New York, 1986.
23. Braid, L, Hillyard, R., and Stroud, I. «Stepwise Construction of Polyhedra in
Geometric Modeling», CAD Group Document No. 100, Cambridge University
Computer Laboratory, 1978.
24. Breltinger, F. «Rapid Tooling for Simultaneous Product and Process Develop-
ment: Part II», RapidNEWS, Vol. 5, No. 6, pp. 52-57,1997.
25. Briabant V. and Fluery, C. «Shape Optimal Design Using В-splines», Computer
Methods in Applied Mechanics and Engineering, Vol. 44, No. 3, pp. 247-267,
1984.
26. Budynas, R. G. Advanced Strength and Applied Stress Analysis, McGraw-Hill,
New York, 1977.
27. Bykat, A. «Automatic Generation of Triangular Grid: I—Subdivision of a General
Polygon into Convex Subregions; II—Triangulation of Convex Polygons», Int. J.
Numer. Meth. Eng., Vol. 10, pp. 1329-1342, 1976.
28. Carrington, J. «Modeling Entire Products», Computer-Aided Engineering,
pp. 30-34, August 1997.
29. Cavendish, J. «Automatic Triangulation of Arbitrary Planar Domains for the Fi-
nite Element Method», Int. J. Numer. Meth. Eng., Vol. 8, pp. 679-696, 1974.
30. Cavendish, J. C„ Field, D. A., and Frey, W. H. «An Approach to Automatic
Three-dimensional Finite Element Mesh Generation», Int. J. Numer. Meth. Eng.,
Vol. 21, pp. 329-347, 1985.
31. Cerny, V. «Thermodynamical Approach to the Traveling Salesman Problem:
An Efficient Simulation Algorithm», J. of Optimization Theory and Applications,
Vol. 45, No. 1,1985.
32. Chang, T. C., Wysk, R. A., and Wang, H. P. Computer Aided Manufacturing, 2nd
ed„ Prentice-Hall, Englewood Cliffs, NJ, 1998.
Литература
543
33. Chapman, С. D. «Structural Topological Optimization via the Genetic Algorithm»,
MS thesis, Dept, of Meeh. Eng., MIT, 1994.
34. Chappel, I. T. «The Use of Vectors to Simulate Material Removed by Nume-
rically Controlled Milling», Computer-Aided Design, Vol. 15, No. 3, pp. 156-158,
1983.
35. Chiyokura, H. Solid Modeling with DESIGNBASE: Theory and Implementation,
Addison-Wesley, Reading, MA, 1988.
36. Clough, R. W. «The Finite Element in Plane Stress Analysis», Proceedings of 2nd
A.S.C.E. Conference on Electronic Computation, September, 1960.
37. Cohen, E., Lyche, T., and Riesenfeld, R. «Discrete B-splines and Subdivision Tech-
niques in Computer-Aided Geometric Design and Computer Graphics», Compu-
ter Graphics and Image Processing, Vol. 14, pp. 87-101, 1980.
38. Cohen, E., Lyche T., and Schumaker, L. L. «Algorithms for Degree-Raising of
Splines», ACM Transactions on Graphics. Vol. 4, No. 3, pp. 171-181, 1985.
39. Conte S. D. and de Boor, C. Elementary Numerical Analysis, McGraw Hill, New
York, 1980.
40. Coons, S. A. «Surfaces for Computer-Aided Design of Space Forms», Technical
Report MAC-TR 44, M.I.T., Cambridge, MA, 1967.
41. Cox, M. G. «The Numerical Evaluation of В-splines», J. Inst. Maths. Applies.,
Vol. 15, pp. 95-108, 1972.
42. Crandall, S. H., Karnopp, D. C., Kurtz Jr., E. F., and Pridmore-Brown, D. C.
Kurtz Jr , E. F., and Primdore-Brown, D. C. Dynamics of Mechanical and Elec-
tromechanical Systems, McGraw-Hill, New York, 1968.
43. de Boor, C. «On Calculating with В-spline», J. of Approx. Theory, Vol. 6,
pp. 52-60, 1972.
44. Deitz, D. «Re-engineering Virtual Prototypes», Mechanical Engineering,
pp. 76-78, September 1997.
45. Drews, P. and Weyrich, M. «Virtual Manufacturing», VR News, Vol. 6,
pp. 18-22, 1997.
46. Du, W.-H. and Schmitt, F. J. M. «On the G1 Continuity of Piecewise Bezier Sur-
faces: A Review with New Results», Computer-Aided Design, Vol. 22, No. 9,
pp. 556-573, 1990.
47. Eastman, C. and Weiler, K. «Geometric Modeling Using the Euler Operators»,
Conference on Computer Graphics in CAD/CAM Systems, May 1979.
48. Farin, G. Curves and Surfaces for Computer-Aided Geometric Design, Academic
Press, San Diego, CA, 1990.
49. Faux, I. D. and Pratt, M. I. Computational Geometry for Design and Manufac-
ture, Ellis Horwood, Chichester, Sussex. UK, 1979.
50. Foley, J. D., van Dam, A., Feiner, S. K., and Hughes, J. F. Computer Graphics:
Principles and Practice, Addison-Wesley, Reading, MA, 1990.
51. Gain, P. R. «New Generation of PDM Emerges», Computer-Aided Engineering,
Vol. 15, No. 11, pp. 52-58, 1996.
544
Литература
52. Garey, М. R. and Johnson, D. S. «Computers and Intractability: A Guide to the
Theory of NP-Completeness», Freeman, New York, 1979.
53. Gascoigne, B. «PDM: The Essential Technology for Concurrent Engineering»,
1997
54. Geller, T. L„ Lammers, S. E„ and Mackulak, G. T. «Methodology for Simulation
Application to Virtual Manufacturing Environment», Proceedings of the 1995
Winter Simulation Conference, pp. 909-916, 1995.
55. Goldberg, D. E. «Computer-Aided Gas Pipeline Operation Using Genetic Algo-
rithm and Rule Learning», Ph.D. thesis, Civil Engineering Dept., University
of Michigan, 1989a.
56. Goldberg, D. E. Genetic Algorithm in Search, Optimization and Machine Lear-
ning, Addison-Wesley, Reading, MA, 1989b.
57. Green, P. J. and Sibson, R. «Computing Dirichlet Tessellations in the Plane», The
Computer J. Vol. 21, No. 2, pp. 168-173, 1977.
58. Grefenstette, J. J. A User's Guide to GENESIS Version 5.0, October 1990.
59. Groover, M. P. and Zimmers, E. W. CAD/CAM Computer-Aided Design and
Manufacturing, Prentice-Hall, Englewood Cliffs, NJ, 1984.
60. Gursoz, E. L., Choi, Y., and Prinz, F. B. «Vertex-based Representation of Non-
manifold Boundaries», in Geometric Modeling for Product Engineering, North-
Holland, Amsterdam, 1990.
61. Haftka, R. T. and Grandhi, R. V. «Structural Shape Optimization—A Survey»,
Computer Methods in Applied Mechanics and Engineering, Vol. 57, pp. 91-106,
1986.
62. Haftka, R. T. and Gurdal, Z. Elements of Structural Optimization, 3rd ed., Klu-
wer Academic Publishers, Dordrecht, Holland, 1992.
63. Hartley, P. J. and Judd, C. J. «Parametrization and Shape of B-spline Curves for
CAD», Computer-Aided Design, Vol. 12, No. 5, pp. 235-238, 1980.
64. Heighway, E. А. «А Mesh Generator for Automatically Subdividing Irregular
Polygons into Quadrilaterals», IEEE Transaction on Magnetics, Vol. 6,
pp. 2535-2538, 1983.
65. Held, M. On the Computational Geometry of Pocket Machining, Springer-
Verlag, Berlin, 1991.
66. Helsel, S. «High-Res VR Displays», Computer Graphics World, pp. 49-54, May
1997.
67. Herrmann, L. R. «Laplacian-isoparametric Grid Generation Scheme», J. of Eng.
Meeh. Div., Proceedings ofAmer, Soc, Civil Eng., Vol. 102 (EM5), 1976.
68. Hildebrand, F. B. Advanced Calculus for Applications, Prentice-Hall, Englewood
Cliffs, NJ, 1976.
69. Hoffmann, C. M„ Hopcroft, J. E., and Karasick, M. S. «Robust Set Operations on
Polyhedral Solids», IEEE Computer Graphics and Applications, pp. 50-59,1989.
70. Но-Le, K. «Finite Element Mesh Generation Methods: A Review and Classifica-
tion», Computer-Aided Design, Vol. 20, No. 1, pp. 27-38, 1988.
Литература
545
71. Holland, J. H. «Adaptation in Natural and Artificial Systems», University of
Michigan, Ann Arbor, 1975.
72. Hoschek, J and Lasser, D. Fundamentals of Computer Aided Geometric Design,
A. K. Peters, Wellesley, MA, 1993.
73. Imam, M. H. «Three-dimensional Shape Optimization», Int. J. Num. Meth. Eng.,
Vol. 18, pp. 661-673, 1982.
74. ISO TC 184 / SC4 / WG5 N9, EXPRESS Language Reference Manual, Interna-
tional Organization for Standardization, 1991.
75. Jacobs, P. F. «Rapid Prototyping and Manufacturing», Society of Manufacturing
Engineers, pp. 1-23, 153-220, 1992.
76. Jacobs, P. F. Recent Advances in Rapid Tooling from Stereolithography, 3D Sys-
tems, Valencia, CA, 1996a.
77. Jacobs, P. F. «Stereolithography and Other RP&M Technologies», Soc. Manufac-
turing Engineers, 1996b.
78. Jain, P., Fenyes, P., and Ritcher, R. «Optimal Blank Nesting Using Simulated An-
nealing», Advances in Design Automation, ASME, DE—Vol. 23, No. 2,
pp. 109-116,1991.
79. Jaques, M. W. S., Stickland, P., and Oliver, T. J. «Design by Virtual Manufac-
turing: A Review», J. Design and Mfg., Vol. 5, pp. 241-250, 1995.
80. Jerad, R. B., Drysdale, R. L., Hauck, K., Schaudt, B., and Magewick, J. «Methods
for Detecting Errors in Numerically Controlled Machining of Sculptured Surfaces»,
IEEE Computer Graphics and Applications, Vol. 9, No. 1, pp. 26-38, 1989.
81. Jones, F. H. and Martin, L. The AutoCAD Database Book, Ventana Press, 3rd
ed„ 1989.
82. Jung, Y. H. and Lee, K. «Tetrahedron-based Octree Encoding for Automatic Mesh
Generation», Computer-Aided Design, Vol. 25, No. 3, 1993.
83. Kalpakjian, S. Manufacturing Processes for Engineering Material, 2nd ed., Addi-
son-Wesley, Reading, MA, p. 541, 1992.
84. Kikuchi, N. «Adaptive Grid Design Methods for Finite Element Analysis»,
Comput. Meth. Appl Meeh. Eng., Vol. 55, pp. 129-160, 1986.
85. Kirkpatrick, S., Gelatt Jr., C. D., and Vecchi, M. P. «Optimization by Simulated
Annealing», Science, Vol. 220, No. 4598, pp. 671-680, 1983.
86. Kirsch, U. Optimum Structural Design: Concepts, Methods and Applications,
McGraw-Hill, New York, 1981.
87. Kobayashi, K. and Nakazuka, H. «STEP Room, Parti: Parametric Definition of
Geometric and Topological Representation with Three Schema», Nikkei Mechan-
ical, pp. 88-99, June 1993 (In Japanese).
88. Kochan, D. Solid Freeform Manufacturing, Elsevier-North Holland, Amsterdam,
1993.
89. Kohn, R. V. and Strang, G. «Optimal Design and Relaxation of Variational Prob-
lems», Communic. Pure and Appl. Math , Vol. 39, (Part 1), pp. 113-137; (Part 2),
pp. 139-182; (Part 3), pp. 333-350, 1986.