You don't want to do this: mySuperNode.inValue = inValueHandle.asFloat() mySuperNode.inValue is the MObject of your attribute so you're overriding it to be a float
And you don't want to do this: mySuperNode.outValue = mySuperNode.inValue Here you're overriding your output MObject attribute to be the float that you read from the input What you want is this: # Read the input value inValueHandle = data.inputValue(mySuperNode.inValue) inputValue = inValueHandle.asFloat() # And then either outHandle = data.outputValue(mySuperNode.outValue) outHandle.setFloat(inputValue) # or plug.setFloat(inputValue) data.setClean(plug) Chad On Mon, Aug 30, 2010 at 10:40 AM, Narann <[email protected]> wrote: > It work now, I don't have answer... Really don't know... Maybe when I > fill the output... :( > > On 30 août, 16:59, Narann <[email protected]> wrote: > > 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 > -- http://groups.google.com/group/python_inside_maya
