Maya Python:使用for循环重命名对象



所以我一直在看Josh Sobel Python脚本教程,我一直在尝试让For循环处理某些函数:比如当你使用nHair使用毛囊创建带状脊椎时,你需要重新命名毛囊。我的目标是让For循环查找以某个名称preifx开头的名称,列出它们,然后重新命名列表中的对象。我确实有一些编码方法可以满足我的要求:但与for循环不同,它们又长又笨重,占用了大量代码。到目前为止,我得到的是:

'''
import DS_jointRename_Demo
reload (DS_jointRename_Demo)
DS_jointRename_Demo.gui()
'''
import re
import maya.cmds as cmds
import maya.mel as mel
if cmds.window("renameWin", exists =True):
cmds.deleteUI("renameWin", window = True)
myWindow = cmds.window("renameWin",t='DS_jointRename_Demo',w=200, h=500, toolbox=True)
column = cmds.columnLayout(adj=True)
def gui():
cmds.button( label="Build Examples", c = buildExamples)
cmds.separator( w=200, h=3)
cmds.button( label="renameHeiarchy", c = renameHeiarchy)
cmds.separator( w=200, h=9)
cmds.button( label="renameGroupCont", c = renameGroupCont)
cmds.separator( w=200, h=9)
cmds.setParent('..')
cmds.showWindow(myWindow)
def buildExamples(*args):
cmds.joint(n='exampleGarbage_name11293')
cmds.joint(n='exampleGarbage_name11397')
cmds.joint(n='exampleGarbage_name15763')
cmds.joint(n='exampleGarbage_name11548')
cmds.joint(n='exampleGarbage_name11837')
cmds.group(n='exampleGroup1',world=True,empty=True)
cmds.parent('exampleGarbage_name11293','exampleGroup1')
cmds.group(n='exampleGroup2',world=True,empty=True)
cmds.joint(n='exampleWaste_name11293')
cmds.joint(n='exampleWaste_name12973')
cmds.parent('exampleWaste_name12973','exampleGroup2')
cmds.joint(n='exampleWaste_name94563')
cmds.parent('exampleWaste_name94563','exampleGroup2')
cmds.joint(n='exampleWaste_name96397')
cmds.parent('exampleWaste_name96397','exampleGroup2')
cmds.joint(n='exampleWaste_name49456')
cmds.parent('exampleWaste_name49456','exampleGroup2')
def renameHeiarchy(*args):
garbageList = cmds.ls('exampleGarbage_name*')
for i in garbageList:
print garbageList
cmds.rename(garbageList,'exampleGroup1_joint')
def renameGroupCont(*args):
wasteList = cmds.ls('exampleWaste_name*')
for i in wasteList:
print wasteList
cmds.rename(wasteList,'exampleGroup2_joint')

我想让这个脚本做的是,在你按下"构建示例"后,我想重命名Heiarchy,将exampleGroup1中的关节层次重命名为"exampleGroup1_joint plus number increment">

exampleGroup2,与一个不同的是,它的关节不是在一个heiarchy中的父级:而是在组下。无论哪种方式,当我运行"构建示例"下的任一按钮时,我都会得到"#错误:对象或值太多">

我只想让for循环重命名每个组的内容。如果你的For Loops在上都有效,则奖励

rename命令需要两个字符串,但您给它一个列表作为第一个参数。试试这个:cmds.rename(i,'exampleGroup2_joint')

最新更新