//===================================================================== // SCRIPT: drago_distanceGrp // AUTHOR: Drago Avdalovic // DATE: Sept 10, 2005 // PROCEDURE: drago_distanceGrp (global) // ARGUEMENTS: no arguments // DESCRIPTION: creates groups that measures distance between 2 obj in local space. // translateY of that grp is the distance. // USAGE: select 2 obj and run the script // RETURN: string - name of that grp //====================================================================== // // returns string : name of the end group (endGrp.ty is the distance) // global proc drago_distanceGrp () { string $sel[]=`ls -sl`; drago_distanceGrpCmd $sel[0] $sel[1]; } global proc string drago_distanceGrpCmd(string $start, string $end) { print ("\n##### Creating distance between "+$start+" and "+$end+" #####"); //-- assign unique names string $nameStart=`group -em -n (stripEnd(nameShort($start),"_","_#"))`; string $nameEnd=`group -em -n (stripEnd(nameShort($end),"_","_#"))`; string $grpStart=`group -em -n ($nameStart+"_distTop_GRP#")`; string $grpEnd=`group -em -n ($nameEnd+"_dist_GRP#")`; pointConstraint -offset 0 0 0 -weight 1 $start $grpStart; pointConstraint -offset 0 0 0 -weight 1 $end $grpEnd; aimConstraint -offset 0 0 0 -weight 1 -aimVector 0 1 0 -upVector 0 1 0 -worldUpType "vector" -worldUpVector 0 1 0 $end $grpStart; parent $grpEnd $grpStart; delete $nameStart $nameEnd; print ("\n~~~~~ Use "+$grpEnd+".ty as the distance between ~~~~~"); return $grpEnd; } global proc string nameShort(string $name) { return `match "[^|]*$" $name`; } global proc string stripEnd (string $name, string $separator, string $add) { string $return=substitute (""+$separator+"[^"+$separator+"]*$", $name, $add); return $return; }