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

Reply via email to