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

Reply via email to