我正在尝试做一个简单的Maya重命名用户界面,但我被困在一个部分 - 用当前命名替换他的初始字符与其他字符
例如;大纲中的3个项目(无论它们是什么): - pCube1, - pSphere1, - nurbsSphere1
到目前为止,我能够写出可以选择和重命名一个或多个对象的点,请参阅下面的代码
objects = []
objects = cmds.ls(sl=True)
for obj in objects:
test = []
test = cmds.rename(obj, "pSphere" )
print objects
# Results: pSphere, pSphere2, pSphere3 #
但是,假设现在我选择了nurbsSphere1和pSphere1,我只是想替换“' Sphere'在其中使用' Circle',而不是将结果显示为:nurbsCircle1, pCircle1
,我收到了错误消息# TypeError: Too many objects or values. #
charReplace = "test"
if charReplace in objects:
newName = []
newName = cmds.rename(objects, "Circle" )
有关于它的任何建议吗?
答案 0 :(得分:1)
objects
的列表。"test"
列表中搜索字符串objects
。
相反,您应该在对象列表中的每个文件名中搜索字符串"test"
。rename
命令使用较新的字符串重命名旧字符串。它不会替换字符串中的子字符串(例如" sphere" in" nurbsSphere")。为了实现这一点,您应该单独创建新文件名,然后使用它们重命名文件。你可以试试这个:
charReplace = "test"
for filename in objects:
if charReplace in filename:
newFilename = filename.replace(charReplace, "Circle")
cmds.rename(filename, newFilename)
我没有安装Maya,因此未对代码进行测试。