alembicTool_assemblyInfo
2016-03-23 11:47
330 查看
import re import maya.OpenMaya as OpenMaya import bplatform.path def getAssemblyRepresentationsInfo(name): sel = OpenMaya.MSelectionList() object = OpenMaya.MObject() try: sel.add(name) sel.getDependNode(0,object) except: raise Exception('can not find object named: %s' % name) if object.apiType() != OpenMaya.MFn.kAssembly: raise Exception('object named: %s is not a assembly' % name) ass = OpenMaya.MFnAssembly(object) plug = ass.findPlug('representations') representations = list() for i in xrange(plug.numElements()): plug_index = plug.elementByPhysicalIndex(i) if plug_index.numChildren() == 4: representations.append({'name':plug_index.child(0), 'label':plug_index.child(1), 'type':plug_index.child(2), 'data':plug_index.child(3)}) return representations def getAssemblyActivePath(name): sel = OpenMaya.MSelectionList() object = OpenMaya.MObject() try: sel.add(name) sel.getDependNode(0,object) except: raise Exception('can not find object named: %s' % name) if object.apiType() != OpenMaya.MFn.kAssembly: raise Exception('object named: %s is not a assembly' % name) ass = OpenMaya.MFnAssembly(object) plug = ass.findPlug('representations') representations = list() for i in xrange(plug.numElements()): plug_index = plug.elementByPhysicalIndex(i) if plug_index.numChildren() == 4: representations.append({'name':plug_index.child(0), 'label':plug_index.child(1), 'type':plug_index.child(2), 'data':plug_index.child(3)}) for i in representations: if ass.getActive() == i['name'].asString(): return i['data'].asString() def getNamespace(name): sel = OpenMaya.MSelectionList() object = OpenMaya.MObject() try: sel.add(name) sel.getDependNode(0,object) except: raise Exception('can not find object named: %s' % name) if object.apiType() != OpenMaya.MFn.kAssembly: raise Exception('object named: %s is not a assembly' % name) ass = OpenMaya.MFnAssembly(object) return ass.getRepNamespace() def setActive(name,fiterText = None,type = 'Scene'): sel = OpenMaya.MSelectionList() object = OpenMaya.MObject() try: sel.add(name) sel.getDependNode(0,object) except: raise Exception('can not find object named: %s' % name) if object.apiType() != OpenMaya.MFn.kAssembly: raise Exception('object named: %s is not a assembly' % name) ass = OpenMaya.MFnAssembly(object) all_rep = getAssemblyRepresentationsInfo(name) if not fiterText: fiterText = [''] elif isinstance(fiterText,basestring): fiterText = [fiterText] for f in fiterText: for i in all_rep: if i.get('type').asString() == type and re.match(r'.*%s.*' % f,i.get('name').asString()): if ass.getActive() != i.get('name').asString(): ass.activate(i.get('name').asString()) return i.get('name').asString()
相关文章推荐
- 多线程中join方法的使用方法以及其特点
- Apache基础教程
- HDU 1426 Sudoku Killer 枚举每一个空,深搜
- 使用GeneratorConfig自动生成Java类和XML文件
- Android开发实用工具汇总-持续更新
- Struts初始--环境搭建
- 求adc+de=ad+cde类似于这样问题
- 文章标题
- 团队问题
- 168.View the Exhibit and examine the description of SALES and PROMOTIONS tables.
- java多线程回顾3:线程安全
- 使用 AForge.NET 做视频采集
- Ubuntu中root用户和user用户的相互切换
- CString 到 float 的转换 小方法
- c++运算符重载
- iOS关于数组的那些小菜菜
- Css3之高级-1 Css复杂选择器(兄弟选择器 、属性选择器、伪类选择器、伪元素选择器)
- 生产者和消费者关系通过多线程来实现
- 转换时间为字符串
- 解决ora-02429:无法用于删除强制唯一/主键的索引