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

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

Попробуем исправить ситуацию.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рассмотрим применение операции смещения всех ребер какой-либо грани. Добавьте в выборку исходный морф и щелкните левой кнопкой мыши на его верхней грани. Выберите в появившейся Локальной панели команду Смещения всех ребер и переместите курсор мыши вправо. Как видите, площадь грани уменьшается вплоть до ее полного вырождения и, следовательно, превращения параллелепипеда в пирамиду. Теперь поэксперементируем со смещением копий всех ребер. Не подтверждая изменения морфа щелчком левой кнопки мыши, нажмите клавишу CTRL для активации команды Смещения копии всех ребер. Переместите указатель мыши таким образом, чтобы копии ребер оказались внутри контура исходной грани.

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

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

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

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

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

Алексей Белов
ЗАО «Нанософт»
Ты.: (495) 645−8626
E-mail: ab@nanocad.ru