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