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)

 

  

 

 

posted @ 2013-03-02 21:45  蒋至乙  阅读(2603)  评论(0编辑  收藏  举报