Maya API插件的两种形式(model)

1.利用maya.standalone来运行。

通过maya的单机执行,是需要设置环境变量:

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

#
# 描述: 
#     运行这个程序将会启动一个Maya独立的python程序
#
# 使用方法:
#
#       设置MAYA_LOCATION环境变量到你的Maya安装路径并在Linux(Mac)的shell中执行:
#
#       $MAYA_LOCATION/bin/mayapy helloWorld.py
#
#       注意:你必须使用Python可执行文件,才能正常工作。不同的平台它的路径都不一样。
#       win系统的是:
#       
#       $MAYA_LOCATION/bin/mayapy.exe helloWorld.py

# 导入相关模块
import maya.standalone
import maya.OpenMaya as OpenMaya

import sys

def main( argv=None ):
    try:
        # 尝试启动Maya独立的python程序
        maya.standalone.initialize( name='python' )
    except:
        # 如果无法启动,输出错误信息
        sys.stderr.write( "Failed in initialize standalone application" )
        raise
    
    # 输出Hello world
    sys.stderr.write( "Hello world! (script output)\n" )
    # 执行print命令来输出Hello world
    OpenMaya.MGlobal().executeCommand( "print \"Hello world! (command script output)\\n\"" )
        
if __name__ == "__main__":
    main()

2.利用maya的载入安装插件方法:

使用方法: 
将helloWorldCmd.py放到 
win 
C:\Documents and Settings\你的用户名\My Documents\maya\plug-ins 

mac 
/Users/你的用户名/Library/Preferences/Autodesk/maya/plug-ins 

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

'''
Created on Oct 25, 2009

@author: schi
'''
# 使用方法:
# Mel:
# loadPlugin helloWorldCmd.py;
# spHelloWorld;
#
# ---------------------------------------
#
# python:
# import maya.cmds as cmds
# cmds.loadPlugin("helloWorldCmd.py")
# cmds.spHelloWorld()

# 导入相关模块
import sys
import maya.OpenMaya as om
import maya.OpenMayaMPx as ompx

# 定义命令的名称
kPluginCmdName = 'spHelloWorld'

# 命令
class SpHelloWorld( ompx.MPxCommand ):

    def __init__( self ):
        # 你可以像官方一样使用未绑定的方法,ompx.MPxCommand.__init__(self)
        # 我更倾向于super方法
        super( SpHelloWorld, self ).__init__()

    # 执行spHelloWorld时会调用这个方法
    def doIt( self, argList ):
        # 如果你对Hello World很反感,可以改成自己的代码
        print "Hello World!"

# Creator用于创建命令的一个实例
def cmdCreator():
    return ompx.asMpxPtr( SpHelloWorld() )

# 注册插件
def initializePlugin( mobject ):
    mplugin = ompx.MFnPlugin( mobject )
    try:
        mplugin.registerCommand( kPluginCmdName, cmdCreator )
    except:
        sys.stderr.write( '插件 %s 注册失败\n' % kPluginCmdName )
        raise

# 注销插件
def uninitializePlugin( mobject ):
    mplugin = ompx.MFnPlugin( mobject )
    try:
        mplugin.deregisterCommand( kPluginCmdName )
    except:
        sys.stderr.write( '插件 %s 注销失败\n' % kPluginCmdName )
        raise


  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值