gpt4 book ai didi

python - 玛雅Python : Renaming object with for loops

转载 作者:太空宇宙 更新时间:2023-11-03 19:41:58 25 4
gpt4 key购买 nike

所以我一直在观看 Josh Sobel Python 脚本教程,并且一直在尝试让 For 循环在某些函数上工作:就像当您使用 nHair 使用毛囊创建带状脊椎时,您需要毛囊重新-命名。我的目标是让 For 循环查找以某个名称前缀开头的名称,列出它们,然后重新命名列表中的对象。我确实有可以满足我要求的编码方法:但与 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')

我希望此脚本执行的操作是在您按“构建示例”后,我希望 renameHeiarchy 将 exampleGroup1 中的联合层次结构重命名为“exampleGroup1_joint 加数字增量”

exampleGroup2 与 exampleGroup2 不同,它的关节不是层次结构中的父级:而是位于该组的下方。无论哪种方式,当我运行“构建示例”下的任一按钮时,我都会收到“#错误:对象或值太多。”

我只想用 for 循环重命名每个组的内容。如果你的 For 循环对它们都有效,那就更好了

最佳答案

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

关于python - 玛雅Python : Renaming object with for loops,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60370596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com