`
schi
  • 浏览: 205983 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

basicObjectSet.py

阅读更多
这是一个自定义节点和命令都同时存在的一个例子。



basicObjectSet.py
#!/usr/bin/env python
# -*- coding: UTF-8 -*-

# 使用:
# python
# import maya.cmds as cmds
# cmds.spBasicObjectSetTest()
#
# Mel
# spBasicObjectSetTest;

import maya.OpenMaya as om
import maya.OpenMayaMPx as ompx
import math, sys

kNodeName = 'spBasicObjectSet'
kCmdName = 'spBasicObjectSetTest'
kNodeId = om.MTypeId( 0x87012 )

# Node definition
# 定义节点
class BasicObjectSet( ompx.MPxObjectSet ):
    def __init__( self ):
        #ompx.MPxObjectSet.__init__( self )
        super( BasicObjectSet, self ).__init__()
        
# Cmd definition
# 定义命令
class BasicObjectSetTest( ompx.MPxCommand ):
    def __init__( self ):
        #ompx.MPxCommand.__init__( self )
        super( BasicObjectSetTest, self ).__init__()
        # 创建 MDGModifier 实例
        # 用于创建、删除和更改Dependency graph上的节点。
        # 它能自动地为所有操作提供撤销和重做。
        self.__fDGMod = om.MDGModifier()
        
    def doIt( self, args ):
        # Create the node
        # 创建节点
        #
        setNode = self.__fDGMod.createNode( kNodeId )
        self.__fDGMod.doIt()
        
        # Populate the set with the selected items
        # 将所选物体加入到set中
        #
        selList = om.MSelectionList()
        om.MGlobal.getActiveSelectionList( selList )
        if selList.length():
            setFn = om.MFnSet( setNode )
            setFn.addMembers( selList )
            
        # 将节点的名称作为本命令的返回结果
        depNodeFn = om.MFnDependencyNode( setNode )
        ompx.MPxCommand.setResult( depNodeFn.name() )
        
#===============================================================================
 
# node creator
def nodeCreator():
    return ompx.asMPxPtr( BasicObjectSet() )

# node initializer
def nodeInitializer():
    # nothing to initialize
    # 无须初始化
    pass

# cmd creator
def cmdCreator():
    return ompx.asMPxPtr( BasicObjectSetTest() )

# cmd syntax creator
def cmdSyntaxCreator():
    return om.MSyntax()

# initialize the script plug-in
def initializePlugin( mobject ):
    mplugin = ompx.MFnPlugin( mobject, 'Autodesk', '1.0', 'Any' )
    try:
        mplugin.registerCommand( kCmdName, cmdCreator, cmdSyntaxCreator )
    except:
        sys.stderr.write( "Failed to register command: %s" % kCmdName )
        raise
        
    try:
        mplugin.registerNode( kNodeName, kNodeId, nodeCreator,
                             nodeInitializer, ompx.MPxNode.kObjectSet )
    except:
        sys.stderr.write( "Failed to register node: %s" % kNodeName )
        raise
    
# uninitialize the script plug-in
def uninitializePlugin( mobject ):
    mplugin = ompx.MFnPlugin( mobject )
    try:
        mplugin.deregisterCommand( kCmdName )
    except:
        sys.stderr.write( "Failed to deregister command: %s" % kCmdName )
        raise
    
    try:
        mplugin.deregisterNode( kNodeId )
    except:
        sys.stderr.write( "Failed to deregister node: %s" % kNodeName )
        raise

你可以在maya安装目录下的devkit/plug-ins/scripted找到basicObjectSet.py。
在线版
http://download.autodesk.com/us/maya/2010help/API/basic_object_set_8py-example.html
  • 大小: 60.2 KB
0
0
分享到:
评论

相关推荐

    科学计数法模拟器.py科学计数法模拟器.py科学计数法模拟器.py科学计数法模拟器.py科学计数法模拟器.py科学计数法模拟器

    科学计数法模拟器.py科学计数法模拟器.py科学计数法模拟器.py科学计数法模拟器.py科学计数法模拟器.py科学计数法模拟器.py科学计数法模拟器.py科学计数法模拟器.py科学计数法模拟器.py科学计数法模拟器.py科学计数法...

    google_auth-1.23.0-py2.py3-none-any.whl____python 包

    google_auth-1.23.0-py2.py3-none-any.whl python 包 google_auth-1.23.0-py2.py3-none-any.whl python 包 google_auth-1.23.0-py2.py3-none-any.whl python 包google_auth-1.23.0-py2.py3-none-any.whl python 包 ...

    python安装模块如何通过setup.py安装(超简单)

    有些时候我们发现一些模块没有提供pip install 命令和安装教程 , 只提供了一个setup.py文件 , 这个时候如何安装呢? 步骤 打开cmd 到达安装目录 python setup.py build python setup.py install 总结 以上所述是...

    get-platformio.py

    get-platformio.py get-platformio.py get-platformio.py get-platformio.py

    web.py 中文手册

    web.py 中文手册 webpy coobookweb.py 中文手册 webpy coobookweb.py 中文手册 webpy coobookweb.py 中文手册 webpy coobookweb.py 中文手册 webpy coobookweb.py 中文手册 webpy coobookweb.py 中文手册 webpy ...

    pyinstxtractor.py 反编译pyinstaller打包的程序

    pyinstxtractor.py 反编译pyinstaller打包的程序 使用方法 python pyinstxtractor.py 示例:python pyinstxtractor.py main.exe

    python2.7中所用的get-pip.py文件+安装方法

    `get-pip.py`是一个Python脚本,它的主要作用是为没有预装`pip`的Python环境安装`pip`。在Python 2.7中,由于某些系统可能没有默认提供`pip`,或者`pip`版本过低,`get-pip.py`就显得非常有用。这个脚本可以下载并...

    web.py中文版用户手册

    web.py 是一个轻量级Python web框架,它简单而且功能强大。web.py是一个开源项目。该框架由美国作家、Reddit联合创始人、RSS规格合作创造者、著名计算机黑客Aaron Swartz开发。web.py目前已被很多家大型网站所使用。

    python3.6 get-pip.py

    curl https://bootstrap.pypa.io/pip/3.6/get-pip.py -o get-pip.py python get-pip.py

    实数模拟器.py实数模拟器.py实数模拟器.py实数模拟器.py实数模拟器.py实数模拟器.py实数模拟器.py实数模拟器.py

    实数模拟器.py实数模拟器.py实数模拟器.py实数模拟器.py实数模拟器.py实数模拟器.py实数模拟器.py实数模拟器.py实数模拟器.py实数模拟器.py实数模拟器.py实数模拟器.py实数模拟器.py实数模拟器.py实数模拟器.py实数...

    python_docx-0.8.10-py2.py3-none-any.whl

    估计这个安装包还只兼容python 2(python2 和python3差别还是挺大的,虽然现在python 3出来很久了,但是不少三方库还没有更新),因此需要自己找一个兼容的包:python_docx-0.8.6-py2.py3-none-any.whl。然后在...

    有理数模拟器.py有理数模拟器.py

    有理数模拟器.py有理数模拟器.py有理数模拟器.py有理数模拟器.py有理数模拟器.py有理数模拟器.py有理数模拟器.py有理数模拟器.py有理数模拟器.py有理数模拟器.py有理数模拟器.py有理数模拟器.py有理数模拟器.py...

    二叉树模拟器.py二叉树模拟器.py

    二叉树模拟器.py二叉树模拟器.py二叉树模拟器.py二叉树模拟器.py二叉树模拟器.py二叉树模拟器.py二叉树模拟器.py二叉树模拟器.py二叉树模拟器.py二叉树模拟器.py二叉树模拟器.py二叉树模拟器.py二叉树模拟器.py...

    Python3 py转exe.py

    py转exe.py py转exe.py py转exe.py py转exe.pypy转exe.py py转exe.py py转exe.py py转exe.pypy转exe.py py转exe.py py转exe.py py转exe.pypy转exe.py py转exe.py py转exe.py py转exe.pypy转exe.py py转exe.py py转...

    PyPI 官网下载 | yolov5-5.0.0-py36.py37.py38-none-any.whl

    资源来自pypi官网。 资源全名:yolov5-5.0.0-py36.py37.py38-none-any.whl

    pip-20.3.4-py2.py3-none-any.whl

    pip-20.3.4-py2.py3-none-any.whl

    绩点计算器.py绩点计算器.py

    绩点计算器.py绩点计算器.py绩点计算器.py绩点计算器.py绩点计算器.py绩点计算器.py绩点计算器.py绩点计算器.py绩点计算器.py绩点计算器.py绩点计算器.py绩点计算器.py绩点计算器.py绩点计算器.py绩点计算器.py绩点...

    随机点名器.py随机点名器.py

    随机点名器.py随机点名器.py随机点名器.py随机点名器.py随机点名器.py随机点名器.py随机点名器.py随机点名器.py随机点名器.py随机点名器.py随机点名器.py随机点名器.py随机点名器.py随机点名器.py随机点名器.py随机...

    循环队列模拟器.py循环队列模拟器.py

    循环队列模拟器.py循环队列模拟器.py循环队列模拟器.py循环队列模拟器.py循环队列模拟器.py循环队列模拟器.py循环队列模拟器.py循环队列模拟器.py循环队列模拟器.py循环队列模拟器.py循环队列模拟器.py循环队列...

    web.py中文教程_脚本之家.docx

    Web.py Cookbook 简体中文版手册 欢迎来到web.py 0.3的Cookbook。提醒您注意:某些特性在之前的版本中并不可用。当前开发版本是0.3。 web.py 是一个轻量级Python web框架,它简单而且功能强大。web.py是一个开源项目...

Global site tag (gtag.js) - Google Analytics