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
