Центральный Дом Знаний - Моделирование с использованием булевых операций

Информационный центр "Центральный Дом Знаний"

Заказать учебную работу! Жми!



ЖМИ: ТУТ ТЫСЯЧИ КУРСОВЫХ РАБОТ ДЛЯ ТЕБЯ

      cendomzn@yandex.ru  

Наш опрос

Я учусь (закончил(-а) в
Всего ответов: 2688

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Форма входа

Логин:
Пароль:

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

Термин «булева операция» в математике используется для обозначения операций сравнения между множествами. В 3D Studio MAX аналогичные операции сравнения применяются в отношении совмещающихся или перекрывающихся геометрических объектов сцены. Булева операция осуществляется путем создания булева составного объекта из двух существующих объектов — данные объекты называются операндами и обязательно должны пересекаться в некоторой области пространства. Операнды представлены в виде отдельных объектов на всей стадии редактирования булева составного объекта, что позволяет при необходимости выбирать и модифицировать их и даже выполнять анимацию.

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

В 3D Studio MAX предусмотрены пять типов булевых операций (рис. 1):

  • Union (Объединение) — результатом операции является объект, который получается вследствие объединения двух исходных объектов; при этом части объектов, оказавшиеся внутри общего внешнего объема, удаляются;
  • Intersection (Пересечение) — полученный объект является результатом пересечения двух исходных объектов; при этом части объектов, оказавшиеся вне общего внутреннего объема, удаляются;
  • Subtraction (A-B)/Subtraction (B-A) (Вычитание (A-B)/Вычитание (B-A)) — результатом является объект, полученный посредством вычитания одного объекта из второго, все части которого отсекаются объемом первого и удаляются;
  • Cut (Вырезание) — полученный объект является результатом вырезания на поверхности первого объекта в местах пересечения со вторым объектом соответствующих отверстий и проемов.

 

Рис. 1. Примеры применения разных типов булевых операций

Рис. 1. Примеры применения разных типов булевых операций

Булевы объекты являются разновидностью составных объектов и поэтому принадлежат к группе Compound Objects (Составные Объекты) из категории Geometry (Геометрия) на панели Create (Создать). Технология создания булева объекта состоит из двух этапов — предварительной подготовки исходных объектов и последующего применения к ним требуемой булевой операции, причем перед применением последней один из исходных объектов обязательно должен быть выделен, иначе операция Boolean окажется недоступной.

Существует несколько методов создания булевых объектов:

  • Copy (Копия) — при создании булева объекта сохраняется оригинал операнда В;
  • Move (Перенос) — при создании булева объекта оригинал операнда В не сохраняется;
  • Instance (Образец) — создается Boolean-объект и одновременно сохраняется копия операнда В; при изменении копии булев объект будет изменяться, а при изменении булева объекта будет меняться копия;
  • Reference (Ссылка) — создается Boolean-объект и одновременно сохраняется копия В-операнда; если при этом изменять оригинал, то Boolean-объект тоже изменится; если же изменять Boolean-объект, то оригинал при этом изменяться не будет.
  • Результат булевой операции не всегда оказывается удачным, поэтому следует соблюдать ряд условий:
  • исходные объекты должны пересекаться в некоторой области пространства, причем характер пересечения нужно тщательно отрегулировать в окнах проекций;
  • исходные объекты должны иметь достаточное количество сегментов и быть сглаженными, иначе результат окажется слишком грубым или совсем не соответствующим задуманному;
  • каркасы должны быть построены правильно — грани, совместно использующие ребро, должны совместно использовать и две вершины, а ребро может совместно использоваться только двумя гранями. Для редактируемых сеток может потребоваться объединение совпадающих вершин вручную в режиме Edit Mesh.

Для примера попробуйте создать булеву операцию вычитания на примере трех перекрывающихся сфер (рис. 2). Выделите центральную сферу, на панели Create установите категорию объектов Geometry, в списке типов объектов укажите тип Compound Objects (Составные Объекты), щелкните по кнопке Boolean и установите операцию Subtraction (A-B). Обратите внимание, что в начальный момент оказывается определенным лишь операнд A(рис. 3), поэтому для указания операнда B щелкните по кнопке Pick Operand B (Выбрать операнд B), а затем укажите мышью самую большую из сфер. В итоге в сфере, использованной в качестве операнда A, появится выемка (рис. 4). Если операнд B был задан неправильно, не следует сразу же вновь щелкать по кнопке Pick Operand B и указывать другой объект (хотя программа это позволяет), поскольку объект, неудачно выбранный как операнд B, не восстановится (рис. 5). В таких ситуациях нужно сначала отменить предыдущий выбор операнда B командой Undo и только потом сделать новый выбор.

 

Рис. 2. Исходные сферы

Рис. 2. Исходные сферы

Рис. 3. Вид свитка Pick Boolean на начальной стадии создания булева объекта

Рис. 3. Вид свитка Pick Boolean на начальной стадии создания булева объекта

Рис. 4. Результат первой булевой операции

Рис. 4. Результат первой булевой операции

Рис. 5. Неудачный результат второй булевой операции: был повторно задан операнд B без отмены предыдущего выбора

Рис. 5. Неудачный результат второй булевой операции: был повторно задан операнд B без отмены предыдущего выбора

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

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

Для примера попробуем последовательно объединить три стандартных примитива — две сферы и цилиндр — в форму гантели. Создайте исходные объекты и разместите их по отношению друг к другу нужным образом (рис. 6 и 7). Выделите цилиндр, активируйте булеву операцию Union, для определения операнда B щелкните по кнопке Pick Operand B (Выбрать операнд B), а затем укажите мышью одну из сфер. В итоге цилиндр и сфера станут единым объектом. Выделите объединенный объект, активизируйте режим создания булевых объектов, щелкните по кнопке Pick Operand B (Выбрать операнд B) и укажите вторую сферу. Результатом станет получение одного единственного булева объекта (рис. 8).

 

Рис. 6. Исходные объекты

Рис. 6. Исходные объекты

Рис. 7. Рендеринг исходных объектов

Рис. 7. Рендеринг исходных объектов

Рис. 8. Гантель

Рис. 8. Гантель

Моделирование при помощи булева вычитания

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

На первом этапе воспользуемся булевой операцией вычитания для формирования цилиндрического отверстия внутри шара. Создайте исходные объекты в виде шара и цилиндра (радиус сечения цилиндра должен быть меньше радиуса шара, а его длина — больше радиуса шара) и выровняйте их друг в отношении друга по осям X, Y и Z, применив операцию Align (Выровнять) (рис. 9). Проведите рендеринг и сразу же скорректируйте параметры объектов так, чтобы они оказались достаточно гладкими, особенно в области пересечения; если этого не сделать, то созданный булев объект тоже не будет иметь надлежащей гладкости. В данном случае видно (рис. 10), что степень гладкости требуется увеличить — это достигается путем повышения плотности объектов: увеличения количества сегментов и сторон сегментов и уменьшения размера сегментов (рис. 11). В то же время при работе со сложными моделями для ускорения процесса моделирования в ряде случаев лучше увеличивать плотность объектов, задействованных в качестве операндов, не перед созданием булевой операции, а после — в ходе редактирования операндов на уровне объектов.

 

Рис. 9. Шар и цилиндр

Рис. 9. Шар и цилиндр

Рис. 10. Рендеринг исходных объектов

Рис. 10. Рендеринг исходных объектов

Рис. 11. Рендеринг объектов и их параметры после корректировки гладкости

Рис. 11. Рендеринг объектов и их параметры после корректировки гладкости

Выделите цилиндр, установите режим создания булевых объектов, установите операцию Subtraction (B-A) (Вычитание B-A), для указания операндаB щелкните по кнопке Pick Operand B (Выбрать операнд B) и укажите сферу. Это приведет к удалению внутренней части сферы точно по размеру исходного цилиндра таким образом, что в сфере появится сквозное отверстие (рис. 12).

 

Рис. 12. Сфера с отверстием

Рис. 12. Сфера с отверстием

Формируемые при помощи булева вычитания отверстия могут иметь самую разную форму, а результат зависит не только от размеров и формы объектов, но и от положения их в отношении друг друга, а также от того, какой из объектов был указан первым. Возьмите в качестве исходных объектов куб и шар и разместите их показанным на рис. 13 образом. Выделите куб, установите в режиме создания булевых объектов операциюSubtraction (A-B) и в качестве операнда B укажите сферу — результатом станет появление в ней соответствующего углубления (рис. 14), а потом сохраните результат (он нам позже потребуется). Отмените созданную булеву операцию и примените к исходным объектам булево вычитаниеSubtraction (A-B), но в качестве первого операнда укажите сферу — и вместо куба с углублением итогом операции окажется шар, в котором как бы вырезана одна из его четвертей (рис. 15). Стоит отметить, что для получения того же самого результата совсем не обязательно было менять местами операнды: с таким же успехом можно было вместо операции Subtraction (A-B) выбрать операцию Subtraction (B-A). Подобная взаимозамена операций Subtraction (A-B) и Subtraction (B-A) очень удобна, так как при неверном выборе операнда A не потребуется отменять операцию, а достаточно лишь переключиться с одной операции вычитания на другую.

 

Рис. 13. Куб и шар

Рис. 13. Куб и шар

Рис. 14. Углубление в кубе

Рис. 14. Углубление в кубе

Рис. 15. Выемка фрагмента шара

Рис. 15. Выемка фрагмента шара

Как было отмечено, форма получающейся выемки определяется вторым операндом. Попробуйте вместо шара создавать выемки и углубления другими объектами. Например, при применении объекта Hose (Шланг) (рис. 16) может быть получена резьбообразная выемка (рис. 17). Если же взять в качестве операнда B граненую призму Gengon (рис. 18), то выемка окажется многогранной (рис. 19), а при использовании веретена Spindle — скошенной (рис. 20 и 21) и т.п.

 

Рис. 16. Исходные объекты

Рис. 16. Исходные объекты

Рис. 17. Куб с резьбовидной выемкой

Рис. 17. Куб с резьбовидной выемкой

Рис. 18. Куб и шланг

Рис. 18. Куб и шланг

Рис. 19. Куб с граненой выемкой

Рис. 19. Куб с граненой выемкой

Рис. 20. Куб и веретено

Рис. 20. Куб и веретено

Рис. 21. Куб со скошенной выемкой

Рис. 21. Куб со скошенной выемкой

Булева операция Intersection (Пересечение) является обратной к булевым операциям Subtraction (A-B)/Subtraction (B-A) (Вычитание (А-В)/Вычитание (В-А), так как получаемые с ее помощью булевы объекты представляют собой фрагменты операндов A и B, которые удаляются при операции булева вычитания, если ее провести в отношении тех же самых объектов. Возьмите в качестве исходных рассмотренные выше куб и шар, выберите куб в качестве операнда A, а затем проведите булеву операцию Intersection (Пересечение) — результатом будет получение четверти шара, которая ранее оказывалась вырезанной в ходе операции Subtraction (B-A) (рис. 22).

Рис. 22. Исходные объекты и булевы объекты при операциях Intersection и Subtraction (В-А)

Более интересные варианты поверхностей создаются при использовании в качестве операнда B скрученных объектов. Можно попробовать получить подобный объект на основе примитива Torus, в исходном состоянии имеющего такой вид, как на рис. 23, а после скручивания (параметрTwist) на 360° — как на рис. 24. Дополнительно создайте цилиндр, разместите объекты, как показано на рис. 25, и при выполнении булевой операции Subtraction (A-B) укажите цилиндр как операнд A — результат представлен на рис. 26.

 

Рис. 23. Исходный торус

Рис. 23. Исходный торус

Рис. 24. Торус после скручивания

Рис. 24. Торус после скручивания

Рис. 25. Цилиндр и скрученный торус

Рис. 25. Цилиндр и скрученный торус

Рис. 26. Цилиндр с резьбой

Рис. 26. Цилиндр с резьбой

Создание вложенных булевых объектов

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

Для примера возьмите ранее созданный и сохраненный булев объект (рис. 27), создайте еще один цилиндр и разместите его так, как показано на рис. 28. Выделите исходный булев объект (для этого придется выйти из списка Compound Objects (Составные объекты) путем выбора геометрии другого типа), активируйте булеву операцию вычитания Subtraction (A-B) и вторым операндом укажите отдельный цилиндр — в кубе появится еще одна выемка (рис. 29). Полученный булев объект можно использовать для новой булевой операции, например вырезав в нем пирамидой треугольную выемку (рис. 30 и 31).

 

Рис. 27. Исходный булев объект

Рис. 27. Исходный булев объект

Рис. 28. Объекты первой вложенной булевой операции

Рис. 28. Объекты первой вложенной булевой операции

Рис. 29. Результат первой вложенной булевой операции

Рис. 30. Объекты для двукратно вложенной булевой операции

Рис. 30. Объекты для двукратно вложенной булевой операции

Рис. 31. Результат двукратно вложенной булевой операции

Рис. 31. Результат двукратно вложенной булевой операции

                                                                                                                                                                                                     [ 1 ]

Loading

Календарь

«  Март 2024  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
25262728293031

Архив записей

Друзья сайта

  • Заказать курсовую работу!
  • Выполнение любых чертежей
  • Новый фриланс 24