вопросы по MEL
- Автор темы JazzzDima
- Дата создания
- Рейтинг
- 5
Вобще attrFieldSliderGrp используетсья для привязки к конкретному артибуту например attrFieldSliderGrp -l "radius" -at "pSphere.tx";
для твоих целей лучше использовать floatSliderGrp или IntSliderGrp.
floatdSliderGrp -l "Max" -min -10.0 -max 10.0 NAME;
float $noiseMin = `attrFieldSliderGrp -q -v NAME`;
для твоих целей лучше использовать floatSliderGrp или IntSliderGrp.
floatdSliderGrp -l "Max" -min -10.0 -max 10.0 NAME;
float $noiseMin = `attrFieldSliderGrp -q -v NAME`;
Ламерский вопрос . Хотел создать маркин менюшку где была бы команда которая перемещает пивот выбранного объекта в начало координат . Скрипт эдитор пишет примерни следующее move -1.25 0 0 curve1.scalePivot curve1.rotatePivot ; . Как заменить имя объекта на "любой выделенный объект" ?
- Рейтинг
- 34
Решил взяться за MEL более серьёзно чем один раз прочитать главу книги у Цыпцына .
Не могу взять в толк где у когда нужно ставить скобки , кавычки и прочие вещи . Напрягает немного когда что то придумал на MEL , а сделать не можеш из-за того что где то например скобки не стоят . У Цыпцына по этому поводу только самую малость .
Например вот кусок кода
if( objExists ( "myCurve" )==1)
{
delete"myCurve" ;
}
Почему myCurve в первом случае взято и в кавычки и в скобки а во втором только в кавычки ?
Не могу взять в толк где у когда нужно ставить скобки , кавычки и прочие вещи . Напрягает немного когда что то придумал на MEL , а сделать не можеш из-за того что где то например скобки не стоят . У Цыпцына по этому поводу только самую малость .
Например вот кусок кода
if( objExists ( "myCurve" )==1)
{
delete"myCurve" ;
}
Почему myCurve в первом случае взято и в кавычки и в скобки а во втором только в кавычки ?
- Рейтинг
- 5
если решил заняться mel, рекомендую почитать Maya_Дэвид А.Д. Гоулд Maya Полное руководство по программированию, там всё описано. расскажу в крации:
скобки обычно ставятся для объявления блока видимости, обычно это после операторов (if, циклов и тд.), но впринципе можно ставить в любом месте, если после оператора идет лишь одна строка кода то скобки необязательны.
например:
for ($i=0; $i<10; $i++)
print ($i);
или
for ($i=0; $i<10; $i++)
{
print ($i);
}
одно и тоже, но первая запись короче и понятней.
запись же, после оператора идет несколько операций которые нужно выполнить то тут скобки обязятельны
if( objExists ( "myCurve" )==1) взято в скобки из-за приоритета операций, имя "myCurve" должно быть сперва присвоено функции objExists которая выдает результат и сравнивает его с единицей.
delete"myCurve", "myCurve" это имя, тобиш строка, строка берется в кавычки если не объявлена как переменная.
скобки обычно ставятся для объявления блока видимости, обычно это после операторов (if, циклов и тд.), но впринципе можно ставить в любом месте, если после оператора идет лишь одна строка кода то скобки необязательны.
например:
for ($i=0; $i<10; $i++)
print ($i);
или
for ($i=0; $i<10; $i++)
{
print ($i);
}
одно и тоже, но первая запись короче и понятней.
запись же, после оператора идет несколько операций которые нужно выполнить то тут скобки обязятельны
if( objExists ( "myCurve" )==1) взято в скобки из-за приоритета операций, имя "myCurve" должно быть сперва присвоено функции objExists которая выдает результат и сравнивает его с единицей.
delete"myCurve", "myCurve" это имя, тобиш строка, строка берется в кавычки если не объявлена как переменная.
если кода не много в блоке, то можно и без фигурных скобок, и на той же самой строке
лишь бы читабельность не пропала
и еще, для получения результата команды чаще используют вот такие кавычки: ` `
через точку с запятой ; можно написать даже несколько комманд подряд
и еще, когда пишете код в сообщении на форуме, помечайте его тэгом code, здесь на рендере это делается одним кликом
со временем глаза привыкают к моноширинному шрифту, и код читается намного легче.
лишь бы читабельность не пропала
и еще, для получения результата команды чаще используют вот такие кавычки: ` `
Код:
if( `objExists "persp"` ==1) print "persp"
Код:
if( `objExists "persp"` ==1) print "persp"; print " exist"
со временем глаза привыкают к моноширинному шрифту, и код читается намного легче.
- Рейтинг
- 34
Нашёл я книжку Гоулда . Книжка вроде как хорошая , правда опечаток ( и самое главное в примерах кода ) тьма .
Собственно по ней же и вопросы :
1) Автор создаёт код который открывает фаил скрипта в блокноте для его редактирования . Сам фаил лежит в папке которую автор создал сам в совершенно левом месте . А что бы майка знала где его искать в файле maya.env добавляет переменную окружения типа MAYA_SCRIPTS_PATCH=С:\ ... У меня чёт не выходит правильно создать эту переменную .
2) Что бы открыть блокнот автор пишет код
Здесь всё вроде понял , правда ника не хочет вместо блокнота открываться другой редактор ( notepad++ ) .
Собственно по ней же и вопросы :
1) Автор создаёт код который открывает фаил скрипта в блокноте для его редактирования . Сам фаил лежит в папке которую автор создал сам в совершенно левом месте . А что бы майка знала где его искать в файле maya.env добавляет переменную окружения типа MAYA_SCRIPTS_PATCH=С:\ ... У меня чёт не выходит правильно создать эту переменную .
2) Что бы открыть блокнот автор пишет код
Код:
string $scriptsPath = `internalVar -userScriptDir` ;
chdir $scriptsPath ;
system ( "start notepad.exe learning.mel" ) ;
2) Что бы открыть блокнот автор пишет код
string $scriptsPath = `internalVar -userScriptDir` ;
chdir $scriptsPath ;
system ( "start notepad.exe learning.mel" ) ;
Здесь всё вроде понял , правда ника не хочет вместо блокнота открываться другой редактор ( notepad++ ) .
string $scriptsPath = `internalVar -userScriptDir` ;
chdir $scriptsPath ;
system ( "start notepad.exe learning.mel" ) ;
Здесь всё вроде понял , правда ника не хочет вместо блокнота открываться другой редактор ( notepad++ ) .
например
Код:
system ( "start C:/Notepad/notepad_two.exe " ) ;
и по поводу опечаток в книге по адресу www.davidgould.com там вроде как есть список опечаток и исправления...
If это условный оператор, от слова условие.
То что находится в его скобках обычно и считают условием.
Но == и > и остальные операции сравнения это тоже операторы, которые возвращают значение 1 если правда, 0 если неправда
Попробуйте выполнить по одной эти строки:
Поставив команду в кавычки мы не прото заставляем её выполняться, а еще и забираем результат выполнения.
Обычно это какая-нибудь полезная информация, например имя созданных объектов.
В нашем случае команда просто проверяет имеется ли объект с заданным именем, и возвращает 1 если результат положительный.
Поэтому нам результат 1 сравнивать с единицей не обязательно.
То что находится в его скобках обычно и считают условием.
Но == и > и остальные операции сравнения это тоже операторы, которые возвращают значение 1 если правда, 0 если неправда
Попробуйте выполнить по одной эти строки:
Код:
print (10>1);
print (10==10);
print (10<1);
Обычно это какая-нибудь полезная информация, например имя созданных объектов.
В нашем случае команда просто проверяет имеется ли объект с заданным именем, и возвращает 1 если результат положительный.
Поэтому нам результат 1 сравнивать с единицей не обязательно.