you're right, .set() isn't supported. I've found out that I should use .setMObject() instead. The new error is "invalid Null reference".
Cheers, Seb On 6 Jan., 09:13, André Adam <[email protected]> wrote: > Moin Sebastian, > > I haven't completely debugged your code snippet, but I can tell you > this much, MDataHandle.set() is not script-supported. MDataHandle > offers data type specific, non-polymorph functions to set data through > Python, like MDataHandle.setFloat() or MDataHandle.setMObject(). I > have not yet tried to generate geometry through custom DG nodes, so > unfortunately I can't tell you if you are on the right track in > general. > > Cheers! > > -André > > On Jan 6, 12:49 am, borgus <[email protected]> wrote: > > > > > > > > > hi guys! > > > I simply want to create a node wich produces a simple polygon and pass > > it to an output attribute ( kMesh). > > > #head of file > > import maya.OpenMaya as om > > import maya.OpenMayaMPx as ommpx > > > inside of the compute method I do this: > > > if plug == PlaceBetween.outputMesh: > > #create handle > > outputDataHandle = > > om.MDataHandle( dataBlock.outputValue( PlaceBetween.outputMesh ) ) > > > dataCreator = om.MFnMeshData() > > moOutputData = dataCreator.create() > > points = om.MFnPointArrayData() > > meshFn = om.MFnMesh() > > > vtx1 = om.MFloatPoint( 0.0, 0.0, 0.0 ) > > vtx2 = om.MFloatPoint( 0.0, 1.0, 0.0 ) > > vtx3 = om.MFloatPoint( 1.0, 1.0, 0.0 ) > > > points = om.MFloatPointArray() > > > #append points to array > > points.append( vtx1 ) > > points.append( vtx2 ) > > points.append( vtx3 ) > > > #number of faces > > su1 = om.MScriptUtil() > > polyArray = om.MIntArray() > > su1.createIntArrayFromList( [1], polyArray) > > > #number of connections > > su2 = om.MScriptUtil() > > connecArray = om.MIntArray() > > su2.createIntArrayFromList( [0,1,2], connecArray) > > > #create the mesh data here... > > meshFn.create( 3, 1, points, polyArray, connecArray, > > moOutputData) > > > #pass the create meshdata to the output attribute.... > > ERROR > > outputDataHandle.set( moOutputData ) > > > #set the plug clean > > dataBlock.setClean( plug ) > > > The problem is that when I set the output attribute using > > dataHandle.set( ) I get an attribute error in maya, just > > "attribute error... set() " > > I really can't find it out and I hope you can spread some light here. > > I'm very new to maya python API programming > > and doing my first steps here :) > > > what I do in Maya is: > > > createNode "myNode"; > > createNode "mesh"; > > > connectAttr nameOfMyNode.outmesh nameOfMesh.geometry; > > > I hope that's correct so far....when I connect the nodes and the > > compute method of my node is called, I get the > > error. > > > Thanks, Seb. -- view archives: http://groups.google.com/group/python_inside_maya change your subscription settings: http://groups.google.com/group/python_inside_maya/subscribe
