Основы САПР (CAD,CAM,CAE) - (Кунву Ли)(2004) (951262), страница 29
Текст из файла (страница 29)
(КЕЦ Создать (уиичтажить) ребро, кольцо МЕЧ (КЕЧ) Создать (уиичтажить) ребра, вершину МЧЕ (кче) Создать (уиичтажить) вершину, ребра Ц" Л Х МЕКН (КЕМН) Создать (уничтожить) ребро, уничтожить (создать) вершину Создать (уиичтожить) ребра нулевой длины, еершину М«ЕЧ (к«еч) й "Й Ви«шк«««альца ~ МРКН (кР мн) Создать (уиичтажить) внешнее кольцо, уиичтажить (саздеть) кольца отверстия Риа.
5.41. Операторы Эйлера .Вп ил Р ожении В мы перечислили операторы Эилера, ьюпользуемые в системс : тве Р~отельного моделирования 51НПМОХ), и описали реализацию типичных ейвыйцй()й;:(т)г.втО)щЩщХХ)))1()Е) Еепбходзпмю щ$ть: тзщратОррв Хаинмк Хтйрэзом;: иаы , йужцй оцтрйдте)тить.нв::;б)уагев тштцтоператоров. 1(овеяно быгю бы оцредеяитэтих '-г(экк чтобы'пни однцвремензю,изменяли такие элементы, которые часто меняютея вместе, когда конструктор, варьирует форму тела. Предсказать. какая именно : ')грубим 'тоцологических элементов будет изменяться наи(юлее часто, не так-то .,просто„Однако операторы должны вюпочать топологическис элементы, которые »,-,:по,лтеньшей мере удовлетворяют уравнению Эйлера †Пуанка. Например, нам ;...; подошел бы оператор, создающий ребро и вершину, поскольку он позволяет уве:; личить количество ребер и вершин на единицу, сохраняя истинность уравпе':;.
йия (5,1). Благодаря этому объемное тело, изначально являвшееся корректным, . ' 'гарантированно останется таковым после изменения его топологии. Операторы, удовлетворяющие перечисленным выше требованиям, называются операторами Эйлери (Еи)ет орегагогх). Существует много разных наборов операторов Эйлера, и в' каждой системе твердотельного моделирования используется свой собственный набор. Изменение, показанное па рис.
5.41, — пример применения оператора Эйлера, который называет.ся Создать Ребро и Кольцо (Л(айе апк( Ет(Ке опгХ и Хлор — МЛ7.). Этот оператор увеличивает число колец, соединяя две вершины одного кольца новым ребром. Легко представить себе использование этого операто.Ра для деления грани на двс части перел поднятием одной из этих частей. На ,: рис. 5.44 перечислены операторы Эйлера, ~зато используемые в этой книге. функций -моделирования. список оцератпхк)в 'првктцчески: совпвдвет в' )т(тра: жениым Чийокурой (35"(. Подробное описание операторов Эйлераи:)п(„рек)(цайт(у ции можно найти в работах [106, 35).
$.3.4. Булееские операторы Из всех функций моделирования булевские операторы являются най~гЕВ»е'''.: сложными с точки зрения реализации, однако они предоставляют наиболее,'удк'гг;",, рокие возлюжности пользователю системы моделирования. Как уже отмечбг)((кб«, к булевским операциям относятся объединение, пересечение и разность(обкьйьт';"л ных тел. Результат операции сохраняется в структуре данных, характерной-"йр~к, используемой системы твердотельного моделирования. Если зта система вснк())(~б' на на дереве СБС или декомпозиционном представлении„результат булез(кф: операции легко будет представить в той же структуре. Дерево СБС резульгтщд'".
любой булевской операции получается простым комбинированием деревьев йо::.' ходных тел при помощи соответствующей операции булевской алгебры. Тозвбк относится и к декомпозипионной модели: там булевские операции примепбгй(Е';~',: ся к пространственным элементам тел. Например, воксельное представление()е»,. зультата булевской операции может быть получено применением соответств)й(й», щей операции (побитовой булевской операции) к значениям вокселов джут(,'~':.
попадающих в одну и ту же точку пространства. Если же система твердотельного моделирования использует структуру В«з««й)), ситуация оказывается принципиально иной. В этом случае структуру В-)йеф~М«' ходного тела приходится вычислять по структурам В-Вер исходных тел, к кбтЬ;.,:'л рым применяется булевская операция. Этот процесс называется еьлгисзе)(ц~~). границ (Ьоипт(агу еоо(иогюп).
Алгоритм вычисления границ был впервые предложен Реквичей и ВелкеромЦЗл)';- под названием процесс вычисления и слияния границ (Ьоппг(агу жа(иагкпь'-"~йг»т те)К)пйргасехт) и впоследствии был усовершенствован Миллером (115]. Пра~()т)"' гаемый метод реализуется в три этапа. Для удобства иллюстрирования мы рйЮ(М,,'~:=: ли воспользоваться плоским рисунком (рис. 5.42), но тот же подход приматйМ!В::, к трехмерным телам.
Сначала обозначим две грани (два тела в трехмерноМ,:б~...( чае), к которым должна быть применена булевская операция, буквами А"а!5'. а результат операции назовем буквой В (рис. 5.42, а). На первом этапе все ре(з)тз('А; и Б, а также ребра, получаемые пересечением этих граней„помегцаются в еди)й(($:::„. пул ребер. Подмножеством пула ребер, очевидно, являются все ребра грани,В На втором этапе все ребра пула классифицируются по их положению атно),""кует тельно граней А и Б. Любое ребро может находиться, во-первых, внутри, нй.-е)))з, нице или снаружи грани и, во-вторых, внутри, на границе или снаружи граи)ТФ' (рис. 5.42, 6). На третьем этапе ребра группируются по их относительному цолЫ жению в соответствии с применяемой булевской операцией. Заметьте, что'.4фф';.
операции «А объединить с Б» нужно отбросить все ребра, находящиеся «в«Х)~ФФ'. ри А» и «внутри Б» (см. рис. 5.42, 6). Аналогичным образом для операции «Ау)Ф~т ресечь с Б» отбрасываются ребра, лежащие «вне А» и «вне Б». Собранные)г~! формируют грань. Для этого в структуру заносятся все необходимые сведб(з((~(:.) о вершинах, ребрах, кольцах и прочих элементах.
Для объемных тел такой )В~,', "шегбся млй по «абраг)нем' 'ребрам предстйдет сл(явную тбпплогическую вне А, на В внв на б рив. В-42. Классификации ребер ы избежать указанных трудностей, Мянтюля [105] предложил алгоритм под -'ванием классификатор окрестностей вершин (иеггех пе4~Ьотйоог( сйгявггег). итм Мянтюля работает с отдельными гранями, в отличие от алгоритма Ре' ' и и Велкера. Гофман, Хопкрофг и Карасик [69[ н Чийокура [35[ также пред- жили свои алгоритмы определения границ, основанные на рассмотрении гра- ' . В приложении Г мы предлагаем алгоритм, используемый в 5гчПМОП, орый также основан на подходе к отдельным граням. '31Ж; Расчет объемных параметров ,:улке отмечали, что одним из преимуществ объемной модели является воз- ' сть расчета объемных параметров тела непосредственно исходя из его маавического описания.
Первые системы твердотельного моделирования исьвовались главным образом для визуализации формы объекта, так что расчет ейных параметров был одной из немногих инженерных функций, поддержи- шихся этими системами. К объемным параметрам объекта относятся его объ', центр тяжести, моменты инерции и центробежные моменты инерции, кого- е определяются следующим образом. , ъвм: нтр тяжести: х, =-'ПУха' у н-Щу~ ' 1 к 1 , = Щгау. 1 Моменты. ггнврцигг Х„=: [ц(ух+") ~(у; (м =Щ(х +г )Ыу; ( =- Щ(х + у ) гг 1'.
Центробежные моменты инерции: 1 =Щ уау; 1и = Щ уг Л'; (н =Щ Лу. Щ ц,) ду -О(Ф п)гй Символ Щ обозначает интеграл по объему интересующего нас объекта. Эти ап-'. и ределения станут определениями масс-инерционных свойств объекта, если' включить в них его плотность, Плотность включать не обязательно, если огиодинакова по всему объему объекта: в этом случае масс-инерционные параметры получаются пз объемных умножением на постоянную плотность. Значение любого объемного параметра может быть получено вычислением иг|те.-.:;::,'"Л грала вида: 1г' = Щг(х,у,г) г1У.
(5-йг)-'--::-", и Для воксельного представления и представления октантного дерева интеграл по объему сводится к обычному суммированию интегралов по отдельным вокселахг;'::;; или октацтам. Таким образом, необходимо лишь научиться вычислять объемцггй интеграл от Е(х, у, г) по одному вокселу или октанту. Поскольку эти объекты определяются восемью всрп|инами, интеграл по их объему может быть переписан.в виде функции от координат вершин, а значение интеграла для любого воксела' нли октанта после этого будет вычисляться подстановкой координат его вершин -,'., в новую функцию. Значение объемного параметра для тела в целом после этого. может быть получено суммированием значений для отдельных вокселов или октантов при помощи теоремы о параллельной оси [42[. Зто позволяет учесть расстояние между началами координат локальной системы отдельного воксела.н глобальной системьь Если объект представлен в виде дерева СЗС, выполняется - -., аналою юная процедура, заключающаяся в добавлении или вычитании объемнык ':, ' интегралов по примитивам (в зависимости от выбранной булевской операции), .
-' '- Если же объект представлен структурой В-Кер, вычислить объемный инте„' ° ';," грал (5.2) оказывается не так-то просто. Тиммер [153[ предложил метод вычиа--.',",' лепня объемного интеграла для объекта произвольной формы в представленип,' В-Кер.
Подход Тнммера выглядит следующим образом. 1. Объемный шп еграл из формулы (5.2) преобразуется к поверхнсктному интег(жлу'-':,':", по граничной поверхности по теореме Гаусса. Теорема Гаусса выражается так [931;,-"':",;: (5.3) ггде!5г..-'- опермбр'грэ)(ценнвй] раскрьвщоцгййсзс й виде Р ется в (5.5) ] — поверхностный интеграл по граничной поверхности объема 15, а и — вектор внешней нормали в точке бесконечно малого участка гЬ поверхности 5.
'Вообще говоря, и есть функция от х, у и г, поскольку этот вектор меняется при переходе от одного бесконечно малого объема к другому в процессе вычисления поверхностного интеграла. Подробные сведения о теореме Гаусса вы можете найти н учебниках по интегральному исчислению ]93] и [68]. Применение теоремы Гаусса позволяет преобразовать объемный интеграл (5.2) к поверхностному, подставив функцию Ф(х, у, г), удовлетворяющую уравнению 11 Ф =.
Г(х, у, г) в правую часть уравнения (5.3). Затем мы получаем возможность раскрыть (5.3) в 1у =Ц((х,у,г)гЬ, (5.4) где С(х, у, г) — функция координат, полученная перемножением Ф . и. Существует множество способов выбрать Ф(х, у, г) и, соответственно, множество вариантов С(х, у, г).