Thanks a lot guys for the response.

@ Ren Zhi:

I tried these lines, put them into the draw() function, and it seems
not working.

@ Adan:
below are the code for defining the attrs:

// define the float attr:
        aLingChange = numAttr.create( "lingChangeA", "lca",
MFnNumericData::kFloat, 0.0, &stat );
        CHECK_MSTATUS( numAttr.setStorable(false) );
        CHECK_MSTATUS( numAttr.setKeyable(false) );
        CHECK_MSTATUS( numAttr.setHidden(true) );
        CHECK_MSTATUS( addAttribute( aLingChange ) );

//define the mstring attr:
        //custom attr aCropWith from Ling
        aCropWith = strAttr.create( MString("cropWithSelection"), MString
("cws"), MFnData::kString, aCropWith, &stat );
        CHECK_MSTATUS( strAttr.setStorable(true) );
        CHECK_MSTATUS( strAttr.setKeyable(false) );
        CHECK_MSTATUS( strAttr.setConnectable(true) );
        CHECK_MSTATUS( addAttribute( aCropWith ) );

// define the mmatrix attr
        aBBoxMatrix = matrixAttr.create( "extractBoxMatrix", "ebm",
MFnMatrixAttribute::kFloat, &stat );
        CHECK_MSTATUS( numAttr.setStorable(true) );
        CHECK_MSTATUS( numAttr.setKeyable(true) );
        CHECK_MSTATUS( numAttr.setConnectable(true) );
        CHECK_MSTATUS( numAttr.setHidden(true) );
        CHECK_MSTATUS( addAttribute( aBBoxMatrix ) );

and I set the affecting relations on the first post..


@ Judah:

Hi Judah: thanks a lot for your suggestions,

In my compute() function, if I ask the node to do something simple,

it's working fine, but if I change the code to  :


if(plug == aLingChange):
{
 then do something
}
it won't work... the compute() function still runs, but just skip the
codes inside the curly brackets,

because the aLingChange is not been affected..

weird


@ Viktoras:

Thanks for your suggestions, he docs is talking about dynamic
attributes affecting dynamic/static attrs

The concept of it seems gonna fix my problem, but I tried with this
setDependentsDirty() function, and it doesn't work as well.

My question is, after defining the function, should I use it
somewhere, or it will run automatically?






On Feb 2, 12:02 pm, viktoras <[email protected]> wrote:
> what maya is saying you is that both attributeAffects associations
> failed. while this compiled
> fine, it's not behaving like code tells node to.
> try setting dirty flag manually, see MPxNode:: setDependentsDirty  
> documentation for details.
>
> On 2010.02.02 17:35, Ling wrote:
>
>
>
> > Hi guys:
>
> >    sorry for post this again, but I desparately needing for help.
>
> > my problem is I created three attribute in my custom locator node,
> > a MString attribute, a MMatrixAttribute,
> > and they are affecting a float attribute.
>
> > basically like this:
> > CHECK_MSTATUS( attributeAffects( MStringAttr,     floatAttr ) );
> > CHECK_MSTATUS( attributeAffects( MMatrixAttr,     floatAttr ) );
>
> > the node compiles fine, but when changing the Matrix and String
> > attribute,
> > the float attribute doesnt response, which means the node won't
> > re-"compute"..
>
> > also i got some error message like:
> > attributeAffects( MString,     floatAttr )
> > (kInvalidParameter): Object is incompatible with this method
>
> > attributeAffects( MMatrixAttr,     floatAttr )
> > (kInvalidParameter): Object is incompatible with this method
>
> > and if I set only the MString attribute affecting the float attribute,
> > the error becomes:
> > attributeAffects( MString,     floatAttr )
> > (kInvalidParameter): Object is incompatible with this method
>
> > Really appreciate your helps
>
> > -ling
>
> --
> Viktorashttp://www.neglostyti.com

-- 
http://groups.google.com/group/python_inside_maya

Reply via email to