miMayaPlugins/plugin_templates/python_command/pyPluginCmd.py

100 lines
2.0 KiB
Python
Raw Normal View History

2024-10-01 19:59:07 +08:00
from maya.api import OpenMaya
import sys
__VERSION__ = "0.1"
__AUTHOR__ = "NAME"
kPluginCmdName = "samplePyCmd"
kVerboseFlag = "-v"
kVerboseLongFlag = "-verbose"
class SamplePyCmd(OpenMaya.MPxCommand):
def __init__(self):
super(SamplePyCmd, self).__init__()
self.verbose = False
self.cmdArg = "Initial arg"
def doIt(self, args):
# Parse the arguments.
argData = OpenMaya.MArgDatabase(self.syntax(), args)
try:
self.cmdArg = argData.commandArgumentString(0)
except RuntimeError:
pass
if argData.isFlagSet(kVerboseFlag):
self.verbose = argData.flagArgumentBool(kVerboseFlag, 0)
self.redoIt()
def redoIt(self):
# Do something
print("Hello world")
if self.verbose:
print('verbose mode')
print("Arg : {}".format(self.cmdArg))
def undoIt(self):
pass
def isUndoable(self):
return True
def cmdCreator():
return SamplePyCmd()
def syntaxCreator():
""" Syntax creator
Return:
syntax (OpenMaya.MSyntax): return value
"""
syntax = OpenMaya.MSyntax()
syntax.addArg(OpenMaya.MSyntax.kString)
syntax.addFlag(kVerboseFlag, kVerboseLongFlag, OpenMaya.MSyntax.kBoolean)
return syntax
def initializePlugin(mObj):
""" Initialize the script plug-in
Args:
mobject (OpenMaya.MObject):
"""
mplugin = OpenMaya.MFnPlugin(mObj, __AUTHOR__, __VERSION__)
try:
mplugin.registerCommand(kPluginCmdName, cmdCreator, syntaxCreator)
except Exception:
sys.stderr.write("Failed to register command: %s\n" % kPluginCmdName)
raise
def uninitializePlugin(mObj):
""" Uninitialize the script plug-in
Args:
mobject (OpenMaya.MObject):
"""
mplugin = OpenMaya.MFnPlugin(mObj)
try:
mplugin.deregisterCommand(kPluginCmdName)
except Exception:
sys.stderr.write("Failed to unregister command: %s\n" % kPluginCmdName)
raise
def maya_useNewAPI():
pass