2016-09-12 5 views
0

Я нашел это на скрипте, который щелкнул правой кнопкой мыши по outliner -> reference -> duplicate и нашел исходный скрипт.MEL duplicateReference возвращаемое значение?

Я выбираю ссылочный элемент в своей сцене.

Тогда, я: string $ test = duplicateReference 0 " ";

Он не возвращает новую ссылку. Как получить новый элемент, созданный в outliner из этой команды?

У него нет ссылок на Python или MEL, если вы его ищете.

ответ

1

Когда не в документации, повторите команду MEL whatIs

whatIs duplicateReference; 

Она возвращает файл MEL, где эта функция написана.

Вы можете открыть файл в текстовом редакторе, чтобы увидеть, что он ничего не возвращает. Иногда он выбирает узлы, иногда нет. В этих случаях лучше всего сделать, это список узлов перед действием и после, то сделать разницу:

def getNewNodesCreated(_function): 
    """ Return the new nodes created after the execution of a function """ 
    before = cmds.ls(long=True) 
    eval(_function) 
    after = cmds.ls(long=True) 
    return list(set(after) - set(before)) 

Это будет возвращать все новые узлы, созданные.

+0

Как я уже сказал, я нашел код «и нашел оригинальный сценарий». используя этот же метод. Но я никогда не думал, что скрипт вызовет другой скрипт. На самом деле это делает ту же самую глупость, что и я, и я сделаю это сам. Какой вздор! – darkgaze