//Script created by Francis Bitonti //this is a maya script that will take a grid of particles and produce a quad mesh from the points. //it's a bit slopy and needs a ui but it was the first mel script i ever created and I didn't have time to //go back and fix it up yet. //before you start rename your particle grid to particle2 //enter number of particle directly above the first particel //in the particle grid find 0 particle then the particle index number //of the particle above that is the variable. It's a bit clumsy... $part2 = 6; $part5 = $part2/2; print ($part5); print ("part5"); //particle count $numberofpart = `getAttr particleShape2.count`; //number of particles in a row $rownum = $part2; //resolution $res = 0; //row resolution $rowres = $part2*$res; $part3 = $part2+1; //set the number of times you want the script to loop. $numofloops = $numberofpart/2-$part5; for ($i = 0; $i < $numofloops; $i++) { //you will need to enter in the b value for the mx+b slope equations //via an interface we will use these values to select particles. $ia = 2*$i; $ib = 2*$i+1; $iba = $ib+1; $ic = 2*$i+$part2; $id = 2*$i+$part3; $ida = $id+1; //this varable represents the face name counter $facenamenum = $i*2+1; //get the particle position and store it in a vector and break it up into xyz parts. float $partposia[]; $partposia = `getParticleAttr -at worldPosition ("particle2.pt[" + $ia + "]")`; $partposiax = $partposia[0]; $partposiay = $partposia[1]; $partposiaz = $partposia[2]; float $partposib[]; $partposib = `getParticleAttr -at worldPosition ("particle2.pt[" + $ib + "]")`; $partposibx = $partposib[0]; $partposiby = $partposib[1]; $partposibz = $partposib[2]; float $partposic[]; $partposic = `getParticleAttr -at worldPosition ("particle2.pt[" + $ic + "]")`; $partposicx = $partposic[0]; $partposicy = $partposic[1]; $partposicz = $partposic[2]; float $partposid[]; $partposid = `getParticleAttr -at worldPosition ("particle2.pt[" + $id + "]")`; $partposidx = $partposid[0]; $partposidy = $partposid[1]; $partposidz = $partposid[2]; float $partposida[]; $partposida = `getParticleAttr -at worldPosition ("particle2.pt[" + $ida + "]")`; $partposidax = $partposida[0]; $partposiday = $partposida[1]; $partposidaz = $partposida[2]; float $partposiba[]; $partposiba = `getParticleAttr -at worldPosition ("particle2.pt[" + $iba + "]")`; $partposibax = $partposiba[0]; $partposibay = $partposiba[1]; $partposibaz = $partposiba[2]; print ($ia);print ("\n");print ($partposiax);print ("\n");print ($partposiay); print ("\n");print ($partposiaz);print ("\n");print ("\n");print ($ib);print ("\n"); print ($partposibx);print ("\n");print ($partposiby);print ("\n");print ($partposibz); print ("\n");print ("\n");print ($ic);print ("\n");print ($partposicx);print ("\n");print ($partposicy); print ("\n");print ($partposicz);print ("\n");print ("\n");print ($id);print ("\n");print ($partposidx); print ("\n");print ($partposidy);print ("\n");print ($partposidz);print ("\n");print ("\n"); //draw a 3d mesh //if you want to project to the x y or z plane //set variable to zero //XXXXXXXXXXXXXXXXXX // $partposibx = 0; // $partposiax = 0; // $partposicx = 0; // $partposidx = 0; // $partposibax = 0; // $partposidax = 0; //YYYYYYYYYYYYYYYYYY // $partposiby = 0; // $partposiay = 0; // $partposicy = 0; // $partposidy = 0; // $partposibay = 0; // $partposiday = 0; //ZZZZZZZZZZZZZZZZZZ // $partposibz = 0; // $partposiaz = 0; // $partposicz = 0; // $partposidz = 0; // $partposidaz = 0; // $partposibaz = 0; //draw a face. polyCreateFacet -ch on -tx 1 -s 1 -p $partposibx $partposiby $partposibz -p $partposiax $partposiay $partposiaz -p $partposicx $partposicy $partposicz -p $partposidx $partposidy $partposidz ; //draw a face 2. polyCreateFacet -ch on -tx 1 -s 1 -p $partposibax $partposibay $partposibaz -p $partposibx $partposiby $partposibz -p $partposidx $partposidy $partposidz -p $partposidax $partposiday $partposidaz ; //delete extra faces starts. $numofloopsredo = $numofloops*2+$part2; $newloops = $numofloopsredo/$part2; } //times to loop $trigloop = $numofloops*2; for ($i = 1; $i < $trigloop; $i++) { } $numofloopsredo = $numofloops*2+$part2; $newloops = $numofloopsredo/$part2; for ($i = 1; $i < $newloops; $i++){ $facenum = $i*$part2; select -r ("polySurface" + $facenum) ; doDelete; } SelectAllPolygonGeometry; polyUnite;