Наименование объекта при импорте - PullRequest
0 голосов
/ 06 июля 2018

У меня проблемы с получением имени ссылочного объекта (для его переименования), импорта ряда объектов в Maya с помощью Python:

import maya.cmds as cmds
import os

myFolder = r"D:\temp\objs"
objFiles = cmds.getFileList(folder = myFolder, filespec = "*.%s" % "OBJ")
for item in objFiles:
  fname = os.path.join(myFolder, item)
  x = cmds.file(fname, i = True) 

Оказывается, x - это путь к объекту, а не имя объекта, как показано в outliner.

Какая правильная ссылка для переименования?

1 Ответ

0 голосов
/ 06 июля 2018

Код, который вы разместили, просто выполняет импорт.Вы хотите найти объекты, которые вы импортировали на каждом этапе цикла?

Простой способ изолировать импортированные объекты - указать пространство имен при импорте.Затем вы можете использовать новое пространство имен для быстрого поиска объектов:

for eachfile in list_of_files:
    # make a namespace.  In production you might want to double
    # check to make sure the same namespace does not already exist
    import_ns = os.path.splitex(os.path.basename(eachfile))[0]  
    cmds.file(eachfile, i=True, ns = import_ns)

    # this gets all of the imported stuff:
    imported_objects = cmds.ls (import_ns + ":*") 

    # now you can loop over it and rename as needed.

Вы можете выбрать только некоторые классы объектов из imported_objects, добавив второй вызов ls с флагом типа, например

    imported_shapes = cmds.ls(imported_objects, type='shape')
...