Булевы операции над элементарными телами. Создание булевой операции на основе нескольких тел. Использование в программировании

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

Булевы операции всегда применяются к двум объектам. Первый объект (который выделен) называется операндом А. Второй объект (который следует указать) – операнд Б. Тип булевой операции и взаимное расположение объектов определяют конечный результат. Объекты, к которым планируется применить булевы операции, должны иметь общую область, то есть соприкасаться друг с другом.

Существует четыре основных типа булевых операций:

Union (Сложение) – операция предназначена для объединения двух исходных объектов, при этом общая область двух объектов удаляется (рис. 4.16, а );

Intersection (Пересечение) – булев объект состоит только из общей области исходных объектов (рис. 4.16, б );

Рис. 4.16. Булевы операции Union (Сложение) и Intersection (Пересечение) с участием двух объектов – бутылки и сферы

Subtraction (А – В) (Вычитание (А –Б)) и Subtraction (В – А) (Вычитание (Б –А)) – один исходный объект вырезает отверстие из другого исходного объекта (рис. 4.17);

Рис. 4.17. Булева операция Subtraction (А – В) и Subtraction (В – А) (Вычитание) с участием двух объектов – бутылки и сферы

Cut (Разрезание) – операция предназначена для разрезания одного объекта другим (рис. 4.18).

Рис. 4.18. Булева операция Cut (Разрезание) с участием двух объектов – бутылки и плоскости

Для применения булевых операций нужно сделать следующее.

1. Создать два исходных объекта и убедиться, что они пересекаются.

2. Выделить один из объектов (выделенный объект автоматически получает имя – объект А).

3. Создать составной объект Boolean (Булев) одним из следующих способов:

Выбрать команду меню Create → Compound → Boolean (Создать → Составные → Булев);

На вкладке Create (Создание) командной панели активизировать категорию создания трехмерных объектов Geometry (Геометрия), раскрыть список подкатегорий (там, где написано Standard Primitives (Стандартные примитивы)), выбрать строку Compound Objects (Составные объекты) и в свитке Object Type (Тип объекта) нажать кнопку с названием операции – Boolean (Булев). В свитке Parameters (Параметры) в области Operands (Операнды) появится имя операнда А.

4. Установить переключатель Operation (Операция) в положение, соответствующее нужной операции.

5. В свитке Pick Boolean (Выбрать булев объект) нажать кнопку Pick Operand B (Выбрать операнд Б), после чего в любом окне проекции щелкнуть на втором исходном объекте.



Если после применения операции понадобится изменить параметры операндов (например, изменить радиус сферы), следует на командной панели переключиться на вкладку Modify (Редактирование), в стеке модификаторов щелкнуть на плюсике слева от названия объекта Boolean (Булев). В появившемся списке перейти на единственный уровень редактирования – Operands (Операнды), затем в свитке Parameters (Параметры) в списке Operands (Операнды) щелкнуть на соответствующей строке. В стеке модификаторов под строкой Boolean (Булевы) появится строка-идентификатор соответствующего операнда. Щелчок на этой строке отобразит параметры операнда (рис. 4.19).

Рис. 4.19. Управление параметрами операндов осуществляется в стеке модификаторов

По умолчанию при выполнении булевой операции исходный объект Б удаляется. Однако если вы хотите, чтобы он оставался в сцене в том виде, в котором он присутствовал до булевой операции, необходимо до ее выполнения изменить положение переключателя в свитке Pick Boolean (Выбрать булев объект). Этот переключатель имеет четыре положения:

Move (Перемещение) – после выполнения булевой операции объект Б удаляется. По умолчанию используется именно это положение;

Copy (Независимая копия объекта) – булева операция выполняется с копией объекта Б, а сам объект остается в сцене;

Instance (Привязка) – булева операция производится с зависимой копией объекта Б. При этом исходный объект остается в сцене, а изменение параметров одного из объектов (исходного или булевого) влечет за собой изменение параметров другого;

Reference (Подчинение) – создается копия объекта Б, которая частично зависит от исходного объекта.

ОСНОВНЫЕ ПОНЯТИЯ КУРСА

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

Полный цикл проектирования изделия называют НИОКР. Это комплекс мероприятий, состоящий из научных исследований и производства опытных и мелкосерийных образцов продукции, который предшествует запуску нового продукта в промышленное производство. В структуре НИОКР предметом приложения методов геометрического моделирования являются опытно-конструкторские работы.

ОКР выполняются после завершения НИР при условии получения на этом этапе положительных результатов с точки зрения удовлетворения целей будущим изделием.

Основные этапы ОКР изложены в ГОСТ 15.001-88.”Система разработки и постановки продукции на производство”.

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

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

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

4 этап. Разработка технического проекта, содержащего окончательно выбранное и проработанное проектное решение. Окончательные выводы принимаются в ходе выполнения проверочных расчётов, в результате которых происходит уточнение или корректировка основных параметров изделия, полученных на предыдущем этапе.

5 этап. Разработка рабочей документации, содержащей чертежи деталей и сборочных единиц, по которым можно изготовить и испытать опытные образцы, а также проконтролировать их точность и качество в процессе изготовления.

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

Для повышения эффективности труда инженеров на этапе ОКР необходимо широкое использование различных средств автоматизации для решения многообразных проектных и исследовательских задач.

В настоящее время в машинной графике используются три вида геометрического моделирования. Это каркасное моделирование, поверхностное моделирование и твёрдотельное моделирование.

На данном этапе развития графических систем твёрдотельное моделирование является стандартом в 3D CAD/CAM/CAE-системах проектирования.

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

Для реализации подобного круга задач появились 3D системы среднего класса. Это Solid Works, AutoDesk Inventor, SolidEdge, а также отечественные Компас 3D и T-FLEX CAD.

Чертёж в этих системах играет вспомогательную роль, а способы его создания основаны на методах отображения пространственной модели.

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



Обратная связь

Алгоритм твёрдотельного моделирования позволяет создавать сложные геометрические модели через механизм последовательного применения булевых операций к набору элементарных объёмных тел, составляющих сложную модель. Промежуточные состояния при образовании сложного объекта автоматически фиксируются в иерархической модели данных. Следовательно, эта модель отображает на экране монитора весь процесс формоизменения сложного геометрического объекта. В графических системах данная иерархическая модель называется CSG – деревом (Constructive Solid Geometry tree) или дословно конструктор твёрдых тел.

В структуре CSG-дерева процесс последовательного моделирования сложного геометрического объекта представлен в виде следующих булевых операций над элементарными телами:

а) вычитание б) объединение в) пересечение.

Булевы операции над элементарными телами

Операции > Булева

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

Основные понятия. Возможности операции

Типы булевой операции

Существует три типа булевой операции:

● Сложение . Результатом выполнения операции является тело, объединяющее в себе все части тел, участвующих в операции.

● Вычитание . Результатом выполнения операции является тело, полученное вычитание одного тела из другого.

● Пересечение . Результатом выполнения операции является тело, полученное пересечением тел, участвующих в операции и состоящее из общих частей этих тел.

Операнды булевой операции

Тела, участвующие в булевой операции, называются " Операндами " булевой операции. Они делятся на первые и вторые операнды. Тела, над которыми выполняется преобразования, называются " Первыми операндами " булевой операции. Тела, с помощью которых выполняется преобразование, называются " Вторыми операндами ". В зависимости от того, в качестве какого операнда были выбраны тела, получаются различные результаты булевой операции.


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

Результаты булевых операций

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

Следует заметить, что в некоторых ситуациях, при сочетании определённых типов операндов в булевых операциях, невозможно получить результат.

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

В результате булевых операций в некоторых случаях может быть сформировано как твёрдое, так и листовое тело. Пользователь может выбрать тип результирующего тела при помощи параметра " Результат операции ".

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

Интерпретация листового тела

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

Если операнд - листовое тело был определён как полупространство, то в сцене будут отображены векторы нормалей к поверхности листового тела. Направление этих векторов указывает, какое полупространство выбрано и повлияет на результат выполнения операции.

Операция "Сложение"

Результаты булевой операции "Сложение" при сочетании различных типов операндов:

Твёрдое тело + Твёрдое тело

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

Листовое тело + Твёрдое тело

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

Следует отметить, что листовое тело должно полностью пересекать твёрдое тело.

Твёрдое тело + Листовое тело

Если в качестве первого операнда было выбрано твёрдое тело, а в качестве второго – листовое, то в результате выполнения операции "Сложение" по умолчанию создается твёрдое тело. Грани листового тела будут формировать дополнительный объем для твердого тела.

Листовое тело в этом случае должно быть определено в команде как полупространство.

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

При выборе листового тела следует обратить внимание на направление векторов нормалей. При определённом направлении нормалей может получиться некорректное результирующее тело. В этом случае нужно выбрать другое полупространство в параметре " Интерпретация операнда ".

Листовое тело + Листовое тело

В результате сложения двух листовых тел получается листовое тело. Для успешного создания операции необходимо, чтобы грани листовых тел либо имели общее ребро, либо совпадали на определённом участке. Эта возможность является схожей с операции "Сшивка ". Отличие заключается в том, что булева операция " Сложение " не удаляет зазоры между телами, а " Сшивка " пытается создать новую непрерывную поверхность.

Операция "Вычитание"

Результаты булевой операции "Вычитание" при сочетании различных типов операндов:

Твёрдое тело - Твёрдое тело

Результатом выполнения булевой операции "Вычитание" одного твёрдого тела из другого будет тело, переставляющее собой первый операнд, из которого удаляется объём второго операнда.

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

Листовое тело - Твёрдое тело

При вычитании твёрдого тела из листового, в листовом теле будет создано отверстие по форме второго операнда – твёрдого тела.

В результате вычитания листового тела из твёрдого остаётся часть твёрдого тела, отсечённая листовым телом. При этом листовое тело должно быть определено как полупространство. В зависимости от выбранного полупространства остается либо верхняя, либо нижняя часть твёрдого тела. Этот тип булевой операции является аналогом операции "Отсечение ".

Операция "Пересечение"

Результаты булевой операции "Пересечение" при сочетании различных типов операндов:

Твёрдое тело - Твёрдое тело

Результатом пересечения твёрдых тел является тело, представляющее собой общую часть всех операндов.

Листовое тело (полупространство) - Листовое тело (полупространство)

Если листовые тела совпадают на определённом участке, то в результате выполнения булевой операции "Пересечение" остается общая их часть.

Листовое тело - Твёрдое тело

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

Твёрдое тело - Листовое тело (полупространство)

В результате выполнения булевой операции "Пересечение" листового тела, интерпретированного как полупространство, и твёрдого тела останется часть твёрдого тела, отсечённая листовым телом. Результат выполнения этой операции похож на результат выполнения булевой операции "Вычитания" листового тела (полупространства) из твёрдого тела. Отличие в том, что в результате выполнения операции "Пересечение" остаётся другая часть твёрдого тела. При этом порядок выбора операндов не влияет на результат.

Булевы операции между листовыми телами (полупространствами)

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

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

Глобальные и локальные булевы операции

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

Помимо "Глобальной" булевой операцией в T-FLEX есть понятие " Локальной " булевой операции. В отличие от "Глобальной" булевой операции, где в качестве операндов выбираются только тела, в "Локальной" булевой операции помимо тел выбираются грани операндов. Выбрать грани операндов можно в параметрах операции на закладке "Грани". В некоторых случаях использование "Локальной" булевой операции дает значительный выигрыш во времени регенерации модели по сравнению с "Глобальной" булевой операцией, т.к. в результате выполнения операции будут искаться пересечения только указанных граней. Например, если нужно проделать отверстие в достаточно сложном теле и известно, что отверстие пересекает небольшое количество граней, то имеет смысл указать эти грани в параметрах операции.

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

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

В некоторых случаях бывает удобно применить опцию " Использовать соседние грани " для первых или вторых операндов. Достаточно выбрать одну грань операнда, чтобы система сама доопределила соседние грани таким образом, чтобы линии пересечения граней операндов образовали замкнутые циклы. В этом случае при изменении количества граней, составляющий замкнутый цикл, в случае модификации операндов результат булевой операции останется корректным.

Выборочные булевы операции

В результате пересечения граней операндов образуются общие рёбра. Эти рёбра разделяют тела операндов на части. Части операндов могут быть внутренними (общие части операндов) и наружными. При создании булевой операции есть возможность указать наружные части операндов, которые будут оставлены в результирующем теле или наоборот исключены из него.

Часть операнда определяется топологическими элементами: вершинами, рёбрами или гранями. Для выбора части операнда достаточно указать в параметрах операции на закладке " Части операндов " один из этих элементов. На рисунке ниже показана возможность применения выборочной булевой операции "Сложение", при выполнении которой в результирующем теле остаются только выбранные части второго операнда.

В некоторых ситуациях выбранный топологический элемент явно не определяет нужную часть. Например, как показано на картинке ниже, выбранная грань принадлежит нескольким наружным частям операнда. Для того чтобы однозначно определить нужную часть надо построить 3D узел на этой грани и при помощи опции " Выбор точки " выбрать этот 3D узел. При этом грань выбирать не нужно.

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

Эта возможность позволяет:

1. Ускорить процесс пересчета булевой операции за счет того, что указан конкретный тип контакта.

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

В команде предусмотрены четыре типа соответствия:

Полное совпадение – границы топологических элементов совпадают с заданной точностью.

● Включение – границы второго элемента лежат в пределах границ первого элемента.

Частичное совпадение – границы одного элемента частично совпадают с границами другого элемента.

● Проецирование – совпадение отпечатков границ топологических элементов.

В таблице ниже представлено описание типов соответствия для различной топологии операндов:

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

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

Сглаживание новых рёбер

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

Отсутствие одного из операндов

При создании булевой операции можно установить параметр " Допускается возможность отсутствия одной из исходных операций ". Этот прием часто применяется в параметрических моделях, когда для определённого исполнения модели нужно исключить один из элементов. Как показано на рисунке ниже гайка может иметь два исполнения: с проточкой и без неё. Для того чтобы реализовать эти исполнения в одной модели можно подавить второй операнд при этом будут сохранены все последующие операции, созданные на основе булевой (в примере это сохранение косметической резьбы на грани булевой операции).

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

Создание булевой операции

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

Для создания операции нужно выполнить следующие действия:

1. Выбрать булевы операнды.

2. Выбрать тип булевой операции.

3. Выбрать части операндов для формирования выборочной булевой операции (не обязательно).

4. Задать соответствия элементов (не обязательно).

5. Задать дополнительные параметры (при необходимости).

6. Задать параметры сглаживания (не обязательно).

7. Подтвердить создание операции.

Основные параметры операции

Выбор операндов

Выбор операндов для глобальной булевой операции

Для выбора операндов глобальной булевой операции используется следующая опция:

<1> Выбрать булевы операнды

При этом в автоменю становятся доступными опции:

Выбрать первое тело

Выбрать второе тело

При активизации одной из этих опций фокус ввода перемещаемся в соответствующее окно выбора первых или вторых операндов в окне свойств. И на оборот, переключаясь между окнами выбора операндов в окне свойств, в автоменю активизируется соответствующая опция. Выбрать тела в качестве первых или вторых операндов можно непосредственно в 3D сцене или в окне дерева 3D модели. Тела первых операндов подсвечиваются в сцене зеленым цветом, тела вторых операндов – желтым. Выбранный в окне свойств операнд подсвечивается в сцене синим цветом.

Для удаления любого операнда из списка нужно после его выбора в окне " Свойства " нажать кнопку [ Удалить ].

Для отмены выбора всех операндов служит опция:

Отменить выбор всех операндов

После создания булевой операции тела операндов будут удалены из сцены и останется только результирующее тело. Для каждого операнда может включить параметр " Оставлять в сцене ". В этом случае после создания операции тело операнда с включенным этим параметром будет оставлено в сцене.

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

Выбор операндов для локальной булевой операции

Для перехода в режим выбора граней для создания локальной булевой операции можно воспользоваться опцией автоменю:

<3> Выбрать локальные грани

Грани " в окне " Свойства ".

При этом в автоменю становятся доступными следующие опции:

Выбрать локальные грани первого операнда

Выбрать локальные грани второго операнда

После выбора операндов можно, при помощи указанных опций автоменю или перевода фокуса ввода в окна закладки " Грани ", выбирать грани тел в сцене для создания локальной булевой операции. Во время создания булевой операции можно не выбирать операнды, а сразу переключиться в режим выбора граней. При этом тела, грани которых выбраны, будут автоматически добавлены как операнды на соответствующую закладку в параметрах операции. Маркировка граней первых и вторых операндов аналогична выбору операндов-тел. Для удаления грани нужно выбрать её в списке на закладе " Грани " и нажать кнопку [ Удалить ]. В некоторых случаях необходимо включить параметр " Обрезать по граням первых операндов " для формирования правильного результата операции.

Для отмены выбора всех локальных граней служит опция:

Отменить выбор локальных граней

При создании локальной булевой операции могут быть использованы грани, соседние с выбранной гранью. Для этого нужно выбрать соответствующее значение в выпадающем списке параметра " Использовать соседние грани ".

Выбор типа булевой операции

Выбор типа операции осуществляется либо с помощью параметра " Тип операции " в окне " Свойства ", либо с помощью следующих опций автоменю:

<+> Сложение

<-> Вычитание

<*> Пересечение

При первом выполнении команды булевой операции после запуска программы в автоменю автоматически устанавливается тип булевой операции " Сложение ". При повторном вызове команды создания булевой операции в нажатом состоянии будет кнопка, соответствующая типу, выбранному при последнем использовании булевой операции.

Выбор частей операндов

Для создания выборочной булевой операции служит следующая опция:

<2> Выбрать части операндов

Также для активизации этого режима можно переключиться на закладку "

Выбрать элемент, определяющий часть операнда

Выбрать точку, определяющую часть операнда

При помощи этих опций можно выбрать элементы, определяющие части операндов. Имена выбранных элементов будут добавлены в список на закладке " Части операндов " в окне " Свойства ". На этой же закладке можно выбрать действие для выбранных частей операндов: оставлять их в результирующем теле или исключать. Это действие устанавливается для всех выбранных частей операндов.

Для отмены выбора частей операндов служит опция:

Отменить выбор элементов, определяющих части операндов

Для задания соответствия элементов служит опция:

<4> Задание соответствий элементов

Также для активизации этого режима можно переключиться на закладку " ". При этом в автоменю становятся доступными следующие опции:

Выбрать первый элемент

Выбрать второй элемент

Отмена выбора всех элементов

При помощи этих опций элементы для задания соответствия выбираются попарно. Имена выбранных элементов отображаются на закладке " Соответствия " в окне " Свойства ". Для всех пар элементов может быть установлен точный или приближенный метод. Тип соответствия выбирается из списка параметра " Тип " на этой закладке.

Следует отметить, что набор типов соответствия в этом списке может быть разным в зависимости от сочетания топологических элементов в паре (см. таблицу в параграфе " Задание соответствия элементов ").

На этой закладке может быть установлена точность соответствия.

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

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

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

Предварительный просмотр изменений, вносимых операцией

Дополнительные параметры операции

Продолжение рёбер операндов

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

Выбор типа результирующего тела

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

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

Копирование по образцу

Если в качестве одного из операндов используется 3D массив, то, включив параметр " Копирование по образцу ", можно значительно сократить время выполнения булевой операции.

Возможность отсутствия одного из операндов

Если в создаваемой булевой операции включить параметр " Допускается отсутствие одной из исходных операций ", то в дальнейшем можно будет подавить один из операндов и при этом сохранить результат булевой операции.

Сглаживание новых ребер

Для включения режима сглаживания новых рёбер, полученных пересечением граней первых и вторых операндов, нужно включить параметр " Сгладить новые рёбра ". После этого становится доступна группа параметров, позволяющая выбрать тип сглаживания (" Скругление ", " Фаска ") и величину сглаживания (параметр " Радиус ").

Материал новых граней

Может быть выбрано одно из трех значений:

● “ Материал 1-го операнда ”. В этом случае для новых граней будет назначен основной материал, либо материал покрытия, если он задан, в соответствии с этими параметрами первого операнда. Если первых операндов несколько и они с разными материалами, то на новых гранях будет сохранён материал того операнда, который участвовал в формировании этих граней.

● “ Материал 2-го операнда ”. При этом значении материал граней второго операнда, которые участвовали в формировании новых граней, перенесется на эти новые грани. Это может быть и основной материал, и материал покрытия, если он задан, и даже материал операции назначения материала. Например, в результате булевой операции "Вычитание"между первым операндом с материалом сталь и вторым операндом с материалом черный пластик на созданных гранях результирующего тела будет наложен материал черный пластик. Если вторых операндов несколько и они с разными материалами, то на новых гранях будет сохранён материал того операнда, который участвовал в формировании этих граней.

● “ Основной материал 1-го операнда ”. Действие этого параметра аналогично первому параметру (“ Материал 1-го операнда ”), за исключением случая, когда задан материал покрытия, материал покрытия на новых гранях не применяется. Например, если в детали с основным материалом "Сталь" и с покрытием "Медь" с помощью булевой операции проделать отверстие, то внутри оно будет выглядеть стальным в соответствии с основным материалом.

Особенности работы с булевыми операциями

Отображение булевой операции в окне "3D Модель"

После создания булевой операции она помещается в папку "Булевы" в окне " 3D модель ". Слева от каждой булевой операции отображается пиктограмма, обозначающая тип операции ( Сложение, Вычитание, Пересечение). Особым образом булевы операции отображаются в дереве 3D модели. При раскрытии структуры Тела булева операция показывается в виде пиктограммы слева от второго операнда. На рисунке справа показана "Булева операция_2": пересечение первого операнда "Вращение_1" со вторым операндом "Выталкивание_2".

При нажатии на пиктограмме слева от второго операнда в дереве модели вызывается контекстное меню для булевой операции. Также контекстное меню для булевой можно вызвать из контекстного меню для второго операнда в дереве модели.


Создание булевой операции в дереве 3D модели

В дереве 3D модели можно создать булеву операцию без явного вызова команды создания.

Используя метод Drag&Drop , можно выбрать одно тело в дереве 3D модели и удерживая левую кнопку мыши перетащить его на другое тело. В этом случае будет автоматически создана булева операция "Сложение". Если при этом удерживать нажатым Вычитание ". Если вместо удерживать нажатым будет создана булева операция " Пересечение ". Перетаскиваемое тело будет вторым операндом, а тело, на которое перетаскивают – первым операндом.

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

При создании многих операций T-FLEX CAD возможно автоматическое создание булевой операции. Создаваемое тело при этом всегда является вторым операндом булевой операции. В качестве первого операнда выбирается любое из уже существующих тел 3D модели.

Для создания булевой операции необходимо:

1. Включить режим создания булевой операции с помощью опции автоменю:

Булева операция создаётся при нажатой пиктограмме.

2. Выбрать тип создаваемой операции с помощью опции автоменю, содержащей выпадающий список:

Интеллектуальный

Принцип действия интеллектуального режима:

Если создаваемое тело и выбранное тело (явно или неявно) имеют пересечение объемами - тип булевой операции: вычитание .

Если создаваемое тело полностью лежит внутри выбранного тела - тип булевой операции: вычитание .

Если создаваемое тело касается выбранного тела – тип булевой операции: сложение .

Если условия, указанные в пунктах 1, 2, 3, не выполнены, или выбранное тело лежит внутри создаваемого, или при определении типа проникновения тел возникла ошибка – тип булевой не определен, булева операция не будет создана .

3. Выбрать первый операнд булевой операции (в некоторых случаях – необязательное действие) с помощью опции автоменю:

Если в сцене присутствует всего одно тело, то оно выбирается автоматически. Создаваемое в операции новое тело является вторым операндом булевой операции.

После подтверждения создания операции сначала создается тело, а затем выполняется булева операция заданного типа.


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

Удаление булевой операции

Если булева операция находится на верхнем уровне дерева, то при её удалении в дереве модели останутся Тела операндов этой булевой операции. Если же у булевой операции есть потомки, то при её удалении будет выдан диалог " Удаление элементов ".

Если в этом диалоге выбрать вариант " Исключить выбранные элементы из модели ...", то будет выдан диалог " Выбор операции для переназначения потомков ", в котором предлагается выбрать один из операндов булевой операции, на который будут переведены все потомки булевой.

На рисунке ниже показана структура Тела_1. Сначала была создана булева операция “Вычитание” операции “Круговой массив_1” из операции “Вращение_1”, а затем на грань результирующего тела булевой операции была нанесена “Резьба_1”. Если теперь удалить операцию “Булева_1” с попыткой исключения элемента из дерева модели и в диалоге “Выбор операции для переназначения потомков” выбрать операцию “Вращение_1”, то операция “Резьба _1” станет потомком операции “Вращение_1.

При удалении одного из операндов с исключением элемента из дерева модели будет удалена и сама булева операция.

Булевы операции с 3D фрагментами

Использование 3D фрагментов в качестве операндов является уникальной возможностью T-FLEX CAD. Благодаря этому значительно расширяются возможности создания параметрических 3D моделей и сборок. При вставке 3D фрагмента в сборку есть возможность автоматически создавать булеву операцию с телами сборки. Более подробно о возможностях использования 3D фрагмента в качестве операнда можно посмотреть в описании команды "3D Фрагмент " в разделе " Создание булевой операции на основе 3D фрагмента " и в описании команды ST: Параметры документа в разделе " Закладка 3D ".

При создании 3D фрагментов с заданной автоматической булевой операцией предварительный просмотр отображает не только вставляемый фрагмент, но и результат этой булевой операции.


Нанесение резьбы при помощи булевой операции

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

Следует заметить, что резьба на грани второго операнда должна быть " Внутренней ", для того, чтобы на результирующем теле резьба в отверстии также была создана как " Внутренняя ".

В диалоге параметров операции, вызываемом опцией , можно задать общие параметры операции .

Для редактирования созданной операции используется команда 3EB.

Конъюнкция или логическое умножение (в теории множеств – это пересечение)

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

Обозначение: &, $\wedge$, $\cdot$.

Таблица истинности для конъюнкции

Рисунок 1.

Свойства конъюнкции:

  1. Если хотя бы одно из подвыражений конъюнкции ложно на некотором наборе значений переменных, то и вся конъюнкция будет ложной для этого набора значений.
  2. Если все выражения конъюнкции истинны на некотором наборе значений переменных, то и вся конъюнкция тоже будет истинна.
  3. Значение всей конъюнкции сложного выражения не зависит от порядка записи подвыражений, к которым она применяется (как в математике умножение).

Дизъюнкция или логическое сложение (в теории множеств это объединение)

Дизъюнкция является сложным логическим выражением, которое истинно практически всегда, за исключением, когда все выражения ложны.

Обозначение: +, $\vee$.

Таблица истинности для дизъюнкции

Рисунок 2.

Свойства дизъюнкции:

  1. Если хотя бы одно из подвыражений дизъюнкции истинно на некотором наборе значений переменных, то и вся дизъюнкция принимает истинное значение для данного набора подвыражений.
  2. Если все выражения из некоторого списка дизъюнкции ложны на некотором наборе значений переменных, то и вся дизъюнкция этих выражений тоже ложна.
  3. Значение всей дизъюнкции не зависит от порядка записи подвыражений (как в математике – сложение).

Отрицание, логическое отрицание или инверсия (в теории множеств это отрицание)

Отрицание - означает, что к исходному логическому выражению добавляется частица НЕ или слова НЕВЕРНО, ЧТО и в итоге получаем, что если исходное выражение истинно, то отрицание исходного – будет ложно и наоборот, если исходное выражение ложно, то его отрицание будет истинно.

Обозначения: не $A$, $\bar{A}$, $¬A$.

Таблица истинности для инверсии

Рисунок 3.

Свойства отрицания:

«Двойное отрицание» $¬¬A$ является следствием суждения $A$, то есть имеет место тавтология в формальной логике и равно самому значению в булевой логике.

Импликация или логическое следование

Импликация - это сложное логическое выражение, которое истинно во всех случаях, кроме как из истины следует ложь. То есть, данная логическая операция связывает два простых логических выражения, из которых первое является условием ($A$), а второе ($A$) является следствием условия ($A$).

Обозначения: $\to$, $\Rightarrow$.

Таблица истинности для импликации

Рисунок 4.

Свойства импликации:

  1. $A \to B = ¬A \vee B$.
  2. Импликация $A \to B$ ложна, если $A=1$ и $B=0$.
  3. Если $A=0$, то импликация $A \to B$ истинна при любом значении $B$, (из лжи может следовать истинна).

Эквивалентность или логическая равнозначность

Эквивалентность - это сложное логическое выражение, которое истинно на равных значениях переменных $A$ и $B$.

Обозначения: $\leftrightarrow$, $\Leftrightarrow$, $\equiv$.

Таблица истинности для эквивалентности

Рисунок 5.

Свойства эквивалентности:

  1. Эквивалентность истинна на равных наборах значений переменных $A$ и $B$.
  2. КНФ $A \equiv B = (\bar{A} \vee B) \cdot (A \cdot \bar{B})$
  3. ДНФ $A \equiv B = \bar{A} \cdot \bar{B} \vee A \cdot B$

Строгая дизъюнкция или сложение по модулю 2 (в теории множеств это объединение двух множеств без их пересечения)

Строгая дизъюнкция истинна, если значения аргументов не равны.

Для электроники это означает, что реализация схем возможна с использованием одного типового элемента (правда это дорогостоящий элемент).

Порядок выполнения логических операций в сложном логическом выражении

  1. Инверсия(отрицание);
  2. Конъюнкция (логическое умножение);
  3. Дизъюнкция и строгая дизъюнкция (логическое сложение);
  4. Импликация (следствие);
  5. Эквивалентность (тождество).

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

Общие свойства

Для набора из $n$ логических переменных существует ровно $2^n$ различных значений. Таблица истинности для логического выражения от $n$ переменных содержит $n+1$ столбец и $2^n$ строк.

Моделирование с помощью булевых операций - это общая и часто используемая методика. Булевы операции весьма близки к традиционным методам создания скульптур и моделирования. В 3D Studio MAX булево моделирование становится еще более полезным за счет реализации составного булевого объекта. В отличие от модификатора моделирования составной булев объект состоит из двух объектов, называемых операндами, которые представляют булеву операцию. Эти операнды остаются в виде объектов столько, сколько необходимо, и обеспечивают возможность доступа к своим параметрам и стекам модификаторов.

Составной булев объект отличается от многих программных понятий булевых операций, поскольку он не изменяет на постоянной основе формы, определяющие геометрию операндов. Позже эту геометрию можно перемещать, переопределять и производить обмен. Поскольку операнды остаются объектами, с ними можно взаимодействовать как с любым другим объектом. Для них можно даже выполнять анимацию, создавая поразительные эффекты. Затененные видовые окна 3DS МАХ позволяют видеть результат булевой операции в случае изменения операндов. Последнее является преимуществом интерактивного режима работы и вызывает ощущение, что один объект используется для вырезания другого. Оставаясь весьма полезными и развлекательными, сложность булевых операций может возрасти при вложении их одна в другую. В этой главе приводится информация, позволяющая упростить использование булевых операций. Внимание уделяется:

  • Основам булевых операций и способам увеличения их интерактивности
  • Работе со вложенными булевыми объектами
  • Использованию различных булевых операций для создания скульптур и моделирования
  • Соображениям, которые необходимо учитывать для успешного выполнения булевых операций

Основы булевых операций

Как и для многих терминов компьютерной графики, термин "булева" происходит от имени человека, который ввел это понятие (в данном случае это Джордж Буль). В математике термин "булева" появился для обозначения операции сравнения между множествами; в 3D Studio MAX подобное сравнение выполняется между геометрическими объектами. Хотя булева операция выглядит во многом похожей на модификатор, она находится на панели Create, а не на панели Modify, поскольку выполняется определение нового объекта из двух существующих (аналогично созданию loft- или morph-объектов). Булева операция в 3D Studio MAX выполняется путем создания булевого составного объекта из двух существующих объектов, которые называются операндами , при этом выполняются следующие шаги:

  1. Выберите начальный объект для булевой операции.
  2. Выберите Compound Objects (составные объекты) из списка выборки Geometry в панели Modify и затем щелкните на кнопке Boolean.
    Выбранный объект становится операндом А для составного булевого объекта. Теперь можно выбрать операнд В.
  3. Выберите требуемый тип операции (Operation:).
  4. Щелкните на Pick Operand В (выбрать операнд В) и затем выберите второй объект.
    Объекты сравниваются для определения их действительности (с точки зрения выполнения булевой операции) и, если они действительны, булева операция выполняется.
    Теперь можно изменить тип операции и увидеть различные булевы результаты.

Типы операции подобны многим традиционным методам. Объединение соединяет объекты подобно работе с глиной; при вычитании один объект вырезается из другого, как в скульптуре; пересечение оставляет то, что должно было бы быть вырезано или выбито из вычитания. Объединение и вычитание всегда возвращают одинаковый результат независимо от порядка выбора операндов. Предусмотрены две опции (А-В и В-А), поэтому при неправильном начальном выборе можно быстро переключиться. Результаты этих основных операций показаны на рисунке 11.1.

ПРЕДУПРЕЖДЕНИЕ Можно щелкнуть на кнопке Pick Operand В и выбрать другой Operand В произвольное количество раз. При выборе нового операнда В первоначальный операнд со сцены удаляется. При выборе в качестве операнда В неправильного объекта щелкните на кнопке Undo перед выбором другого операнда В.

Булевы выражения в качестве составных объектов

Чрезвычайная гибкость булевых операций в 3DS МАХ состоит в том, что объекты, содержащие булевы операнды, по-прежнему существуют как объекты. Каждый операнд сохраняет свой первоначальный стек Edit History (отредактировать историю) и его можно модифицировать из панели Command. Операнды можно даже трансформировать на уровне подобъекта. На рисунке 11.2 показан результат в Track View после создания булевого объекта.

Архитектура ссылок и экземпляров 3DS МАХ демонстрирует свою мощь при работе с булевыми объектами. При первом создании булевого составного объекта можно выбирать опцию перемещения, создания копии, экземпляра или ссылки объекта, выбранного в качестве операнда В. Опцией по умолчанию является Move (переместить) и кажется, что она создает явное действие, поскольку остается только булев результат. Оба объекта, выбранные для булевой операции, теперь являются операндами подобъектов. Остальные опции выполняют булев результат с копией, экземпляром или ссылкой на выбранный объект. Во всех трех случаях объект, выбранный для операнда В, остается без изменений, а булев результат получается с использованием нового объекта в качестве операнда. В таких случаях может показаться, что ничего не произошло, до тех пор пока не переместить или не скрыть один из этих двух объектов.

ПРИМЕЧАНИЕ Из объекта, выбранного в качестве операнда В, удаляется любая анимация трансформации, в то время как операнд А (первоначальный объект) оставляет анимацию трансформации. Если операнд А имеет анимацию трансформации, для нового статического операнда используется текущее расположение кадра, его позиция и масштаб.

Хотя можно сделать копию, экземпляр или ссылку операнда В, для операнда А такой опции не существует (объект выбирается после щелчка на Boolean). Гибкий метод обхода такого ограничения заключается в кло-нировании до экземпляров всех объектов, которые предполагается использовать в булевых операциях. После этого следует использовать опцию по умолчанию Move для выборок операнда В, обеспечив возможность модификации любых объектов в рамках булевого объекта и сохранения их отношений.

СОВЕТ Чтобы создать экземпляр из объекта, который уже является операндом, войдите в Track View. Скопируйте определение объекта операнда (указано синим кружком) в буфер обмена и вставьте его в определение другого объекта в виде экземпляра. Этот метод можно также использовать в обратном порядке, полностью переопределяя геометрию операндов, например путем изменения всех квадратных отверстий на круглые.

После создания булевого объекта можно заменить операнд В из панели Modify булевого объекта с теми же самыми выборами, предоставленными при создании. Используйте эту опцию осторожно, поскольку она уничтожает со сцены первоначально выбранный операнд В. Уничтожение оригинала может создать проблему при первоначальном использовании опции Move и представлении геометрии, которая уже не существует в виде отдельного объекта. Выбор другого операнда - это то же самое, что и замена определения объекта операнда в Track View, за исключением случая, когда необходимо сделать ссылку, которая не присутствует в Track View.

После создания булевого объекта можно вернуться к каждому Modifier Stack операнда на панели Modify (см. рис. 11.3). При первом входе в панель Modify булевого объекта не выбран ни один из операндов, поэтому Modifier Stack показывает только Boolean. Для модификации стека конкретного операнда необходимо произвести выбор из списка Operands. Теперь выбранный операнд отображает свой стек. Можно настроить любой модификатор в стеке или добавить новые модификаторы для оказания влияния на объект операнда перед булевой операцией. На параметры, с которыми можно выполнять анимацию, дополнительных ограничений не существует. Для трансформации операнда необходимо активизировать режим Sub-Object для булевого объекта. При таком подходе операнды можно считать подобными гизмо за тем исключением, что в отличие от гизмо, у операндов имеются собственные Modifier Stack.

Опции обновления

Опции Update (обновления) для булевых операций управляют тем, как фактически выполняются булевы вычисления. Для сложных объектов булевы вычисления могут занимать достаточно большое время. Эти вычисления замедляют редактирование других объектов, если они являются экземплярами или ссылками на булевы операнды. Если при моделировании возникают паузы, измените опцию Update. Опция Manually (вручную) является одним из наиболее консервативных методов и обеспечивает наибольшее управление вычислением операций. Такой режим наиболее пригоден для сложных моделей. Метод When Rendering (во время визуализации) не вычисляет операцию до тех пор, пока не будет выполнена окончательная визуализация, после чего производится возврат откорректированного результата на сцену. Метод When Selected (при выборе) несколько ненадежен в обновлении результата и на него не следует полагаться.

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

СОВЕТ Длительные булевы вычисления можно завершить, нажав клавишу Escape во время отображения курсора ожидания. После такого завершения режим Update автоматически переходит в Manually, поэтому теперь можно точно управлять временем вычисления обновления (поскольку геометрия, по всей вероятности, является сложной).

Интерактивные булевы операции

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

ПРИМЕЧАНИЕ Для сложных булевых операций режим Update для булева выражения должен быть установлен в Manually, чтобы операнд можно было позиционировать без дополнительных задержек на вычисления. После помещения операнда на требуемое место щелкните на Update для просмотра нового результата.

Понимание опций Display (отображения) булевой операции является ключевым моментом при выполнении интерактивных изменений. Результат булевой операции показывает опция по умолчанию Result (результат). При изменении опции на Operands (операнды) отображаются оба операнда А и В так, как будто булевой операции не выполнялось. Полностью отображенный операнд скрывает булев результат, поэтому в некоторой степени приходится работать вслепую. На практике лучше всего является комбинация, при которой выбирается Result и активизируется опция Show Hidden Ops (показать скрытые операнды). При этом недостающие операнды отображаются в виде проволочных каркасов (но только в затененных видовых окнах) и обеспечивается информация о точном местонахождении операнда и о его текущем влиянии на булеву операцию.

ПРИМЕЧАНИЕ Помните, что операнд всегда можно присвоить другому контроллеру объекта или контроллеру уникального Path, Look At (посмотреть на) или Expression (выражение) для создания эффектов, подобных анимированным кусочкам сверла или ожогам лазера.

Вложенные булевы объекты

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

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

СОВЕТ Для более глубокого погружения в булево дерево продолжайте выбирать операнд А и затем перейдите к следующей булевой операции в стеке. Для продвижения вперед используется стек операнда В, но для продвижения назад по истории редактирования можно использовать только стек операнда А.

При выполнении нескольких булевых операций, одну за другой, следует соблюдать осторожность. После завершения операции и, таким образом, составного булевого объекта, необходимо выйти из диалога Boolean или последующий выбор заменит только что выполненную операцию и удалит объект со сцены. Хотя для этого требуются дополнительные щелчки на кнопках, необходимо выйти из списка Compound Objects (составные объекты) путем выбора геометрии другого типа (например, Path Grids) и затем вернуться к Compound Objects для определения следующего булевого объекта.

При навигации по булевому дереву в Track View необходимо помнить, что в нем отражаются только объекты с параметрами, с которыми можно выполнить анимацию. Если булев объект создан из необработанного каркаса или лоскута, показываются только трансформации операнда, поскольку у него нет параметров создания, которые нужно настраивать. Когда для этого же объекта задается модификатор, для модифицированного объекта создается новый вход. То, что у операнда такая же метка, что и у Transform (с голубым кружком модификатора вместо зеленого треугольника контроллера) может привести к замешательству. При глубоком погружении в дерево, изображенное ранее на рисунке 11.4, следите за голубыми кружками Operand. Только самый глубокий операнд А содержит определение объекта; определения всех других объектов находятся внутри предыдущих операндов В.

СОВЕТ При использовании в качестве операндов примитивов Track View перечисляет их параметры под общим заголовком Operand. Задани]е для примитива модификатора, например Material, перемещает параметры создания в сферу модифицированного объекта, расположенную под операндом, вместе с меткой, обозначающей тип объекта.

Булевы характеристики

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

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

Идентификаторы материалов, вероятно, являются самым ценным инструментом при управлении окончательными результатами для поверхности булевого объекта. Задание для каждого операнда модификатора Material с отдельным идентификатором означает, что имеется гарантированный метод выбора граней после завершения булевых операций. Несмотря на то, что для подобъекта присвоения материала весьма полезно, сохранение операндов в виде выборок граней также имеет значение при выборке граней для присвоения сглаживающих групп и модификаторов UVW Mapping с целью восстановления утерянного покрытия.

Иногда булев результат содержит дефекты в виде петель и искажений. Эти дефекты часто вызваны тем, что аналогичные сглаживающие группы действуют друг на друга методами, которые не должны применяться, или вершины объединяются так, что сглаживание произойти не может. Если такого рода дефекты видны, примените модификатор Edit Mesh, выберите все вершины и выполните Weld Selected (объединить выбранные). Если дефекты не исчезают, необходимо проанализировать присвоения сглаживающих групп (перед булевой операцией или после нее).

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

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

Соображения по улучшению булевых операций

Булев код в 3DS МАХ очень обобщен и позволяет работать с произвольными поверхностями. Однако подобное обобщение означает, что не каждый объект образует действительный булев объект и что некоторые "действительные" результаты могут иметь артефакты (например, длинные грани планки) или содержать нежелательные результаты. Ниже приведен контрольный перечень, который поможет при поиске неисправностей и создании моделей, дружественных для булевых операций:

  • Нормали для всей поверхности должны быть унифицированы без всяких ложных граней, указывающих в неправильном направлении. Нормали граней используются в определении направления поверхности и результирующего булевого объекта.
  • Каркас должен быть построен правильно; это означает, что грани, совместно использующие ребро, должны совместно использовать две вершины, а ребро может совместно использоваться только двумя гранями. (Внутренние основные грани вершин объекта вращения для последнего правила являются типичным кошмаром.)
  • Обеспечивайте объединение всех вершин. Может потребоваться объединение всех вершин вручную с помощью Edit Mesh даже для последовательных булевых операций.
  • Копланарные грани, в особенности те, которые находятся внутри одного и того же объекта, причиняют беспокойство и их следует избегать. Одним из наихудших случаев являются копланарные грани, расположенные тыльными сторонами друг к другу (они легко создаются путем построения примитива с нулевой высотой).
  • Булевы операции надежно работают только с одиночными элементами. Если любой из операндов состоит из множества элементов (например, Teapot или Hedra), в каждый момент времени может успешно работать только один элемент.
  • Если операция не удается, выключите опцию Optimize Result (оптимизировать результат) в нижней части свитка так, чтобы последний проход, контролирующий компланарные грани, не вычислялся. Включенная опция Optimize Result часто может быть причиной получения некорректных результатов.
  • Если операция по-прежнему не удается или создает расщепленные грани, попытайтесь выполнить небольшую настройку операндов.
  • Изменяйте уровень детализации операнда, в особенности возле области, которая является локальной для действующей булевой операции.

Не допускайте того, чтобы этот контрольный перечень испугал вас и заставил избегать булевых операций. Большинство этих опций работает с первой попытки, в особенности если геометрия подчиняется первым трем правилам, а это, скорее всего, будет выполняться при создании геометрии в рамках 3DS МАХ.

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

Вырезание при помощи булевого вычитания

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

Успешное создание скульптуры посредством булевой операции начинается с понимания того, какой должна быть конечная вычитаемая форма. Это приводит к мысли о том, какая геометрия потребуется для выполнения того или иного шаблона. После частого выполнения операций вычитания объект имеет мало сходства с окончательным результатом; объект просто принимает форму режущего ножа, который делит поверхность на пластины. Второй операнд можно считать "стамеской" или "кусочком фасонной фрезы", которая создает конкретный "желобок" на первом объекте. Операция булевого вычитания также является хорошим, если не основным, методом для создания закруглений и углублений на существующих объектах.

ПРИМЕЧАНИЕ Может оказаться полезным обеспечить выбор "режущих инструментов" в виде кривых Безье, которые для целей операций булевого вычитания можно вытягивать, выполнять с ними операцию лофтинга или вращать. Более сложные булевы режущие формы при необходимости можно сохранить в виде каркаса или в слитом виде.

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

Булево пересечение создает объект, который иначе следовало бы "вырезать" при помощи операции булевого вычитания. Результат иногда трудно визуализировать, но он может создать геометрию, которую иначе трудно промоделировать (см. рис. 11.6). Здесь второй операнд действует в качестве разреза в шести направлениях.

Одно из основных применений булевого пересечения заключается в восстановлении того, что "отбирается" при операции булевого вычитания. Иногда может потребоваться использовать часть, которая "упала на пол" в анимации. Может потребоваться показать часть, которая отштампована, например, из металлической заготовки. Для этого скопируйте первоначальные объекты и выполните две булевы операции, создав таким образом "разрезанный" объект и то, что было "вырезано".

Моделирование при помощи булевого объединения

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

Булево объединение более всего используется для объектов, которые должны выглядеть "сплошными". Поверхность закрыта, исследовать внутреннюю структуру не требуется, поэтому объект имеет толщину всего в одну грань. Во многих случаях булево объединение выполняется для достижения эффекта вычитания. Один операнд накладывается на другой, что разрешает использовать последний для других целей, не нанося вреда операнду, который накладывается. Такая операция может оказаться полезной, когда накладываемый объект имеет конкретную форму, которую необходимо связать с другим объектом.

Булево объединение также применяется для создания двух элементов, которые можно отделить от других при помощи функции Detach в Edit Mesh. Если операция булевого объединения используется для редактирования объектов там, где геометрия перекрывается однократно, каркас не образуется. Когда результирующие объекты разделяются, в каркасе появляется отверстие в месте соединения объектов. Для эффективного использования этого метода лучше всего присвоить каждому операнду уникальный идентификационный номер материала (Material ID#) так, чтобы можно было легко выбирать грани по Material ID# из Edit Mesh при выполнении отсоединения.



Понравилась статья? Поделитесь ей
Наверх