fatsumo
10-01-2009, 05:24 PM
Okay, think this is my last scripty question for a while so anyone in the know, would be great to pick your brains.
Have a locator and have let's say 20 cubes. Want to turn the cubes vis off if the locator is within a certain distance.
I have something, but it doesnt work at present, but maybe a good start?
string $sObjectA = "locator1";
string $sObjectB = "cube_";
$attrib = ($sObjectB + $i + ".visibility");
$someGivenAmount = 10;
for ($frame = 1; $frame <= 100; $frame ++)
currentTime $frame;
for( $i = 1; $i < size( $sObjectB ); $i++ )
{
int $i;
float $faObjectA_Xforms[] = `xform -q -ws -t $sObjectA`;
float $faObjectB_Xforms[] = `xform -q -ws -t $sObjectB`;
float $dx = ($faObjectA_Xforms[0] - $faObjectB_Xforms[0]);
float $dy = ($faObjectA_Xforms[1] - $faObjectB_Xforms[1]);
float $dz = ($faObjectA_Xforms[2] - $faObjectB_Xforms[2]);
$fDistance = sqrt(($dx*$dx) + ($dy*$dy) + ($dz*$dz));
if ($fDistance < $someGivenAmount)
{
setAttr $attrib (0);
}
else
{
setAttr $attrib (1);
}
};
Have a locator and have let's say 20 cubes. Want to turn the cubes vis off if the locator is within a certain distance.
I have something, but it doesnt work at present, but maybe a good start?
string $sObjectA = "locator1";
string $sObjectB = "cube_";
$attrib = ($sObjectB + $i + ".visibility");
$someGivenAmount = 10;
for ($frame = 1; $frame <= 100; $frame ++)
currentTime $frame;
for( $i = 1; $i < size( $sObjectB ); $i++ )
{
int $i;
float $faObjectA_Xforms[] = `xform -q -ws -t $sObjectA`;
float $faObjectB_Xforms[] = `xform -q -ws -t $sObjectB`;
float $dx = ($faObjectA_Xforms[0] - $faObjectB_Xforms[0]);
float $dy = ($faObjectA_Xforms[1] - $faObjectB_Xforms[1]);
float $dz = ($faObjectA_Xforms[2] - $faObjectB_Xforms[2]);
$fDistance = sqrt(($dx*$dx) + ($dy*$dy) + ($dz*$dz));
if ($fDistance < $someGivenAmount)
{
setAttr $attrib (0);
}
else
{
setAttr $attrib (1);
}
};
