Создание своей активной (нажатой) кнопки на панели.

Автор
Сообщение
На сайте c 04.03.2008
Сообщений: 332
Краснодар

Приветствую всех! Вопрос больше к тем, кто разбирается в maxscript.

Я написал несколько своих маленький скриптов. Их задача переключение градусов поворота выделенного объекта. Присвоил им кнопки и вынес на панель макса.Все работает, но что не нравится. Нет визуального отображения какая из кнопок включена в данный момент. Хотел сделать кнопку при нажатии на которую она становится нажатой, выделяется фон другим цветом. Тогда при работе я могу видеть какой градус поворота объекта в данный момент активен.Вот пример максовской панели привязок. Активная привязка выделена другим цветом.

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

Прошу подсказать решение задачи, если кто знает. Буду благодарен!

На сайте c 15.04.2013
Сообщений: 85
Если вам для тулбара, то вот ссылка в Maxscript help как это сделать. Если для отдельного диалога, то можно через chekbutton.
На сайте c 04.03.2008
Сообщений: 332
Краснодар
Цитата TheNMax:
Если вам для тулбара, то вот ссылка в Maxscript help как это сделать. Если для отдельного диалога, то можно через chekbutton.

Спасибо, почитаю!

Если честно, я ничего не понял. Понял, что существует переменная, которая отслеживает нажатие кнопки.

А вот как все это привязать к скрипту и заставить включать кнопку не пойму.

Вот мой скрипт:

macroScript ASLRotateStep1Deg

category:"Alvares Script Library"

tooltip:"Set Step Rotate 1 deg"

Icon:#("deg1",1)

(

if (dotNetClass "Autodesk.Max.GlobalInterface").Instance.coreinterface7.ASnapStatus == 0 do max angle snap toggle

local core = (dotNetClass "Autodesk.Max.GlobalInterface").Instance.coreinterface7

core.SnapAngle_ = 1

displayTempPrompt ("Snap Angle: " + (int core.SnapAngle_) as string+ "°") 1500

)

macros.run "Alvares" "ASLRotateStep1Deg"

Может сможете помочь? :)

На сайте c 15.04.2013
Сообщений: 85
Попробуйте так работает, Ссылка 
На сайте c 04.03.2008
Сообщений: 332
Краснодар
Цитата TheNMax:
Попробуйте так работает, Ссылка 

Ох какое чудо!

Но если нажать на вторую кнопку, то первая автоматом не отожмется... Я так понимаю надо добавить в остальные скрипты отключение флага других кнопок?

На сайте c 04.03.2008
Сообщений: 332
Краснодар

мне не удобно спрашивать, но все же: а как это сделать? :))))

Я благодарю за помощь, но уж хочется довести до ума задачу.

На сайте c 31.03.2008
Сообщений: 1100
Москва

Заменить isChecked на что-то такое.

on isChecked return (dotNetClass "Autodesk.Max.GlobalInterface").Instance.coreinterface7.SnapAngle_ == 1.0

Вместо 1.0 подставлять угол соответствующий каждому макросу. В макрос на 5 градусов писать 5.0, в макрос на 10 градусов писать 10.0 и т.д.

_______

Еще всю функциональную часть макроса запихнуть в on execute do ( ... )

На сайте c 04.03.2008
Сообщений: 332
Краснодар
Цитата -NiK-:

Заменить isChecked на что-то такое.

on isChecked return (dotNetClass "Autodesk.Max.GlobalInterface").Instance.coreinterface7.SnapAngle_ == 1.0

Вместо 1.0 подставлять угол соответствующий каждому макросу. В макрос на 5 градусов писать 5.0, в макрос на 10 градусов писать 10.0 и т.д.

_______

Еще всю функциональную часть макроса запихнуть в on execute do ( ... )

Правильно я понимаю, заменить строку 24 на 25?

Работает как-то криво. Нажатием на одну кнопку скидывает другую, а обратно уже нет.

На сайте c 31.03.2008
Сообщений: 1100
Москва

Проще создать одну глобальную переменную и в неё сохранять текущий угол

https://pastebin.com/N6zhjWTG 

На сайте c 04.03.2008
Сообщений: 332
Краснодар

Урааа! Заработало! ) Огромное спасибо за помощь!!! 

Я могу выложить результат проделанной работы для всех?

На сайте c 31.03.2008
Сообщений: 1100
Москва
Цитата arhitec:
Я могу выложить результат проделанной работы для всех?

Конечно, он же уже здесь лежит.

На сайте c 04.03.2008
Сообщений: 332
Краснодар

Я выкладываю рабочую версию с иконками и кратким описанием как установить.

Скрипт Set Step Rotate позволяет переключать шаг поворота выделенного объекта: 1, 5, 10, 45, 90 градусов.

Скрипт писал на 3dmax 2019. Работоспособность скрипта на других версиях не проверял.

Установка:

Перетащить по отдельности каждый скрипт на запущенное окно 3dmax.Затем перезагрузить 3dmax/

Сам скрипт найдете: Customize/Customize user interface/Toolbars/Alvares Script Library

Иконки скопировать в папку: c:\Program Files\Autodesk\3ds Max 2019\UI_ln\Iconsи в c:\Program Files\Autodesk\3ds Max 2019\UI_ln\IconsDark

Приятного использования!

PS: Большое спасибо -NiK-, Jähman', TheNMax за помощь в создании скрипта.

Ссылка на скрипт: https://yadi.sk/d/Y7GjEDv2rXQrtg 

Цитата -NiK-:
Цитата arhitec:
Я могу выложить результат проделанной работы для всех?

Конечно, он же уже здесь лежит.

Вот какой вопрос возник в ходе использования скрипта.

Когда загружаю 3dsmax, то по-умолчанию стоит включенным значок 5 градусов поворота, хотя по факту стоит 1 градус. Проверял.

Можно ли как-то по-умолчанию включать тот значок, который является текущим после загрузки макса?

Увы так сам и не справился с конечной задачей :(

На сайте c 15.04.2013
Сообщений: 85
Попробуйте так. ссылка
На сайте c 31.03.2008
Сообщений: 1100
Москва
Цитата arhitec:
по-умолчанию стоит включенным значок 5 градусов

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

https://pastebin.com/YNehNKta 

На сайте c 04.03.2008
Сообщений: 332
Краснодар

Виноват, зеленый, не опытен : ) Буду знать.

Цитата -NiK-:
Цитата arhitec:
по-умолчанию стоит включенным значок 5 градусов

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

https://pastebin.com/YNehNKta  

Да, все работает. Впредь буду умнее - поюзаю скрипт а потом выложу :)

Вопрос. Как новичку, дадите рекомендацию с чего начать изучение скриптов для макса?

На сайте c 31.03.2008
Сообщений: 1100
Москва
Цитата arhitec:
Как новичку, дадите рекомендацию с чего начать изучение скриптов для макса?

Не претендую на лучший вариант, но этот вариант когда-то сработал для меня, поэтому считаю его годным.

Есть вот такая книжонка http://www.williamspublishing.com/Books/5-8459-1044-7.html 

У меня она в бумажном виде поэтому не могу поделиться сам. Вот тут кажется есть djvu файл

http://www.3dcenter.ru/forum/lofiversion/index.php/t70583.htm 

Она довольно старая, но основы maxscript никогда не менялись и обратная совместимость не даст им измениться.

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

На сайте c 04.03.2008
Сообщений: 332
Краснодар
Цитата -NiK-:
Цитата arhitec:
Как новичку, дадите рекомендацию с чего начать изучение скриптов для макса?

Не претендую на лучший вариант, но этот вариант когда-то сработал для меня, поэтому считаю его годным.

Есть вот такая книжонка http://www.williamspublishing.com/Books/5-8459-1044-7.html  

У меня она в бумажном виде поэтому не могу поделиться сам. Вот тут кажется есть djvu файл

http://www.3dcenter.ru/forum/lofiversion/index.php/t70583.htm  

Она довольно старая, но основы maxscript никогда не менялись и обратная совместимость не даст им измениться.

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

Спасибо большое! Надеюсь у меня получится )

Читают эту тему: