MEL команда для имени
- Автор темы Ro
- Дата создания
В поле "leave" вводишь что нужно оставить, в поле "add" вводишь что нужно добавить.
Код:
if (`window -exists chn`) deleteUI -window chn;
string $chn = `window -t "Change name" -s off chn`;
formLayout -numberOfDivisions 100 myForm;
textField -w 290 txt1;
textField -w 290 txt2;
text -label "leave" ltx1;
text -label "add" ltx2;
button -label "change" -w 340 -c chne chnb;
formLayout -edit
-attachForm chnb "top" 50
-attachForm chnb "left" 0
-attachForm txt1 "top" 0
-attachForm txt1 "left" 40
-attachForm txt2 "top" 25
-attachForm txt2 "left" 40
-attachForm ltx1 "top" 3
-attachForm ltx1 "left" 10
-attachForm ltx2 "top" 31
-attachForm ltx2 "left" 10
myForm;
showWindow chn;
global proc chne()
{
string $lv[] = `ls -sl`;
string $slv;
for ($slv in $lv)
{
string $nlv = `textField -q -tx txt1`;
string $nadd = `textField -q -tx txt2`;
string $add = `match $nlv $slv`;
rename $slv ($add = $add + $nadd);
}
}
Сори затупил. Не так подумал что нужно.)) Вот то что ты просил.
Код:
if (`window -exists sbn`) deleteUI -window sbn;
string $chn = `window -t "select by name" -s off sbn`;
formLayout -numberOfDivisions 100 myForm;
textField -w 290 txt1;
text -label "name" ltx1;
button -label "select" -w 340 -c psbn bsbn;
formLayout -edit
-attachForm bsbn "top" 25
-attachForm bsbn "left" 0
-attachForm txt1 "top" 0
-attachForm txt1 "left" 40
-attachForm ltx1 "top" 3
-attachForm ltx1 "left" 10
myForm;
showWindow sbn;
global proc psbn()
{
string $sbn = `textField -q -tx txt1`;
$sbn = ("*" + $sbn + "*");
select $sbn;
}
iNOD, спасибо, но, никого переименовывать не надо.
В сцене есть обьект pCube_dfdksdfaf;qpvm
Какую функцию добавить, что бы при выполнении "select pCube_*функция*" выбрался этот pCube_dfdksdfaf;qpvm?
Другой вариант: есть изображение, которое нужно применить к материалу в качестве цвета, но его имя постоянно меняется, постоянным остается только начало, например: "photoNumber_"
В сцене есть обьект pCube_dfdksdfaf;qpvm
Какую функцию добавить, что бы при выполнении "select pCube_*функция*" выбрался этот pCube_dfdksdfaf;qpvm?
Другой вариант: есть изображение, которое нужно применить к материалу в качестве цвета, но его имя постоянно меняется, постоянным остается только начало, например: "photoNumber_"
Смысла нету писать подобный скрипт.
По причинам:
1. Это нужно организовать поиск файлов по папке, а за тем уже копировать имя файла и вставлять в file1.fileTextureName, что займет много времени на реализацию, а затраты не окупятся.
2. Что если там будет два схожих файла? То выдаст ошибку, или ты хочешь применить два файла к file1.fileTextureName?)
3. Что мешает просто открыть проводником папку с текстурами, а в мае открыть гипершейд, за тем в папке выделить файлы, зажать их мышкой и перетащить их на гипершейд? 2-3 сек делов.
По причинам:
1. Это нужно организовать поиск файлов по папке, а за тем уже копировать имя файла и вставлять в file1.fileTextureName, что займет много времени на реализацию, а затраты не окупятся.
2. Что если там будет два схожих файла? То выдаст ошибку, или ты хочешь применить два файла к file1.fileTextureName?)
3. Что мешает просто открыть проводником папку с текстурами, а в мае открыть гипершейд, за тем в папке выделить файлы, зажать их мышкой и перетащить их на гипершейд? 2-3 сек делов.
Написал скрипт, который создает и настраивает материал и готовит его для загрузки текстур (нормал, дисплейс и т.д.) для импортированной из Zbrush'a модели. Текстуры приходится загружать вручную и искать их среди сотен других текстур в папке, потому что Браш сохраняет их с разными суффиксами (например, текстура с именем Object1-DM(1.25254)4096_u0_v0.tif, где число 1.25254 - результат анализа дисплейса и всегда разное). Если бы можно было загружать текстуры, зная только начало имени (Object1-DM), можно было бы автоматизировать скрипт до полного автоматизма
Ведь умеет же Maya делать "select object1-DM*", было бы неплохо то же самое и с файлами из виндоуса
Ведь умеет же Maya делать "select object1-DM*", было бы неплохо то же самое и с файлами из виндоуса
- Рейтинг
- 5
Помне так получение новых знаний всегда окупаются, другое дело что лень
Держи. пример берет из папки пользовательских скриптов имена всех файлов, и добавляет в переменную $res все имена начинающиеся с "cps". в качестве директории можно указать любой путь. По функции gmatch подробнее в хелпе.
Держи. пример берет из папки пользовательских скриптов имена всех файлов, и добавляет в переменную $res все имена начинающиеся с "cps". в качестве директории можно указать любой путь. По функции gmatch подробнее в хелпе.
Код:
string $dir = `internalVar -userScriptDir`;
string $file[] = `getFileList -folder $dir -filespec "*.mel"`;
print $file;
string $match = "cps";
string $cur;
string $res;
for ($cur in $file)
if (`gmatch $cur ($match + "*")` != 0)
$res += ($cur + " ");
print "### RESULT ### ";
print $res;
Код:
результат:
AEBA_texture3d_warpTemplate.mel
AEBA_texture_cell3d3Template.mel
AEBA_texture_cell3dTemplate.mel
AEBA_texture_fractal4d2Template.mel
AEBA_texture_fractal4d3Template.mel
AEBA_texture_oily_specular2Template.mel
AEJS_GlareTemplate.mel
AEJS_MosaicTemplate.mel
AEJS_SurfaceLuminanceTemplate.mel
AEmr_lightList.mel
connectPolyShape.mel
cpsAbout.mel
cpsAttributes.mel
cpsControl.mel
cpsInstallMenu.mel
cpsLib.mel
cpsSetup.mel
cpsSnapVertices.mel
cpsToolbox.mel
### RESULT ### cpsAbout.mel cpsAttributes.mel cpsControl.mel cpsInstallMenu.mel cpsLib.mel cpsSetup.mel cpsSnapVertices.mel cpsToolbox.mel
- Рейтинг
- 47
Добрый день.
Помогите пожалуйста с именами камер.
Есть маленький скрипт.
Проблема в том, что в командах getAttr и setAttr, я напрямую указываю perspShape. То есть, если создается камера с другим названием, то Resolution gate естественно не срабатывает.
Можно ли в некую переменную записывает название активной камеры и использовать ее в нужных местах.
setAttr " переменная Shape.displayResolution" 0;
Помогите пожалуйста с именами камер.
Есть маленький скрипт.
Код:
string $currentPanel = `getPanel -withFocus`;
string $panelType = `getPanel -typeOf $currentPanel`;
if ($panelType != "modelPanel")
{
switchModelView persp;
}
else
{
int $gate = `getAttr perspShape.displayResolution`;
if ($gate==1)
{
setAttr "perspShape.displayResolution" 0;
}
else
{
setAttr "perspShape.displayResolution" 1;
}
}
Можно ли в некую переменную записывает название активной камеры и использовать ее в нужных местах.
setAttr " переменная Shape.displayResolution" 0;
- Рейтинг
- 47
iNOD, не совсем то, мой вопрос в большей степени относится к правильности написания команд.
Как получить название активной камеры и вложить его в переменную я нашел
string $cam = currCam();
// Result: Proba // - Возвращает программа
Теперь вопрос как вклинить эту переменную в строчку включения атрибута
setAttr "perspShape.displayResolution" 0; ===>>> setAttr "$camShape.displayResolution" 0;
Перепробовал разные варианты. В майевском хелпе к сожалению ничего не понял.
Как получить название активной камеры и вложить его в переменную я нашел
string $cam = currCam();
// Result: Proba // - Возвращает программа
Теперь вопрос как вклинить эту переменную в строчку включения атрибута
setAttr "perspShape.displayResolution" 0; ===>>> setAttr "$camShape.displayResolution" 0;
Перепробовал разные варианты. В майевском хелпе к сожалению ничего не понял.
Подскажите как правильно приконектить текстуры с помощью переменных
...
string $file_checker2 = `shadingNode -asTexture file`;
string $place2dTexture2 = `shadingNode -asUtility place2dTexture`;
connectAttr -f ($place2dTexture[0] + ".coverage " + $file_checker[0] + ".coverage");
...
пишет // Error: The source attribute 'place2dTexture1.coverage file1.coverage' cannot be found. //
Хотя если написать тоже самое без переменных то коннектит нормально
connectAttr -f place2dTexture1.coverage file1.coverage;
...
string $file_checker2 = `shadingNode -asTexture file`;
string $place2dTexture2 = `shadingNode -asUtility place2dTexture`;
connectAttr -f ($place2dTexture[0] + ".coverage " + $file_checker[0] + ".coverage");
...
пишет // Error: The source attribute 'place2dTexture1.coverage file1.coverage' cannot be found. //
Хотя если написать тоже самое без переменных то коннектит нормально
connectAttr -f place2dTexture1.coverage file1.coverage;