Maya Python:Im列出了一个组的亲属,但当我选择亲属时,它会显示“无”
嗨,所以我试着列出这个群体在玛雅的所有亲戚。它返回的列表很好,但当我选择列表中的所有内容时,它会打印出未选择任何内容Maya Python:Im列出了一个组的亲属,但当我选择亲属时,它会显示“无”,python,select,maya,mel,Python,Select,Maya,Mel,嗨,所以我试着列出这个群体在玛雅的所有亲戚。它返回的列表很好,但当我选择列表中的所有内容时,它会打印出未选择任何内容 mySel = cmds.ls(selection=True) print(mySel) rel = cmds.listRelatives(ad=True , pa=True) print(mySel) cmds.rename(mySel + '_grp') 欢迎来到SO 现在,当您使用cmds.ls(selection=True)捕获选择时,它将返回字符串列表 renam
mySel = cmds.ls(selection=True)
print(mySel)
rel = cmds.listRelatives(ad=True , pa=True)
print(mySel)
cmds.rename(mySel + '_grp')
欢迎来到SO
现在,当您使用cmds.ls(selection=True)
捕获选择时,它将返回字符串列表
rename方法需要2个字符串
作为参数、要重命名的现有对象以及要将其重命名为什么
因此,您现在要做的是传递整个字符串列表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
条件来确保它返回一些内容
希望这能让事情变得更清楚。欢迎来到SO
现在,当您使用cmds.ls(selection=True)
捕获选择时,它将返回字符串列表
rename方法需要2个字符串
作为参数、要重命名的现有对象以及要将其重命名为什么
因此,您现在要做的是传递整个字符串列表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
条件来确保它返回一些内容
希望这能让事情变得更清楚。欢迎来到StackOverflow。请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您描述的问题。@sophie ridley,您的代码适合我,但您需要更改
cmds.rename(mySel+“\u grp”)
cmds.rename()
接受两个字符串参数,旧名称和新名称,您可能想要cmds.rename(mySel,'mySel_grp')
?请参见文档底部的示例showscmds.rename('nsA:sphere3','sphere4')
,尝试使用该语法,它应该可以工作。欢迎使用StackOverflow。请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您描述的问题。@sophie ridley,您的代码适合我,但您需要更改cmds.rename(mySel+“\u grp”)
cmds.rename()
接受两个字符串参数,旧名称和新名称,您可能想要cmds.rename(mySel,'mySel_grp')
?请参见文档底部的示例showscmds.rename('nsA:sphere3','sphere4')
,尝试使用该语法,它应该可以工作。