DRL прошу прощения что так долго не отвечал. В один из дней, велась достаточно бурная переписка. Быстренько просматривал, понял что речь идет о преференсах (меня это в данный момент мало волнует), и не заметил сообщения 393, 394.
Объединение усилий для написания аналога Xumi
Толку с меня не будет, я в MELе полнейший дундук. Развиваться в этом направлении планирую не раньше лета 2012. Возможно сам факт определение даты выглядит странно, но я придерживаюсь некого плана.
Решивши перейти с Макса на Майю я сразу понял, что хоткеи жутко неудобные и их нужно будет переделывать под себя (в максе у меня тоже все перелопачено и реализованы интерективные кнопки). Поэтому первый месяц просматривал видеоуроки и пользовался только иконками инструментов и верхним меню (что бы понять что, куда, где, и не привыкать к стандартным клавишам). После чего немного базового Мела и вопросом на форуме. Сварганил код , который не соответствует ни каким стандартам. Сам понимаю что он у меня жутко не корректный и корявый. Но в принципе, работает. В сообщении 390, я дал его основную часть (выполнения разных действий, в разных панелях (окнах)). На самом деле у меня реализована на семи кнопках возможность совершать разные действия в зависимости от выбранного режима в левом верхнем углу экрана. На всех остальных большинство действий зависть от выбранных компонентов и типов объектов. Но выглядит это жутко.
Кнопка Alt_X_Release
Код:
Pivot_Release;
global float $startTimer;
if (`timerX -startTime $startTimer` < 0.5)
{
//modelPane
string $currentPanel = `getPanel -withFocus`;
string $panelType = `getPanel -typeOf $currentPanel`;
if ($panelType == "modelPanel")
{
// Modeking_Menu_Set
if ((`setMenuMode` == "polygonsMenuSet") || (`setMenuMode` == "surfacesMenuSet") == true)
{
// Poly
// Obj_Mode
if (size(`filterExpand -sm 12`) > 0)
;
// Vertex, Edge, Face
if (size(`filterExpand -sm 31 -sm 32 -sm 34`) > 0)
dR_DoCmd("bevelPress");
// UVs
if (size(`filterExpand -sm 35`) > 0)
;
// Nurbs Surfaces
// Obj_Mode
if (size(`filterExpand -sm 10`) > 0)
RoundTool;
// Curves On Surface
if (size(`filterExpand -sm 11`) > 0)
;
// Surface Points
if (size(`filterExpand -sm 41`) > 0)
;
// Trim Surface Edge
if (size(`filterExpand -sm 44`) > 0)
;
// Isoparms
if (size(`filterExpand -sm 45`) > 0)
RoundTool;
// Patch
if (size(`filterExpand -sm 72`) > 0)
;
// Nurbs Curves
// Obj_Mode
if (size(`filterExpand -sm 9`) > 0)
;
// Control Vertices
if (size(`filterExpand -sm 28`) > 0)
;
// Edit Points
if (size(`filterExpand -sm 30`) > 0)
;
// Curve Points
if (size(`filterExpand -sm 39`) > 0)
;
// Subdivision Surface
// Obj_Mode
if (size(`filterExpand -sm 68`) > 0)
;
// Mesh Vertex
if (size(`filterExpand -sm 36`) > 0)
;
// Mesh Edges
if (size(`filterExpand -sm 37`) > 0)
;
// Mesh Faces
if (size(`filterExpand -sm 38`) > 0)
;
// UVs
if (size(`filterExpand -sm 73`) > 0)
;
}
// Animation_Menu_Set
if (`setMenuMode` == "animationMenuSet")
{
playButtonStepBackward;
}
}
//HyperShade
if (`getPanel -wf` == "hyperShadePanel1")
{
}
//UV Texture Editor
if (`getPanel -wf` == "polyTexturePlacementPanel1")
{
}
}
У меня не то что в глобальной переменной $StartTimer буковка g не добавлена, у меня эта одна переменная указывается во всех кодах. Как я уже писал, полнейший бардак, но в принципе, не учитывая маленьких ограничений, работает.
Продумал и настроил кнопки для моделирования, отображения объектов и т.д. Сейчас по плану материалы, свет, рендер (я все это знаю но на плотном базовом уровне). Когда я смогу создавать более менее качественные статические работы (которые не стыдно будет показывать людям), вот тогда возьмусь за глубинное понимание Мела. После этого, анимация, система частиц и т.д.
По поводу реализации (маркинг-менюха при нажатии, иначе выполнить команду) без timerX'а (сообщение 393)
Очень интересно, а главное, корректно и правильно. Я уже собирался переделывать код для хоткеев, но к своему разочарованию обнаружил, что код работает только на (чистых) кнопках. При добавлении альта и т.д., срабатывает только Release, действие source "menu_Display_viewPanel.mel"; игнорируется. Попробовал со скриптом views, там тоже самое. Так что остаюсь на своем нерадивом коде.
Необходимость вручную указывать условия для каждой менюхи в каждом окне на каждый режим работы с каждым типом объектов.
Это да. Это ЖЕСТЯК! Я этим потихоньку занимаюсь уже в течении полутора месяцев. И если вдруг окажется, что код из сообщения 393 можно использовать вместе с Альтом и т.д., придется мне некоторые кнопки переделывать. Но это уже будет не слишком сложно, так как менюхи сделаны и коды из скрипт эдитора на определенные действия получены. Нужно будет только по вставлять.