Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Основы САПР. CAD CAM CAE

.pdf
Скачиваний:
12
Добавлен:
19.11.2023
Размер:
29.79 Mб
Скачать

122

Глава 5. Системы геометрического моделирования

 

 

 

А-В

~

Рис. 5.7. Разность примитивое

Еще одна функция моделирования реализуется подобно булевским операциям. Это функция разрезания объемного тела плоскостью, после применения которой

получается тело из двух частей. Того же результата можно достичь, применяв

операцию вычитания к объемному телу, которое должно быть разрезано, и кубу,

одной из граней которого является секущая плоскость. По этой причине функ­

ция разрезания также может быть отнесена к булевским операциям.

При использовании булевских операций следует быть внимательным, чтобы не получить в результате тело, не являющееся объемным (рис. 5.8). Некоторые

системы выдают предупреждение о возможности получения некорректного ре­

зультата, другие могут просто завершить работу с сообщением об ошибке. Сис­ темы немногообразного моделирования способны обрабатывать и такие спе­

цифические ситуации, поскольку они работают не только с объемными телами,

но и с поверхностями и каркасами.

Рис. 5.8. Некорректная булевекая операция

Заметание

Функция заметания (sweepiпg) формирует объемное тело трансляцией или вра­

щением замкнутой плоской фигуры. В первом случае процесс формирования на­

зывается заметанием при трансляции (translational sweepiпg), во втором слу­ чаепостроением фигуры вращения (swiпgiпg, rotatioпal sweeping). Если плоская:

фигура будет незамкнутой, в результате заметания получится не объемное тело,

а поверхность. Такой вариант заметания поддерживается системами поверхност­

ного моделирования.

Заметание при трансляции и вращении представлено на рис. 5.9 и 5.10 соответ­

ственно. Хотя рис. 5.10 демонстрирует вращение на 360°, большинство систеl'd

твердотельного моделирования позволяют поворачивать фигуру на произволь­

ный угол.

124

Глава 5. Системы геометрического моделирования

Скругление или плавное сопряжение

Скруглеиие (1-ounding), или плавиое сопряжеиие (Ьlending), используется для мо­ дифицирования существующей модели, состоящего в замене острого ребра или

вершины гладкой криволинейной поверхностью, векторы нормали к которой не­ прерьшно продолжают векторы нормали поверхностей, сходившихся у исходного

ребра или вершины. Замену острого прямого ребра цилиндрической поверхно­

стью демонстрирует рис. 5.12, а. Векторы нормали к цилиндрической поверхно­ сти продолжаются векторами соседних ,плоских граней. Замена острой вершины

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

а не удалением материала показан на рис. 5.12, б. Такая процедура называется

выкружкой (jilleting).

8

б

Рис. 5.12. Скругление ребер

Рис. 5.13. Скругление вершин

Поднятие

Подиятие.м. (lifting) называется перемещение всей грани объемного тела или ее

части в заданном направлении с одновременным удлинением тела в этом на­

правлении (рис. 5.14, а). Если нужно поднять только часть грани (рис. 5.14, б),

эту грань необходимо заранее разделить. Для этого достаточно добавить ребро, которое будет разбивать грань на нужные части. Но внутри системы при этом

будут произведены некоторые дополнительные действия, результатом которых

станет деление грани. Обычно при этом обновляются сведения о связности по­

верхности. Внутри системы подобные действия выполняются при помощи опе­ раторов Эйлера, о которых речь пойдет в разделе 5.3.3.

8

б

 

Рис. 5.14. Поднятие грани и ее части

При работе с функцией поднятия необходимо правильно указывать направление

и дальность поднятия, чтобы добавленная часть тела не пересекалась с исходной (рис. 5.15). Пересечение не вызовет проблем, если функция поднятия реализова­

на так, что при пересечении выполняется объединение добавленной части с ис-

5.3. Сисrемы твердотельного моделирования

125

ходным телом. Однако изначально функция поднятия разрабатывалась для не­

больших местных изменений, поэтому ситуация, показанная на рис. 5.15, дает некорректное объемное тело.

Рис. 5. 15. Самопересечение в результате поднятия

Моделированиеграниц

Функции м.оделироваиия zpauuц используются для добавления, удаления и изме­ нения элементов объемного тела - его вершин, ребер и граней. Следовательно, процедура, использующая функции моделирования границ, будет выглядеть

точно так же, как в системах поверхностного моделирования. Другими словами,

вначале создаются точки, затем создаются ребра, соединяющие эти точки, и на­

конец, граничные ребра определяют поверхность. Однако в системах твердотель­

ного моделирования, в отличие от систем поверхностного моделирования, нуж­

но определить все поверхности таким образом, чтобы образовался замкнутый

объем. Создание клина при помощи функций моделирования границ иллюстри­

рует рис. 5.16. Процедура включает создание точек, граней и поверхностей.

Р1.Р5

РЗ•

Рис. 5. 16. Создание тела при помощи функций моделирования границ

Создавать объемное тело исключительно при помощи функций моделирования

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

образуемым заметанием или скиннингом. Однако функции моделирования гра­ ниц удобно применять для изменения формы уже существующего тела. Верши­

ну можно передвинуть в новое положение, изменив соответствующим образом соседние ребра и грани (рис. 5.17). Прямое ребро можно заменить кривлоиней­

ным, в результате чего изменятся связанные грани и вершины (рис. 5.18). Пло­

скую поверхность можно заменить на криволинейную с модификацией ребер

и вершин (рис. 5.19). Иногда плоскую поверхность можно заменять криволиней-

126

Глава 5. Системы геометрического моделирования

ной, импортированной из системы поверхностного моделирования. Перечислен­

ные функции моделирования называются функциями тоикого редактироваиия

(tweaking functions). Они используются для моделирования тел, ограниченных

криволинейными поверхностями, поскольку такие поверхности легко получать

из плоских граней многогранника.

Рис. 5.17. Модификация объекта первмещением вершины

Рис. 5. 18. Модификация объекта заменой ребра

Рис. 5. 19. Модификация объекта заменой поверхности

Объектно-ориентированное моделирование

Обьектно-ориеитироваииое .моделироваиие (feature-based тodeling) позволяет конструктору создавать объемные тела, используя привычные элементы форм (features). Созданное тело несет в себе информацию об этих элементах в допол­

нение к информации об обычных геометрических элементах (вершинах, ребрах.

гранях и др.). Например, конструктор может давать команды типа •сделать от­ верстие такого-то размера в таком-то месте~ или •сделать фаску такого-то раз­

мера в таком-то месте~. и получившаяся фигура будет содержать сведения о на­ личии в конкретном месте отверстия (или фаски) конкретного размера. Набор

доступных в конкретной программе элементов формы зависит от спектра приме­ нения этой программы.

Большинством систем объектно-ориентированного моделирования поддержива­

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

128

Глава 5. Системы геометрического моделирования

 

 

 

Один из недостатков объектно-ориентированного моделирования заключается в

том, что система не может предоставить все элементы, нужные для всех возмож­

ных приложений. Для каждой задачи может потребоваться свой набор элементов.

Чтобы исключить этот недостаток, большинство сИстем объектно-ориентирован­

ного моделирования поддерживают какой-либо язык, на котором пользователь при необходимости может определять свои собственные элементы. После опре­

деления элемента необходимо задать параметры, указывающие его размер. Эле­ менты, как и примитивы, могут быть разного размера, а задаются размеры пара­

метрами в момент создания элемента. Создание элементов разного размера путем присnаивания различных значений соответствующим параметрам является раз­

новидностью параметрического моделирования.

Параметрическое моделирование

Параметрическое моделироваиие (parametric modeling) заключается в том, что

конструктор определяет форму заданием геометрических ограничений и некото­

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

соседнему прямому и т. д. К размерным данным относятся не только заданные размеры формы, но и соотношения между размерами. Соотношения записыва­

ются конструктором в виде математических· уравнений. Таким образом, парамет­

рическое моделирование заключается в построении формы путем решения урав­ нений, выражающих геометрические ограничения, и уравнений, описывающих

заданные размеры и соотношения между ними.

В параметрическом моделировании построение формы обычно осуществляется в

приведеиной ниже последовательности.

1.Строится грубый набросок плоской фигуры.

2.В интерактивном режиме вводятся геометрические ограничения и данные о

размерах.

3. Строится плоская фигура, отвечающая ограничениям и требованиям к разме­

рам.

4.Шаги 2 и 3 повторяются с изменением ограничений или размеров до тех пор,

пока не будет получена нужная модель (рис. 5.22).

5.Объемное тело создается заметанием или вращением плоской фигуры. Тол­

щина и угол поворота также могут стать размерными параметрами, что позво­

лит при необходимости легко изменить созданную трехмерную форму.

Обратите внимание, что форма в параметрическом моделировании изменяется

не непосредственно, а через использование геометрических ограничений и раз­

мерных соотношений. Поэтому конструктор может разработать множество аль­

тернативных проектов, не заботясь о деталях, но сосредоточившись на функцио­

нальных аспектах.

Разновидности параметрического моделирования выделяются по методам ре­

шения уравнений, описывающих геометрнчес1ше ограничения. Системы первого

типа решают уравнения последовательно, а системы второго типа - одновремен­

но. В первом случае форма тела зависит от порядка введения ограничений. Во

5.3. Системы твердотельного моделирования

129

втором случае одна и та же форма получается независимо от последователь­

ности введения ограничений, но в случае их конфликта могут возникнуть про­

блемы.

70

..1

 

Рис. 5.22. Изменение формы через ограничения

1

5.3.2. Структура данных

В предыдущем разделе мы описали разновидности функций моделирования,

предоставляемых системами твердотельного моделирования. Мы знаем, что при

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

тел? В этом разделе мы расскажем о структурах данных, используемых для хра­

нения математических описаний такого рода.

Структуры данных, используемые для описания объемных тел, обычно делятся

на три типа в зависимости от того, какие тела ими описываются. Первая структу­

ра представляет собой дерево, описывающее историю применения булевских операций к примитивам. Журнал операций называется коиструктuвиьш пред­

ставлеиием обьемиой гeoJtteтpuu ( Constructive Solid Geoтetty - CSG 1·epresenta-

tion). Дерево называется деревом CSG (GSG tree). Вторая структура содержит сведения о границах объема (вершинах, ребрах, гранях и их соединении друг

с другом). Это представление называется zpmtuчuьt}tt npeдcтaвлeuueJtt (boundaty representation - B-rep), а структура данных - структурой В-1·ер (B-rep data

structure). Многие структуры B-rep строятся по-разному в зависимости от того, r<акой элемент считается основным при сохранении сведений о связности

(см. далее). Третья структура представляет объем в виде комбинации элементар­

ных объемов (например, кубов). Можно придумать множество моделей разложе­

ния, выбирая разные элементарные объемы, но ни одна из них не может точно

описать объемное тело.

ДеревоСSG

Вспомните, что дерево CSG содержит историю применения булевских опера­ ций к примитивам. Рассмотрим тело. изображенное на рис. 5.23, а. Его историю

булевских операций можно представить в виде дерева так, r<ак показано на

рис. 5.23, б. Это дерево может быть представлено взаимосвязанными элемен­

тами данных (рис. 5.23, в). Эле.менты данных реализуются на языке С (лис­

тинг 5.1).

130

Глава 5. Системы геометрического моделирования

а

б

Нулевой указатель

в

Рис. 5.23. Пример дерева CSG

~истинг 5.1. Реализация сrруктуры дерева CSG на языке С

struct operator {

int

op_type.

/*оnератор объединения. пересечения или разности*/

 

L type.

/*

тиn левого узла: О

оnератор.

1

nри"итив

*/

 

R-type:

/*

тиn nравого узла: О

оператор.

1

nримитив

*/

void

- *L

ptr.

/* левый узел */

 

 

 

 

 

*R ptr-

/*

nравый

узел */

 

 

 

 

 

*p=ptr:

/*

родительский узел */

 

 

 

 

struct

primitive

{

 

/* тиn nримитива */

 

 

 

1nt

prim type:

 

*/

 

 

double pos x.-pos у.

pos z:

/*nоложение

экземnляра

 

 

double ori=x. ori~.

ori_z:

/* ориентация экземnляра */

 

 

void

*attribute:

 

/* значения

размеров nримитива */

 

Дерево CSG обладает следующими преимуществами:

Оструктура данных проста, а их представление компактно, что облегчает обра­ ботку;

Ообъемное тело, описываемое деревом CSG, всегда является корректным, то есп, его внутренний объем однозначно отделен от внешнего. Примерам не­

корректного объемного тела является тело с лишним i)ебром. Для него деле­

ние объема на внутренний и внешний вблизи вершины, к которой подходит это ребро, оказывается неоднозначным;

Опредставление CSG всегда может быть прсобразоnано к соответствующему представлевша В-Rep. Это позволяет взаимодействовать с программами, ори­ ентированными на использование В-Rep;

Опараметрическое моделирование легко реализуется изменением параметров

соответствующих примитиnоn (рис. 5.24).

5.3. Системы твердотельного моделирования

131

Есть у этого дерева и недостатки:

D поскольку дерево CSG хранит историю применения буленеких операций, в процессе моделирования могут использоваться только они. Это требование жестко ограничивает диапазон моделируемых объектов. Более того, оно ис­ ключает использование удобных функций локального изменения, таких как

поднятие и скругление;

Dдля получения сведений о граничных поверхностях, их ребрах и связях между этими элементами из дерева CSG требуются сложные вычисления. К сожале­

нию, сведения о границах нужны для множества приложений, в частности

для отображения тел. Для того чтобы отобразить затушеванное изображение

или чертеж объемного тела, нужно иметь информацию о гранях или верши­

нах этого тела (см. главу 3). Поэтому представление CSG является недостаточ­

ным для интерактивного отображения тел и манипулирования ими. Другой

пример - расчет траектории движения фрезы с ЧПУ для обработки поверх­

ностей тела. Для этой задачи нужны сведения о поверхностях, их ребрах и

связности. Получить все эти сведения из дерева CSG очень непросто.

аб

Рис. 5.24. Изменение параметров тела

Из-за этих недостатков разработчики программ, основанных на представлении

CSG, стараются добавить соответствующие сведения о границах. Такое комби­

нированное математическое представление называется гибридным и требует

поддержания согласованности между двумя структурами данных.

Структура данных B-Rep

Границы объемных тел состоят из элементарных геометрических объектов: вер­

шин, ребер и граней1В структуре данных В-Rep хранятся все эти элементы вме­

сте со сведениями о том, как они соединены друг с другом. Одна из простейших

структур данных, если не самая простая, приведена в табл. 5.1. Структура дан­

ных представляет объемное тело, изображенное на рис. 5.25. В таблице граней

хранится список ограничивающих ребер для каждой грани. Последовательность ребер для каждой грани дается обходом против часовой стрелки, если смотреть

1 Грань - часть граничной поверхностн, граница которой состоит из криволинейных сег­

ментов, при nересечении которых nроисходит существенное изменение вектора нормали

к nоверхности. Криволинейные сегменты, ограничивающие грань, называются ребрами.

Точки, в которых вс'fречаются соседние ребра, называются вершинами.

Соседние файлы в папке книги