`
schi
  • 浏览: 202264 次
  • 性别: 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实数模拟器.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二叉树模拟器.py二叉树模拟器.py二叉树模拟器.py二叉树模拟器.py二叉树模拟器.py二叉树模拟器.py...

    TK-crawler.pyTK-crawler.pyTK-crawler.py

    TK_crawler.pyTK_crawler.pyTK_crawler.pyTK_crawler.pyTK_crawler.pyTK_crawler.pyTK_crawler.pyTK_crawler.pyTK_crawler.pyTK_crawler.pyTK_crawler.pyTK_crawler.pyTK_crawler.pyTK_crawler.pyTK_crawler.pyTK_...

    绩点计算器.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循环队列...

    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 包 ...

    get-platformio.py

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

    draw.py,parsing.py,samples.py

    bootchart执行出错,替换ubuntu下面的/usr/share/pyshared/pybootchartgui三个脚本就可以了。

    web.py 中文手册

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

    web.py中文版用户手册

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

    get-pip.py

    $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下载安装脚本 $ sudo python get-pip.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。然后在...

    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

    testme.py testbe.py.rar testme.py testbe.py.rar testme.py testbe.py.rar

    testme.py testbe.py.rar testme.py testbe.py.rar

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

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

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

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

Global site tag (gtag.js) - Google Analytics