这是一个自定义节点和命令都同时存在的一个例子。
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
分享到:
相关推荐
科学计数法模拟器.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 包 ...
有些时候我们发现一些模块没有提供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
web.py 中文手册 webpy coobookweb.py 中文手册 webpy coobookweb.py 中文手册 webpy coobookweb.py 中文手册 webpy coobookweb.py 中文手册 webpy coobookweb.py 中文手册 webpy coobookweb.py 中文手册 webpy ...
pyinstxtractor.py 反编译pyinstaller打包的程序 使用方法 python pyinstxtractor.py 示例:python pyinstxtractor.py main.exe
`get-pip.py`是一个Python脚本,它的主要作用是为没有预装`pip`的Python环境安装`pip`。在Python 2.7中,由于某些系统可能没有默认提供`pip`,或者`pip`版本过低,`get-pip.py`就显得非常有用。这个脚本可以下载并...
web.py 是一个轻量级Python web框架,它简单而且功能强大。web.py是一个开源项目。该框架由美国作家、Reddit联合创始人、RSS规格合作创造者、著名计算机黑客Aaron Swartz开发。web.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实数...
估计这个安装包还只兼容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转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
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循环队列...
Web.py Cookbook 简体中文版手册 欢迎来到web.py 0.3的Cookbook。提醒您注意:某些特性在之前的版本中并不可用。当前开发版本是0.3。 web.py 是一个轻量级Python web框架,它简单而且功能强大。web.py是一个开源项目...