2013-10-28 2 views
0

Я просто хочу знать, как я могу добавить несколько прокси-файлов в файлы, на которые ссылаются в моей майя-сцене.Добавить несколько прокси к ссылкам в сцене

Сценарий: Мы выбираем объекты, которые содержат «_v001»:

select -r "*_v001"; 

Мы создаем функцию, чтобы добавить прокси для каждого ссылочных файлов:

global proc proxyAddition() 
{ 
    string $selectionList[] = `ls -sl`; 
    if(size($selectionList)) 
    { 
     string $object = $selectionList[0]; 
     string $currentRN = `referenceQuery -rfn $object`; 
     string $currentFilePath = `referenceQuery -filename $object`; 
     string $currentNamespace = `referenceQuery -namespace $object`; 
     if(endsWith($currentRN, "v001RN") == 1) 
     { 
      string $newRN = `substitute "v001RN" $currentRN "v002"`; 
      string $newFilePath = `substitute "v001" $currentFilePath "v002"`; 
      string $newNamespace = `substitute "v001" $currentNamespace "v002"`; 
      proxyAdd $currentRN $newFilePath "HD"; 
      print "Opération effectuée avec succès."; 
     } 
    } 
    else 
    { 
     warning "Aucun objet de type v001 dans la scène."; 
    } 
} 
proxyAddition; 

Что я хочу найти кусок строка «v001» в каждом файле с ссылкой и изменить его на «v002» (для прокси-имени, пространства имен и пути к файлу).

Спасибо! :)

+0

Если ваше последнее изменение было решением проблемы, пожалуйста, удалите его и добавьте его в раздел ответа ниже. И по возможности с некоторым объяснением, которое будет полезно для сообщества. Позже примите (соответствующий) ответ. –

+0

Спасибо за комментарий! ;) – mickaelb91

ответ

1

Наконец мне удалось закончить его:

select -r "*_v001:*"; 
global proc proxyAddition() 
{ 
    string $selectionList[] = `ls -sl -type "mesh"`; 
    if(size($selectionList)) 
    { 
     for($object in $selectionList) { 
      string $currentRN = `referenceQuery -rfn $object`; 
      string $currentFilePath = `referenceQuery -filename $object`; 
      string $currentNamespace = `referenceQuery -namespace $object`; 
      if(endsWith($currentRN, "v001RN") == 1) 
      { 
       string $newRN = `substitute "v001RN" $currentRN "v002"`; 
       string $newFilePath = `substitute "v001" $currentFilePath "v002"`; 
       string $newNamespace = `substitute "v001" $currentNamespace "v002"`; 
       proxyAdd $currentRN $newFilePath "HD"; 
       print "Opération effectuée avec succès."; 

      } 
     } 
    } 
    else 
    { 
     warning "Aucun objet de type v001 dans la scène."; 
    } 
} 
proxyAddition; 

Сценарий выбирает объект, имя которого содержит «_v001», а затем фильтрует его, чтобы держать только сетчатые объекты. После этого мы используем метод referenceQuery для хранения наших текущих ссылочных переменных. Затем мы подставляем переменную, которая содержит «v001» строковое значение в «v002» в новых переменных. Этот метод замены используется для пути к файлу, пространства имен и ссылочного номера нашего текущего ссылочного объекта (ов). С помощью этих новых переменных мы можем добавить наши новые прокси-серверы, используя «proxyAdd».

Этот процесс может работать только в том случае, если у вас есть файлы ссылок в одной папке. Если это не так, используйте метод substitute для вашего файла var var с дополнительными параметрами. Вы также можете изменить «v001» и «v002» своими собственными значениями, которые различают ваши версии файлов ссылок.

Аргумент «HD» используется для прокси-тага вашего ссылочного файла.

Смежные вопросы