Render.ru

Оформить скрипт в плагин?

Рейтинг
75
#1
День добрый!
Написал скрипт небольшой, хочу теперь оформить в плагин, или инсталер какой-нибудь. Чтобы пару файлов кинул в максовские папки, поставил автозагрузку скрипта, и создал может быть кнопку на панеле инструментов для его быстрого вызова. В хелпе нашел классы плагинов, но это как я понимаю добавляем стредства запуска только на панель создания, я же хочу отдельную кнопку, например рядом с рендером или его свойствами.
Спасибо
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#2
В этом случае тебе нужно его оформить в виде macroscript, это позволит встроить как элемент интерфейса
Что почитать на эту тему: http://render.ru/forum/viewtopic.php?topic_id=124598
 
Рейтинг
75
#4
как я понимаю есть способ сделать скрипт макроскриптом или плагином, но в любом случае пользователю придется самому лезть в кастумайз интерфейс и вытаскивать его на тулбар или еще куда-то. Нет ли способа прямо в скрипте добраться до нее? сделать скриптом для себя самого кнопку на панеле инструментов? я честно почитав не нашел..((
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#5
Нет нету, предпологается что пользователь сам вытащит кнопку куда ему удобней.
 

Protactinium

Пользователь сайта
Рейтинг
2
#6
Есть один неофициальный способ добавить кнопку скриптом.
Для этого нужно напрямую отредактировать текущий .cui файл (файл описания пользовательского интерфейса).
Сам файл можно получить с помощью функции cui.getConfigFile().
В этом файле описаны все панели инструментов и кнопки на них например так:

[Snaps]
Rank=0
SubRank=0
Hidden=1
FRect=149 184 451 245
DRect=2147483647 2147483647 -2147483648 -2147483648
DRectPref=2147483647 2147483647 -2147483648 -2147483648
DPanel=0
Tabbed=0
TabCt=0
CurTab=-1
CurPos=16 149 184 451 245
CType=1
ToolbarRows=1
ToolbarType=16
ItemCount=10
Item0=2|0|0|31|4|1259304063|50067|0|0|"Snap To Grid Points Toggle"||0|Snap_Points
Item1=2|0|0|31|4|1259304063|50069|0|0|"Snap To Pivot Toggle"||1|Snap_Points
Item2=2|0|0|31|4|1259304063|50073|0|0|"Snap To Vertex Toggle"||3|Snap_Points
Item3=2|0|0|31|4|1259304063|50074|0|0|"Snap To Endpoint Toggle"||6|Snap_Points
Item4=2|0|0|31|4|1259304063|50076|0|0|"Snap To Midpoint Toggle"||5|Snap_Points
Item5=2|0|0|31|4|1259304063|50075|0|0|"Snap To Edge/Segment Toggle"||2|Snap_Points
Item6=2|0|0|31|4|1259304063|50077|0|0|"Snap To Face Toggle"||4|Snap_Points
Item7=3|6|16|31|1
Item8=2|0|0|31|3|0|40905|0|0|"Snaps To Frozen Objects Toggle"|"Snaps To Frozen Objects Toggle"|-1|
Item9=2|0|0|31|3|0|40904|0|0|"Snaps Use Axis Constraints Toggle"|"Snaps Use Axis Constraints Toggle"|-1|

ItemCount определяет количество кнопок. А Item1 (например) вторую кнопку.
Если например кнопка описана как:
Item27=2|0|0|31|4|647394|namedSelSets`Edit|0|0|"Edit Named Selection Sets"||0|enss_maintoolbar
то nameSelSets - это имя макроскрипта, Edit - категория скрипта, "Edit Named Selection Sets" - всплывающая подсказка enss_maintoolbar - имя файла иконки, 0 - номер иконки в файле. 2|0|0|31|4|647394 - понятия не имею че это такое, но это должно быть )
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#7
Вот вот, после таких советов макс а то и проект обычно приходиться поднимать заново.
Очень плохая практика.
Denis Omelchenko не думаю что это было так уж неоходимо человеку, поставить кнопку занимает 15 секунд. Зато вроде как блеснул познаниями =)

Ps. На свой страх и риск как говориться.
 

Protactinium

Пользователь сайта
Рейтинг
2
#8
Абсолютно согласен )
Здесь главное аккуратность.

Если человеку необходимо именно програмно создавать панели инструментов, то он все таки может это сделать, но на свой страх и риск.
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#9
Если человеку необходимо именно програмно создавать панели инструментов, то он все таки может это сделать, но на свой страх и риск.
В корне не верный подход, почему я тебе и сделал замечание.

Прежде чем советовать воспользоваться хаком, нужно понять что он дейcтвительно необходим. Человек(извини Kruil) пока не может отличить плагин от макроскрипта, а ты ему сразу не разобравшись давай хачить. Тем более что даже формат файла знанаеш не до конца.

понятия не имею че это такое, но это должно быть )
 

Protactinium

Пользователь сайта
Рейтинг
2
#10
Тем не менее речь идет о написании инсталера. В таком случае этот совет как раз в тему.
У меня была подобная задача, иначе я бы не стал давать этот совет.
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#11
Как думаеш, я наверно не знал этого метода ? Ну теперь точно буду в курсе.=)
 
Рейтинг
75
#12
Так. в общем я уже продвинулся, создал инсталятор с помощью фриварной софтины, файлы кидаются куда надо. Теперь хотел бы полностью разобраться в описании файла cui. Кто знает где можно достать описание файла точное? где что в нем описано?Denis Omelchenko конечно подкинул информации для размышлений, но мне ее боюсь не хватает(
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#13
Kruil нет точного описания, уже говорили что это неофицильный хак. Формат файла я вляется внутренним и меняется от версии к версии.
PS
В максе есть много других способов запустить скрипт или функцию, от докабельного диалога куда можно поместить туже кнопку до регистрации в главном меню или в кваде.
Про установку можно почитать тут.
 

Protactinium

Пользователь сайта
Рейтинг
2
#14
Вообще былобы неплохо разобрать формат cui и здесь разместить. Но это придется делать методом тыка...

На сколько я понял, официальный способ создания тулбаров - через max sdk.
Там есть хороший пример: 3ds Max 2008 SDK\maxsdk\howto\ui\cuitest\.
А в хелпе по сдк объясняется, как это сделать.
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#15
Да в SDK есть такая возможность, если так уж хочется то можно вытащить функции работы с CUI в макскрипт написав раширение.
Это наболее корректный путь.

PS
Были одно время попытки сделать утилиты для работы с этими файлами, но уже со следущей версией они работали не корректно.
Не нужно повторять чужие ошибки.
 

Protactinium

Пользователь сайта
Рейтинг
2
#16
Да но если мы пишем инсталятор, то это расширение придется всегда тоскать вместе с инсталятором. Это возможно?

p.s.
А что мешает разбираться с кажддой новой версией cui файла? Думаю изменения там не слишком большие вносят...
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#17
Почему бы нет ? Так достаточно часто и делают, когда хотят получить скорость и простоту разработки UI.
Просто прекомпилировать библеотеку с новым SDK, намного проще чем снова заниматься анализом фомата файла и вносить изменения в скрипт.
 
Сверху