Render.ru

Active Grid Object

Feodor

Мастер
Рейтинг
453
#1
Можете помочь немного с написанием скрипта?
У меня есть очень небольшой и простой самодельный скриптик, вот он

macroScript ViewGrid
category:"Plugins"
internalcategory:"Plugins"
ButtonText:"ViewGrid"
tooltip:"ViewGrid"
(
actionMan.executeAction 0 "40135"
actionMan.executeAction 0 "40084"
)

Его действия: он облегчает выбор в сцене Grid объекта. Создал на поверхности такой Helper как Grid, жму кнопку "G" кстати эта кнопка в Максе никогда не задействована ничем (сам доктор прописал как говорится) И вид становится по Grid объекту. Не нужно лезть во View, или как сейчас стало в Tools, искать там в длинной строчке Grid and Shapes затем Active Grid Object, потом щёлкать на параметр Viewport`а точнее правой мышкой на Perspective, ищем мышкой Extented Viewport - Grid - Display Plane. Мягко говоря неудобно, вот все эти действия я и повесил на этот скриптик.
У меня вопрос: можно ли организовать, что бы при повторном нажатии на "G" включался Active Home Grid? И если возможно, возвратить тот вид который был до этого?
Заранее спасибо за помощь.
 

igorznag

Мастер
Рейтинг
103
#2
Создал на поверхности такой Helper как Grid, жму кнопку "G" ... затем Active Grid Object.
В сцене могут быть несколько объектов Grid или только один объект?
Если в сцене есть несколько объектов Grid, тогда:
1. Если активирован Home Grid, тогда нужно активировать выделенный объект Grid?
2. Если активирован объект Grid01 и выделяем объект Grid02 тогда нужно активировать объект Grid02 или Home Grid?

У меня вопрос: можно ли организовать, что бы при повторном нажатии на "G" включался Active Home Grid?
1. В новой сцене создаем 2 объекта Grid: Grid01 и Grid02.
2. Выделяем объект Grid01. Нажимаем кнопку "G". Нажимаем кнопку "G".
3. Выделяем объект Grid01. Нажимаем кнопку "G". Выделяем объект Grid02. Нажимаем кнопку "G". Нажимаем кнопку "G".
Код:
macroScript ViewGrid category:"Plugins"
( 
if(activeGrid==undefined)then (if(classof $==grid)then activeGrid=$)
else 
(
t=undefined; if(classof $==grid)then if(activeGrid!=$)then t=$
activeGrid=t
) 
)
ищем мышкой Extented Viewport - Grid - Display Plane ... возвратить тот вид который был до этого?
Из каких видов вы переходите на вид Grid-Display Plane? Где вы хотите хранить информацию про предыдущие виды?
Допустим запоминаем вид только когда переходим из вида User, Perspective, Top, Left, Front, Bottom, Right, Back.
1. В новой сцене создаем 2 объекта Grid: Grid01 и Grid02. Устанавливаем вид Perspective.
2. Выделяем объект Grid01. Нажимаем кнопку "G". Нажимаем кнопку "G".
3. Выделяем объект Grid01. Нажимаем кнопку "G". Выделяем объект Grid02. Нажимаем кнопку "G". Нажимаем кнопку "G".
Код:
macroScript ViewGrid category:"Plugins"
(
global viewgrid_view_type_temp
type_view_array=#(#view_top,#view_bottom,#view_right,#view_left,#view_front,#view_back,#view_persp_user,#view_iso_user)

if(activeGrid==undefined)then --1
(
if(classof $==grid)then --1.1
(
activeGrid=$; temp=viewport.getType();
if(findItem type_view_array temp !=0)then --1.1.1
(
viewgrid_view_type_temp=temp; actionMan.executeAction 0 "40227" -- save view
viewport.setType #view_grid;
)--if(findItem type_view_array t !=0)then 1.1.1
)--if(classof $==grid)then 1.1
)--if(activeGrid==undefined)then 1
else --1
(
t=undefined; if(classof $==grid)then if(activeGrid!=$)then t=$
activeGrid=t
if(activeGrid!=undefined)then --1.1
(
temp=viewport.getType();
if(findItem type_view_array temp !=0)then  --1.1.1
(
viewgrid_view_type_temp=temp; actionMan.executeAction 0 "40227" -- save view
viewport.setType #view_grid;
)--if(findItem type_view_array t !=0)then --1.1.1
)--if(activeGrid!=undefined)then --1.1
else--1.1
(
if(viewgrid_view_type_temp==undefined)then viewgrid_view_type_temp=#view_persp_user;
viewport.setType viewgrid_view_type_temp;
actionMan.executeAction 0 "40228" -- restore view
)--else( 1.1
)--if(activeGrid==undefined)then  else --1
)
 

Feodor

Мастер
Рейтинг
453
#3
igorznag ух, как Вы намесили мне....
Всё банально просто, всё почти как с камерой, выделяешь нужный Grid, жмёшь кнопку, во вьюпорте активируется выделенный. Повторное нажатие отключается.

Пойду проверять,, очень благодарен за труд!
 
Сверху