Приветствую, коллеги !
В своей работе приходится часто и много поворачивать объекты ровно на 90 градусов и хотелось бы посадить эту операцию на хоткей, чтобы делать это на лету, а не вбивать постоянно "90" в окошко.. В максе есть функция RotateCW, но она поворачивает объект только вокруг пивота, даже если выбрана опция "use selection center" и не работает, если выделено больше одного объекта.
Также пытался сделать это скриптом:
(
rotate $ (angleaxis 90 [0,0,1])
)
Такой скрипт работает, если выделено несколько объектов или группа, но так же вращает их только вокруг их пивотов - даже внутри группы..
Есть ли способ каким-то образом всё-таки сделать чтобы скрипт вел себя точно так же, как если бы я вручную выбрал комманду "Select and rotate" и вбивал в окошко значение "90" ?
как вариант:
1-правой кнопкой на угловой привязке и вбивай 90 в угол.
2-в хоткеях назначай подходящую кнопку
т.е. при выборе "поворота" и вкл. привязке, поворот будет строго на 90гр.
хоткеем откл. привязку и крутишь на любой угол.
mechos
я не уверен, но думаю со скриптом еще больше будет движений чем с мышкой.
(в какую сторону поворачивать, по какой оси, что будет центром поворота и т.д....
слишком много меняющихся условий)
Quote:
А как сделать чтоб одновременно и Snap работал по 5 градусов и хоткей был на 90 градусов?
как вариант:
1-правой кнопкой на угловой привязке и вбивай 90 в угол.
2-в хоткеях назначай подходящую кнопку
т.е. при выборе "поворота" и вкл. привязке, поворот будет строго на 90гр.
хоткеем откл. привязку и крутишь на любой угол.
Спасибо за ответ !
Пробовал так - к сожалению, неудобно - всё-равно надо мышкой поворачивать, чтобы привязался, да еще смотреть чтоб не перескочил в 180 / 270 - так что моментально так не повернешь.. А цель - именно поворот за доли секунды в один клик хоткея..
Quote:
я не уверен, но думаю со скриптом еще больше будет движений чем с мышкой.
(в какую сторону поворачивать, по какой оси, что будет центром поворота и т.д....
слишком много меняющихся условий)
Скриптом быстрее - я так сделал в Автокаде и там прекрасно работает. просто все переменные тут должны быть константами:
направление - всегда по часовой
ось - всегда ось Z (вида или, на худой конец, мировая)
центр поворота - всегда геометрический центр объекта или группы (НЕ пивот)
Скрипт нужен исключительно для личного пользования и универсальность и множество опций тут не только не нужны, но и недопустимы, важна именно скорость операции.
В toolbar или hotkey есть операция rotateCW и CCW. Она поворачивает на 90 гр, правда поворачивает в зависимости от вида, который перед вами.
Если внимательно прочитать моё сообщение - можно внезапно обнаружить, что я о ней писал:
"В максе есть функция RotateCW, но она поворачивает объект только вокруг пивота, даже если выбрана опция "use selection center" и не работает, если выделено больше одного объекта. " В моем случае она абсолютно неприемлема.
Пардоньте, внимательно читал только ваш пост номер 2. Думаю нужно копать хелп или ждать тех кто хорошо понимает Maxscript, чтобы в скрипте обозначить что пивот должен быть общим.
На render ру мне вроде бы помогли.
скрипт выглядит так:
( rotate_center = [0, 0, 0]
for o in selection do rotate_center += o.center
rotate_center /= selection.count
for o in selection where o.parent == undefined or not o.parent.isSelected do
in coordsys grid about rotate_center rotate o (angleaxis -90 [0,0,1])
)
Пока работает именно так, как мне и было надо.. широкомасштабных испытаний еще не проводил )
В любом случае - всем спасибо за ответы