2 - 2013

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

Алексей Белов
Ведущий специалист направления Graphisoft, ЗАО «Нанософт»

С выходом ArchiCAD 16 его пользователи получили уникальный инструмент, невероятно расширивший возможности создания абсолютно любых свободных форм. Этот инструмент выводит ArchiCAD на совершенно новый уровень моделирования. В какой­то степени будет справедливым утверждение, что Морф — даже не инструмент, а целое направление в области моделирования в среде ArchiCAD. Ведь он позволяет не только моделировать любые новые формы и объемы, но и редактировать абсолютно любые BIM­компоненты, будь то стены, лестницы, перекрытия, предметы мебели и т.д.

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

Для начала давайте разберемся, из чего же состоит морф.

Любой морф образуется прежде всего ребрами и вершинами.

Попробуем создать наш первый морф. Обратите внимание, что морфы можно создавать в любом представлении проекта, будь то окно плана этажа, окно разреза/фасада или же 3D­окно. Мы с вами в основном будем работать в 3D­окне — это позволит нам не только лучше понять принципы работы с морфами, но и освоить новые возможности 3D­моделирования, появившиеся в ArchiCAD 16.

Для упрощения и ускорения работы мы будем постоянно пользоваться клавишными командами, которые вы можете задать в соответствии с настройками, предлагаемыми в данной статье, или же назначить собственные сочетания. Для настройки клавишных команд воспользуйтесь диалоговым окном Параметры -> Окружающая среда -> Клавишные команды…

Итак, перейдите в 3D­окно (клавиша F5) и активируйте показ плоскости редактирования (ALT+E) — рис. 1. Активируйте инструмент Морф и выберите геометрический вариант построения Многоугольный. Первым щелчком левой кнопкой мыши укажите начальную точку морфа, а вторым — его конечную точку. Для завершения построения еще раз щелкните левой кнопкой мыши в конечной точке морфа.

Рис. 1

Рис. 1

Рис. 2

Рис. 2

По окончании построения выберите получившийся морф (рис. 2). Для этого щелкните на нем левой кнопкой мыши при нажатой клавише SHIFT.

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

Обратите внимание, что даже такой простой морф может быть отредактирован и может стать более сложным элементом. Добавим еще одну вершину в имеющийся у нас отрезок. Щелкните левой кнопкой мыши на ребре при активном инструменте Морф и выберите в появившейся локальной панели функцию добавления вершины (рис. 3). Теперь морф состоит из двух отрезков. Причем один из них остался в выборке (подсвечен), а другой — нет. Щелчком левой кнопкой мыши за пределами морфа отмените выборку. Активируйте инструмент Указатель. Давайте посмотрим, какие он претерпел изменения (рис. 4).

Рис. 3

Рис. 3

Рис. 4

Рис. 4

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

Нажмите сочетание клавиш SHIFT+CTRL и наведите указатель на любой из двух отрезков, составляющих морф. Как видите, подсвечивается только тот подэлемент, на котором находится указатель. Добавьте любой отрезок в выборку, щелкнув на нем левой кнопкой мыши.

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

Рис. 5

Рис. 5

Рис. 6

Рис. 6

Постройте еще два отрезка, чтобы замкнуть контур, как показано на рис. 6.

Как только контур оказался замкнут, внутри него автоматически появился новый подэлемент — грань. Обратите, пожалуйста, внимание на то, что термин «грань» относится только к плоским подэлементам. Неплоские подэлементы называются поверхностями.

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

Рис. 7

Рис. 7

Выберите одно из ребер (при нажатой комбинации клавиш SHIFT+CTRL) и удалите его. Как видите, грань тоже исчезла. Это значит, что ребра могут существовать без граней, но не наоборот: грань всегда образуется замкнутым контуром, состоящим из ребер и вершин.

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

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

Рис. 8

Рис. 8

Важно помнить, что операция Выталкивание/вытягивание выполняется только в направлении, перпендикулярном плоскости грани.

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

Щелчком левой кнопкой мыши укажите первую вершину параллелепипеда, затем, переместив курсор мыши, нажмите клавишу TAB и введите значение 1000, еще раз нажмите TAB и введите 1000. Для завершения построения основания параллелепипеда нажмите клавишу ENTER. Поднимите курсор мыши выше и снова нажмите TAB. Введите еще раз значение 1000 и нажмите ENTER.

Выберите получившийся куб при помощи обычного указателя (или  щелкнув на нем левой кнопкой мыши при нажатой клавише SHIFT) и переместите его копию. Для этого в локальной панели выберите функцию перемещения и нажмите клавишу CTRL (рис. 9). Либо воспользуйтесь сочетанием клавиш CTRL+SHIFT+D.

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

Рис. 9

Рис. 9

Рис. 10

Рис. 10

Добавьте в выборку один из созданных вами морфов, щелкните на нем еще раз левой кнопкой мыши для вызова локальной панели и выберите функцию Изменения габаритного контейнера (рис. 10).

В зависимости от того, на подэлементе какого типа (ребре или грани) вы сделаете следующий щелчок левой кнопкой мыши, будут доступны различные варианты редактирования общей геометрии морфа, заключенного в контейнер (рис. 11). По окончании редактирования щелкните левой кнопкой мыши внутри габаритного контейнера или нажмите клавишу ENTER. Для отмены изменений щелкните левой кнопкой мыши за пределами габаритного контейнера или нажмите клавишу ESC.

Рис. 11

Рис. 11

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

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

Добавьте в выборку второй куб. Щелкните левой кнопкой мыши на вершине, принадлежащей верхней грани морфа, и выберите в появившейся локальной панели функцию Перемещения вершины. Переместите выбранную вершину вниз приблизительно на половину высоты ребра. Для ограничения перемещения курсора по осям X, Y или Z используйте клавишу SHIFT. Как видите (рис. 12), ребра, ограничивавшиеся данной вершиной, следуют за ее перемещениями, а на верхней грани автоматически создалось новое ребро в месте излома граней.

Рис. 12

Рис. 12

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

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

Рис. 13

Рис. 13

Подтвердите ввод нажатием кнопки ОК (или клавиши ENTER).

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

Рис. 14

Рис. 14

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

Воспользуемся морфом, созданным нами в предыдущем примере. Существующее скругление вершины нам только помешает. Рассмотрим один из вариантов, как избавиться от него (рис. 15а).

Рис. 15

Рис. 15

Добавьте в выборку (при нажатой комбинации клавиш SHIFT+CTRL) все три дуговых ребра, образующих скругленную поверхность, и удалите их. Как и следовало ожидать, удалилась не только поверхность, но и грани, в состав которых входили удаленные ребра (рис. 15б).

Попробуем исправить ситуацию. Сначала нам потребуется воссоздать пересечение ребер в одной точке. Выберите любое ребро, например левое. Следует дотянуть его вершину до вертикального ребра. Для упрощения работы воспользуемся 3D­направляющей. Наведите указатель мыши на вертикальное ребро и задержите на нем курсор мыши. Щелкните левой кнопкой мыши на появившейся оранжевой точке для активации направляющей линии (рис. 15в). Теперь не составит труда дотянуть выбранное ребро путем перемещения его вершины при помощи интеллектуального курсора. Для ограничения перемещений курсора по осям воспользуйтесь клавишей SHIFT. Отредактируйте остальные ребра. При этом 3D­направляющие вам уже не потребуются.

Обратите внимание: при отсутствии одной и более граней или поверхностей морф перестает быть твердотельным и соответственно не может использоваться в некоторых операциях, применяемых к объемным элементам. Кроме того, твердотельность морфа влияет на его отображение в сечении. Информация о том, является ли выбранный морф твердотельным, указывается в информационном табло (рис. 16).

Рис. 16

Рис. 16

Итак, у нас уже есть полностью подготовленный каркас, однако  отсутствуют грани. Давайте воссоздадим их.

Выберите ребра, ограничивающие верхнюю горизонтальную плоскость морфа, и воспользуйтесь командой Конструирование -> Изменить морф -> Покрыть гранями (рис. 17). В появившемся диалоговом окне выберите вариант Четкие ребра.

Рис. 17

Рис. 17

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

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

Вернемся к рассмотрению методов работы с ребрами и образуемыми ими поверхностями.

Выберите ребро, принадлежащее верхней горизонтальной грани морфа, как показано на рис. 18. Щелкните на нем левой кнопкой мыши и в появившейся локальной панели выберите функцию Искривление ребра. Попробуйте искривить ребро в горизонтальной плоскости с радиусом 700 при помощи панели слежения (клавиша TAB). Для упрощения работы воспользуйтесь функцией выбора плоскости редактирования посредством контекстного меню или соответствующей пиктограммой, находящейся в панели команд.

Рис. 18

Рис. 18

Рис. 19

Рис. 19

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

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

Создайте новый морф кубической формы с геометрическими параметрами, аналогичными исходным размерам предыдущего морфа (1000x1000x1000). Добавьте в выборку все ребра, образующие верхнюю грань морфа, щелкните левой кнопкой мыши на любой грани и в появившейся локальной панели выберите команду перемещения (или воспользуйтесь сочетанием клавиш CTRL+D). Переместите ребра на 200 мм вверх. Как видите (рис. 20), результат данной операции не отличается от того, которого мы достигли бы, применив к верхней грани команду Выталкивания/вытягивания. Этого же мы могли добиться и путем простого вертикального перемещения верхней грани, а не образующих ее ребер. Таким образом, в данной простейшей ситуации мы увидели, как один и тот же результат может быть получен с использованием различных вариантов редактирования морфа. Попробуем определить, в чем заключаются принципиальные отличия и как выбор типа редактируемых подэлементов отражается на результате.

Рис. 20

Рис. 20

Как уже отмечалось, при использовании команды Выталкивания/вытягивания перемещение возможно только в направлении, перпендикулярном плоскости, в которой лежит грань. Таким образом, мы сможем только вытянуть морф в каком­то одном направлении, причем число направлений будет ограничено геометрией самого морфа (рис. 21).

Рис. 21

Рис. 21

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

Рис. 22

Рис. 22

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

Рис. 23

Рис. 23

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

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

Рис. 24

Рис. 24

Обратите внимание, что для выбора ребер нет необходимости поворачивать морф в 3D­окне — после первого щелчка левой кнопкой мыши на любом видимом подэлементе все прочие подэлементы подсвечиваются.

В диалоговом окне тиражирования установите количество дубликатов, равное двум, и нажмите клавишу ENTER. Для ограничения направления перемещения дубликатов и задания расстояния воспользуйтесь сочетанием клавиш SHIFT+R. Введите значение приращения — 700 и дважды нажмите клавишу ENTER, чтобы выполнить тиражирование только в одном направлении (рис. 25).

Рис. 25

Рис. 25

Рис. 26

Рис. 26

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

Рис. 27

Рис. 27

Рассмотрим применение операции смещения всех ребер какой­либо грани. Добавьте в выборку исходный морф и щелкните левой кнопкой мыши на его верхней грани. Выберите в появившейся локальной панели команду Смещения всех ребер и переместите курсор мыши вправо. Как видите (рис. 28), площадь грани уменьшается вплоть до ее полного вырождения и, следовательно, превращения параллелепипеда в пирамиду.

Рис. 28

Рис. 28

Теперь поэкспериментируем со смещением копий всех ребер. Не подтверждая изменения морфа щелчком левой кнопки мыши, нажмите клавишу CTRL для активации команды Смещения копии всех ребер. Переместите указатель мыши таким образом, чтобы копии ребер оказались внутри контура исходной грани. Для точного указания смещения нажмите клавишу TAB или R и в активировавшейся панели слежения введите значение 300 (рис. 29). Подтвердите ввод нажатием клавиши ENTER. В результате были образованы новые ребра и, как следствие, появилась новая грань в центре уже существующей.

Рис. 29

Рис. 29

Рис. 30

Рис. 30

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

Выберите вновь созданную грань, лежащую внутри исходной, и щелкните на ней левой кнопкой мыши. В появившейся локальной панели выберите команду Свободное вращение или воспользуйтесь сочетанием клавиш CTRL+E и переместите указатель мыши на ребро грани таким образом, чтобы появившееся изображение транспортира приняло вертикальное положение (рис. 30). Для упрощения указания направления вращения можно воспользоваться функцией выбора плоскости редактирования и щелкнуть левой кнопкой мыши на соответствующей грани морфа. Двумя щелчками левой кнопкой мыши укажите начало и конец вектора вращения, переместите курсор мыши выше и нажмите клавишу TAB или А. В активировавшейся панели слежения укажите угол поворота — 60° и нажмите клавишу ENTER (рис. 31). Как видите, вращение грани привело к изменению смежных с ней подэлементов и созданию новых граней и ребер. Безусловно, команда свободного вращения применима и к подэлементам, находящимся за пределами основной геометрии морфа, но в таком случае изменения коснутся только вращаемых элементов и никак не повлияют на не  связанные с ними ребрами или гранями части морфа.

Рис. 31

Рис. 31

Рассмотрим еще одну очень полезную команду, применимую к граням. Она несколько напоминает действие команды Выталкивания/вытягивания, однако не ограничивает нас лишь перепендикулярным плоскости направлением вытягивания.

Выберите повернутую ранее грань и щелкните на ней левой кнопкой мыши. В появившейся локальной панели активируйте команду Вытягивания/выдавливания по пути. Действие этой функции применимо абсолютно в любом направлении, и, что немаловажно, путь выдавливания может содержать как прямые, так и криволинейные участки. Попробуем выдавить грань сначала на 1200 мм в направлении, перпендикулярном ее плоскости, затем создадим горизонтальный отрезок длиной 600 мм и завершим операцию созданием криволинейного участка радиусом 400 мм. Для осуществления этих построений лучше всего воспользоваться привязкой к направляющим линиям, локальной панелью и панелью слежения. Первый участок пути будет создан перпендикулярно плоскости, поэтому просто введем при помощи клавиши R значение 1200 и подтвердим ввод нажатием клавиши ENTER (рис. 32а). Затем нажатием и удерживанием клавиши SHIFT осуществим привязку к оси и, удостоверившись, что в локальной панели выбрано построение прямого участка, введем значение 600 (рис. 32б). Снова подтвердим ввод нажатием клавиши ENTER. Для построения последнего участка выберем в локальной панели геометрический вариант построения Дуга по точке центра, опустим курсор мыши вниз, нажмем сочетание клавиш SHIFT+R и введем значение 400 (рис. 32в). Остается только при помощи мыши указать угол поворота последнего сегмента и дважды щелкнуть левой кнопкой мыши для завершения построения (рис. 32г). 

Рис. 32

Рис. 32

Продолжение следует

САПР и графика 2`2013