maya文件的部分清理功能

记录一下maya场景文件的部分清理功能。

import maya.cmds as mc
def cleanNodes():
    unknowNodeList = mc.ls(type='unknown')
    if unknowNodeList:
        for unNode in unknowNodeList:
            try:
                mc.delete(unNode)
                print ">>>>>> clear " , unNode
            except:
                print "Waring===============!" , unNode, u"无法清理"
        print u"未知节点 清理完成!"
    else:
        print u"unknownNode个数为0,不需要清理"
def cleanPlugin():
    unknownPlugin_list = mc.unknownPlugin( query=True, list=True )
    if unknownPlugin_list:
        for plugin_name in unknownPlugin_list:
            try:
                mc.unknownPlugin( plugin_name, remove=True )
                print ">>>>>> clear " , plugin_name
            except Exception as e:
                print "Waring===============!" , plugin_name, u"无法清理"
        print u"未知插件 清理完成!"
    else:
        print u"unknownPlugin个数为0,不需要清理"
def clear_IntermediateObj():
    get_mesh_shape = mc.ls(typ='mesh')
    for shape_name in get_mesh_shape:
        interAttr = mc.getAttr('%s.intermediateObject' % shape_name)
        if interAttr == 1:
            print "delete>>>>>>>",shape_name
            mc.delete(shape_name)
    print u"中间物件 清理完成"
def delTurtleRender():
    if mc.objExists('TurtleRenderOptions'):
        mc.lockNode('TurtleRenderOptions', 'TurtleUIOptions', 'TurtleBakeLayerManager', 'TurtleDefaultBakeLayer', lock=0)
        mc.delete('TurtleRenderOptions', 'TurtleUIOptions', 'TurtleBakeLayerManager', 'TurtleDefaultBakeLayer')
        print u"海龟渲染节点清理完成"
    else:
        print u"场景中海龟渲染节点已清理干净"
def cleanUnknown():
    unknowList = mc.ls(type=('unknown', 'unknownDag', 'unknownTransform'))
    if unknowList:
        for item in unknowList:
            mc.lockNode(item, l=0)
            mc.delete(item)
            print "delete>>>>>>>",item
        print u"未知有向循环节点 清理完成"
    else:
        print u"未知有向循环节点个数为0,不需要清理"

def clearEmptyTransform():
    for i in range(10):
        selTrans = mc.ls(typ='transform')
    
        for transName in selTrans:
            shpContainer = mc.listRelatives(transName)
            if not shpContainer:
                mc.delete(transName)
                print "delete>>>>>>>",transName
    print u"场景中空的transform清理完成"


def clean_displayLayer():
    layer_list = mc.ls(type='displayLayer')
    if len(layer_list)>1:
        for layer in layer_list[1:]:
            mc.delete(layer)
            print "delete>>>>>>>",layer
        print u"场景显示层 清理完成"

    else:
        print u"场景中的显示层个数为0,不需要清理"
    
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值