Добро пожаловать в SO!
Прямо сейчас, когда вы используете cmds.ls(selection=True)
для захвата выделения, он вернет вам список строк.
Метод переименования ожидает 2 strings
в качестве параметровсуществующий объект, который нужно переименовать, и то, во что он переименовывается.
Итак, вы сейчас передаете mySel
полный список строк, когда он принимает только одну.Если вы хотите переименовать несколько объектов одновременно, вам нужно использовать цикл for
для работы с ними один за другим:
import maya.cmds as cmds
mySel = cmds.ls(selection=True) # Get a list of the current selection.
for i, obj in enumerate(mySel): # Loop over selection, one by one.
newName = "{}_{}_grp".format(obj, i) # Build the new name.
cmds.rename(obj, newName) # Finally rename the object.
Также с cmds.listRelatives
возможно, что он вернет None
если у объекта нет фигур / потомков или у вас просто ничего не выделено.Таким образом, вам может понадобиться условие if
, чтобы убедиться, что оно что-то возвращает.
Надеюсь, что это прояснит ситуацию.