Сначала прочитайте вопрос в конце, если не понятно, то вот подробная история:
команда "Center Point Cycle" вызывается следующей строкой в скриптовом языке:
actionMan.executeAction 0 "40235";
решил написать скрипт, который бы переключал при нажатии одной и той же клавиши с "use pivot point center" на "use selection center" и наоборот.
Вот скрипт и комментарии: (просьба если я что-то не так понимаю - поправить). Скрипт разместил в startup.
A=0 --при запуске 3д макса переменной А присваивается значение 0. Так же при запуске по умолчанию у нас выбрано "use pivot point center"
macroScript transform_center --создаём макроскрипт с названием transform_center
category: "myscripts" --категория в которой будет размещён макроскрипт
tooltip: "transform_center" --имя. На против него в customize user interface (после запуска скрипта), назначил горячую клавишу , можно так же добавить этот макроскрипт в тулбар или меню, вызываемое правой кнопкой.
(
if (A==0) then
(
actionMan.executeAction 0 "40235" ; A=1
)
-- если А=0, то выбираем следующий тип - то есть "use pivot point" и указываем что он выбран (A=1)
else
(
actionMan.executeAction 0 "40235";
actionMan.executeAction 0 "40235";
A=0
)
-- иначе (если А=1), пропускаем следующий тип "use transform coordinate center" и выбираем "use selection center" и указываем что он выбран (A=0)
)
Вообщем как-то так через *опу.
Почему через *опу, потому что: при выборе например working pivot автоматически выбирается "use transform coordinate center". И после этого уже будут чередоваться не те 2 режима...
Вместо переменной А лучше использовать тот параметр, который изменяется при вызове команды "Center Point Cycle" или:
actionMan.executeAction 0 "40235";
То есть параметр в котором записано какой из трёх вариантов используется: "use pivot point" или "use selection center" или "use transform coordinate center"
Тогда можно будет сделать нормальное условие if и проблем не будет.
Отсюда вопрос: как в MAXScript Listener после выполнения строки узнать параметры которые изменились? (выводится только результат)
после выполнения:
actionMan.executeAction 0 "40235";
выводится:
true
а я хочу узнать какой параметр изменился.