以下のようなフラグをもったlineUpというコマンド名の球体を横に並べるMELコマンドを、コマンドプラグインによって作成してみます。
import sys import maya.cmds import maya.OpenMaya import maya.OpenMayaMPx kPluginCmdName = 'lineUp' kRepeatFlag = '-n' kRepeatLongFlag = '-number' kRadFlag = '-rad' kRadLongFlag = '-radius' class LineUp(maya.OpenMayaMPx.MPxCommand): def __init__(self): maya.OpenMayaMPx.MPxCommand.__init__(self) def doIt(self, args): rep = 1 rad = 1.0 argData = maya.OpenMaya.MArgDatabase(self.syntax(), args) if argData.isFlagSet(kRepeatFlag): rep = argData.flagArgumentInt(kRepeatFlag, 0) if argData.isFlagSet(kRadFlag): rad = argData.flagArgumentDouble(kRadFlag, 0) for i in range(rep): maya.cmds.sphere() maya.cmds.scale(rad, rad, rad) maya.cmds.move(2*rad*i, 0, 0) def creator(): return maya.OpenMayaMPx.asMPxPtr(LineUp()) def syntaxCreator(): syntax = maya.OpenMaya.MSyntax() syntax.addFlag(kRepeatFlag, kRepeatLongFlag, maya.OpenMaya.MSyntax.kLong) syntax.addFlag(kRadFlag, kRadLongFlag, maya.OpenMaya.MSyntax.kDouble) return syntax def initializePlugin(mObject): mPlugin = maya.OpenMayaMPx.MFnPlugin(mObject) try: mPlugin.registerCommand(kPluginCmdName, creator, syntaxCreator) except: sys.stderr.write('Failed load plugin : %s' % kPluginCmdName) raise def uninitializePlugin(mObject): mPlugin = maya.OpenMayaMPx.MFnPlugin(mObject) try: mPlugin.deregisterCommand(kPluginCmdName) except: sys.stderr.write('Failed unload plugin : %s' % kPluginCmdName) raise