////////////////////////////////////////////////////////// //name: CircleFlow v3.0 //date: 12/Sept 2006 //status: working ////////////////////////////////////////////////////////// proc string ExpressionMaker(int $numCircles, int $numRow, float $radius, float $distBetCircles, float $amp, int $ra) { float $tmpVector[]; string $tmpCircleName[]; string $tmpCircleNameArray[]; string $tmpCurveName[]; string $CVstring1; float $d; float $z; int $ra = 2; float $randamValue = rand(1,$ra); for($k=0; $k<$numRow; $k++){ $randamValue = rand(1,$ra); clear $tmpCircleNameArray; clear $tmpCurveName; $CVstring1 = "curve -d 3 "; for($i=0; $i<$numCircles; $i++){ $z = (-1*$distBetCircles*$i); circle -c 0 0 $z -nr 0 1 0 -r $radius; $tmpCircleName = `ls -sl`; $tmpCircleNameArray[$i] = $tmpCircleName[0]; $tmpVector = `pointPosition ($tmpCircleName[0] +".cv[7]")`; $d = 2*$k*$tmpVector[0]; xform -cp; move -a $d 0 0 $tmpCircleName[0]; expression -s ($tmpCircleName[0] +".scaleX = ("+ $z/$amp +"*sin(time*"+ $z*$randamValue +"*0.01));\r\n"+ $tmpCircleName[0] +".scaleZ = ("+ $z/$amp +"*cos(time*"+ $z*$randamValue +"*0.01));") -o $tmpCircleName[0]; //expression -s ($tmpCircleName[0] +".translateX = (sin(time)+"+ $d +");\r\n"+ $tmpCircleName[0] +".translateZ = (cos(time)+"+ $tmpVector[2]+");") -o $tmpCircleName[0]; $CVstring1 += ( "-p "+ ($d + $tmpVector[0]) +" "+$tmpVector[1]+" "+$tmpVector[2]+" "); } eval($CVstring1); $tmpCurveName = `ls -sl`; for($i=0; $i<$numCircles; $i++){ expression -s ("float $cv[] = `pointPosition "+ $tmpCircleNameArray[$i] +".cv[7]`;\r\nmove -a $cv[0] $cv[1] $cv[2] "+ $tmpCurveName[0] +".cv["+ $i +"];") -o $tmpCurveName[0]; } } return ("Circles Flow."); } ExpressionMaker(20, 10, 1, 3, 10, 3);