Render.ru
Поддержать

Active Grid Object

Feodor

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

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
Создал на поверхности такой 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

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

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

Feodor

Мастер
Рейтинг
457
igorznag Последний вариант то что надо!!! Спасибо огромное!