View Full Version : REALLY Always Evaluate ?

10 October 2003, 02:01 PM
Hello scripters.

I have a little script that centers something between two points, and i have applied this script as an expression, but the thing is that i cant get it to evalute ALL the time ( the evaluate always just does the trick when i move the slider back and forth ).
So my question to all you MEL-scripters is: Can you make a script evaluate when i move one of the point or is there a way to make the script run in the background ( wich i think would be kinda slow ) ?

Very thankful for answers // Cyze

10 October 2003, 02:18 PM
I think two point constraints with weights of .5 would work for what you are doing, not to mention be easier.

But, as for making the expression evaluate ALL the time, I think you'll need a Dependency Graph connection directly. That way maya will be able to figure out exactly how everything relates to each part of the scene.

10 October 2003, 10:48 PM
Yeah -- if you're using getAttr and setAttr, the expression won't actually be connected in the DG and thus won't run except when the time slider is advanced.

so, instead of

float $x1 = `getAttr locator1.tx`;
float $x2 = `getAttr locator2.tx`;

setAttr locator3.tx (($x1 + $x2) / 2);

make sure you're using

locator3.tx = (locator1.tx + locator2.tx)/2;

Referring to attributes explicitly like this (which you can't do in a standalone MEL script but which is OK in an expression) tells Maya to connect the appropriate inputs and outputs to the expression node, which should solve problems like yours.

-- Mark

11 November 2003, 06:05 PM
wow Mark, you seem to explain that one pretty often between here and your forums....
you helped me with it just a few months ago :)

11 November 2003, 07:34 PM
well, it's possible it's not the problem, but it's a likely candidate.

For some reason, most people take a while to really internalize how expressions work, and that's kind of THE critical aspect to their behavior, so I find myself repeating it. :D

-- Mark

CGTalk Moderation
01 January 2006, 02:00 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.