Hi all. I have a question about python plugin node. It's very strange.
This code give me:
// Error: TypeError: in method 'MDataBlock_inputValue', argument 2 of
type 'MObject const &'
# Traceback (most recent call last):
# line 34 of file D:/3d/script/python/iterateMesh.py in module
compute
# inValueHandle = data.inputValue(mySuperNode.inValue) //
There is the code:
import sys
import maya.OpenMaya as OpenMaya
import maya.OpenMayaMPx as OpenMayaMPx
kPluginNodeTypeName = "mySuperNode"
blindDataMeshId = OpenMaya.MTypeId(0x87005)
# Node definition
class mySuperNode(OpenMayaMPx.MPxNode):
# class variables
inValue = OpenMaya.MObject()
outValue = OpenMaya.MObject()
outputMesh = OpenMaya.MObject()
# constructor
def __init__(self):
OpenMayaMPx.MPxNode.__init__(self)
def compute(self, plug, data):
if plug == mySuperNode.outputMesh :
# Read the input value
inValueHandle = data.inputValue(mySuperNode.inValue)
mySuperNode.inValue = inValueHandle.asFloat()
mySuperNode.outValue = mySuperNode.inValue
print str(mySuperNode.outValue)
data.setClean(plug)
else:
return OpenMaya.MStatus.kUnknownParameter
return OpenMaya.MStatus.kSuccess
# creator
def nodeCreator():
return OpenMayaMPx.asMPxPtr( mySuperNode() )
# initializer
def nodeInitializer():
typedAttr = OpenMaya.MFnTypedAttribute()
numAttr = OpenMaya.MFnNumericAttribute()
# Setup the input attributes
mySuperNode.inValue = numAttr.create("inputValue", "inValue",
OpenMaya.MFnNumericData.kFloat, 0.0)
numAttr.setKeyable(True)
numAttr.setStorable(True)
# Setup the output attributes
mySuperNode.outputMesh = typedAttr.create("outputMesh", "outMesh",
OpenMaya.MFnData.kMesh);
typedAttr.setStorable(False);
mySuperNode.outValue = numAttr.create("outputValue", "outValue",
OpenMaya.MFnNumericData.kFloat, 0.0)
numAttr.setStorable(False)
# Add the attributes to the node
mySuperNode.addAttribute(mySuperNode.inValue)
mySuperNode.addAttribute(mySuperNode.outValue)
mySuperNode.addAttribute(mySuperNode.outputMesh)
# Set the attribute dependencies
mySuperNode.attributeAffects(mySuperNode.inValue,
mySuperNode.outValue)
mySuperNode.attributeAffects(mySuperNode.inValue,
mySuperNode.outputMesh)
# initialize the script plug-in
def initializePlugin(mobject):
mplugin = OpenMayaMPx.MFnPlugin(mobject)
try:
mplugin.registerNode( kPluginNodeTypeName, blindDataMeshId,
nodeCreator, nodeInitializer)
except:
sys.stderr.write( "Failed to register node: %s\n" %
kPluginNodeTypeName )
raise
# uninitialize the script plug-in
def uninitializePlugin(mobject):
mplugin = OpenMayaMPx.MFnPlugin(mobject)
try:
mplugin.deregisterNode( blindDataMeshId )
except:
sys.stderr.write( "Failed to unregister node: %s\n" %
kPluginNodeTypeName )
raise
This is a very simple code and I don't know why it crash... When I
launch the circleNode.py sample, it work very well and mine is not
very different...
If anyone could help me, I will be very gracefull.
Thanks in advance and have a good day!
--
http://groups.google.com/group/python_inside_maya