// Author: Walter Behrnes // Script Name: wb_Partial_Loop_Select.mel // Script Version: 1.0 // Maya Version: 7+ // usage: select two edges on a common loop or ring and run script. global string $currentSel[]; //create global var string $currentSel[] = `ls -sl -fl`; //grab value of selection, flatten int $selCount = size( $currentSel ); //grab size print ("\n\n"); //////////////////////////////////////////////////////////////////////////////// // PROCS // //////////////////////////////////////////////////////////////////////////////// proc partialSelect(){ //STRART partialSelect proc global string $currentSel[]; //redeclair global var string $regularExpr, $element, $elementOneLineNumber, $elementTwoLineNumber; int $e1, $e2, $newSelCount; $regularExpr = ".e\[+[0-9]+\]$"; //create regular Expression to gather name of object $element = `substitute $regularExpr $currentSel[0] ""`; //print ("Element: " + $element + "\n"); $regularExpr = "\[+[0-9]++\]"; $regularExpr1 = "[0-9]+"; $elementOneLineNumber = `match $regularExpr $currentSel[0]`; $elementOneLineNumber = `match $regularExpr1 $elementOneLineNumber`; //print ("Line 1: " + $currentSel[0] + "\n"); //print ("Element 1: " + $elementOneLineNumber + "\n"); $elementTwoLineNumber = `match $regularExpr $currentSel[1]`; $elementTwoLineNumber = `match $regularExpr1 $elementTwoLineNumber`; //print ("Line 2: " + $currentSel[1] + "\n"); //print ("Element 2: " + $elementTwoLineNumber + "\n"); $e1 = $elementOneLineNumber; //convert to integers $e2 = $elementTwoLineNumber; polySelect -erp $e1 $e2 $element; PolygonCollapse; string $newSel[] = `ls -sl -fl`; //put new selection into variable $newSelCount = size( $newSel ); //check size if ($newSelCount == 0) //if size is zero not a ring selection, report error to user { print "!!! Ring selection failed !!! \n"; print " Selected lines do not appear to be on the same \n"; print " ring, please try again.\n"; } } //END partialSelect proc //////////////////////////////////////////////////////////////////////////////// // MAIN CODE TO START SCRIPT // //////////////////////////////////////////////////////////////////////////////// if ($selCount == 2) //if selection is two start script { print "two edges selected.\n"; partialSelect(); } else //else report problem and quit { print "Please select 2 edges on the same ring or loop"; }