Python批量重命名Maya场景中的3D物体
最初接触Maya是从7.0开始的,那时候Maya只支持mel(Maya Expression Language),mel的局限性很大,只能在Maya内部使用,功能来说没有Python强大;
后来从Maya 8.5开始加入了对Python语言的支持,Python是一个面向对象的编程语言,而且简洁优雅,被广泛用于网络和桌面应用的开发;有人只用Python编写脚本 所以管她叫脚本语言,这个说法比较偏颇,因为在我看来Python是一个完整的面向对象的语言,可移植、可扩展、健壮、解释型,支持类、多线程、UI界面,这些是script脚本语言不具备的;
以前看过一个DT的Python教程,使用Python方便的控制Maya中的物体和节点,很方便很实用;
然后自己写了一个批量重命名Maya场景中3D物体的脚本,记录在此:
import maya.cmds as mc sel = mc.ls(sl=True) #选择所有物体 selSize = len(sel) # 获取所选物体序列的长度 #遍历选择的物体 for i in range(0, selSize, 1): #重命名, newObj_是前缀, str(i)是数字序列 _re是后缀 mc.rename(sel[i], 'newObj_'+str(i)+'_re') print sel[i] #打印新名称
运行此脚本的方法是:
1、选中需要重命名的物体
2、把脚本复制到Maya的Script Editor,按Ctrl+Enter执行即可
这个脚本也可以封装成一个函数,这样就可以直接在Expression Editor中调用了~
def reName():
sel = mc.ls(sl=True) #选择所有物体
selSize = len(sel) # 获取所选物体序列的长度
#遍历选择的物体
for i in range(0, selSize, 1):
#重命名, newObj_是前缀, str(i)是数字序列 _re是后缀
mc.rename(sel[i], 'newObj_'+str(i)+'_re')
print sel[i] #打印新名称
在Expression Editor中调用的写法是: python("reName()");
如下图所示,很方便,这就是面向对象的好处,封装起来的对象,通过调用名称就可以反复使用。
再加上下面这几句就可以出现UI界面了~
点击按钮便可执行上面的命令。
window = mc.window() mc.columnLayout() mc.button(label=('确定').decode('gbk'),command = 'reName()',) mc.showWindow(window)
作 者:蒋至乙 出 处:http://www.cnblogs.com/jackchiang 文章内容欢迎转载,但请保留此段声明,并在页面醒目位置给出原文连接,感谢您的支持。 人生在世的全部意义,不是为了享受,而是为了帮助别人脱离苦难、获得幸福~