zoukankan      html  css  js  c++  java
  • 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)

      

     

  • 相关阅读:
    Windows 配置JAVA的环境变量
    不直接用NSLog
    Mongodb for Mac 安装
    Redis Mac 安装及简单命令使用
    第十五天和十六天学习笔记
    第十四天学习笔记
    第十三天学习笔记
    第十二天学习笔记
    第十一天学习笔记
    第十天学习笔记
  • 原文地址:https://www.cnblogs.com/jackchiang/p/4612242.html
Copyright © 2011-2022 走看看