Инструмент Морф — безграничные возможности моделирования. Часть 4.

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

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

Создадим в окне Плана этажа при помощи ломаных линейных морфов надпись.

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

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

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

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

При помощи команды Конструирование → Изменить морф → Покрыть гранями создадим грани с четкими ребрами для двух средних букв. Теперь необходимо удалить лишние грани, присутствующие в последних трех буквах. Для букв, покрытых контурами, это не вызовет никаких проблем — достаточно щелкнуть левой клавишей мыши на нужных гранях при нажатой комбинации клавиш SHIFT + CTRL и нажать клавишу DELETE. Для добавления в выборку последней буквы, в которой присутствуют три грани и две из них находятся в одной плоскости с гранью, образованной внешним контуром, создать отверстия, таким образом не удастся. Самое простое, что мы можем сделать в данном случае — это удалить все грани в последней букве, сохранив при этом ребра (здесь нам снова надо будет воспользоваться курсором выбора подэлементного уровня), а затем повторить произведенные операции, использованные при работе с двумя средними буквами (объединить ребра, покрыть их гранями и удалить ненужные грани для создания отверстий).

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

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

Создадим квадратный морф размерами 1000×1000, лежащий в горизонтальной плоскости. Затем выберем его грань и щелкнем на нем левой клавишей мыши. В открывшейся Локальной панели выберем команду Выдавливание по пути. Сначала переместим указатель мыши вверх, и, нажав на клавишу TAB, введем в Панель слежения значение 3000, затем переместим курсор в сторону, а потом нажмем клавишу SHIFT для привязки к горизонтальной оси, снова нажав на клавишу TAB, введем значение 5000. Для окончания редактирования морфа, переместим мышь вниз и, нажав клавишу SHIFT для активации рейсшины, укажем любую начальную точку морфа. Для подтверждения завершения построения, сделаем в конечной точке пути выдавливания двойной щелчок левой клавишей мыши.

Теперь, нажав и удерживая клавиши SHIFT + CTRL, укажем курсором область выборки, как показано на иллюстрации. В данном случае нижние грани морфа оказались не выбранными.
Воспользуемся командой Конструирование-> Изменить морф → Сгладить и объединить грани. В открывшемся диалоговом окне выберем вариант Сгладить границы и установим ползунок степени сглаживания в среднее положение.

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

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

Как видим, теперь границы подэлементов морфа, не попавших в выборку, сохранились.

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

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

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

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

При работе с морфами доступны два типа геометрических операций:

  • логические операции, появившиеся в Archicad® 16;
  • операции твердотельного моделирования или операции с объемными элементами.

Рассмотрим поведение морфов в обоих случаях.

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

Первому морфу размерами 1000×1000×1000 присвоим непрозрачное покрытие, например, Краска 12. Для второго морфа размерами 2000×1500×2000 в качестве покрытия назначим прозрачное стекло.
Разместим морфы таким образом, чтобы они пересекали друг друга. Нам потребуются три пары таких элементов, поэтому воспользуемся командой многократного перемещения копии, активируемой нажатием клавиш CTRL + ALT или же командой тиражирования (CTRL + U).

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

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

Обратите внимание: для выполнения этой операции в качестве элемента-оператора обязательно должен выступать твердотельный морф. Чтобы убедиться в верности данного утверждения, отменим последнюю операцию, нажав сочетание клавиш CTRL + Z, и удалим верхнюю грань стеклянного морфа. Затем воспользуемся командой логической операции вычитания и попытаемся в качестве целевого элемента выбрать непрозрачный морф. В результате будет выведено предупреждение о том, что эта операция не может быть выполнена.

Перейдем к последней паре элементов и, выбрав их, воспользуемся командой Конструирование → Изменить морф → Пересечь. Эту команду можно найти и в разделе Логические операции контекстного меню. Действие данной операции несколько напоминает операцию Объединение с той лишь разницей, что в результате сохраняется общая часть для участвующих в ней морфов. Наследование же покрытия граней происходит так же, как и в предыдущей операции. Участвовать в операциях пересечения могут и нетвердотельные элементы.

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

Расположим морфы, как показано на иллюстрации, и выберем кубический морф, чтобы при открытии диалога твердотельного моделирования он сразу оказался целевым элементом. Воспользуемся командой Конструирование → Операции над объемными элементами. Или воспользуемся аналогичной командой, находящейся в разделе Соединить контекстного меню. Поскольку ранее выбранный куб уже применяется в качестве целевого элемента, выберем красный морф, нажмем кнопку Получить элементы оператора. Затем выберем Вычитание с выталкиванием вверх и нажмем кнопку Выполнить.
Данная операция является ассоциативной, и значит, она будет выполняться при условии, что у морфа-оператора присутствует хоть одна грань или поверхность, по которой может производиться вычитание.
Попробуем удалить верхнюю грань красного морфа. Как видим, операция по-прежнему выполняется, поскольку у морфа все еще присутствует нижняя грань. Удалим и ее. В результате геометрия кубического морфа полностью восстановилась, но при этом действие операции все еще продолжается. Это означает, что при добавлении новой грани или поверхности к красному морфу, пресекающей как-либо коричневый морф, снова будет происходить вычитание с выталкиванием вверх.

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

Статья написана на основе учебных и презентационных материалов, разработанных Enikő Paukó, Graphisoft® SE.

4 августа 2013 г.
Читать другие статьи