Scripts - CC_Grouper

//==============================================================
//
// CC_Grouper
//
// Make Group with Prefix, Suffix, Search&Replace.
//
//==============================================================



//==============================================================
//
// CC_Grouper
//
// Make Group with Prefix, Suffix, Search&Replace.
//
//==============================================================

//==============================================================
// Window
//==============================================================
if (`window -exists window_ccgrp`){
    deleteUI window_ccgrp;
}
window -t "CC Grouper v1.0" window_ccgrp;
window -e -wh 330 70 -sizeable true window_ccgrp;
columnLayout;
rowColumnLayout -nr 3 -rh 1 22 -rh 2 22 -rh 3 22;

    rowColumnLayout -nc 4 -cw 1 50 -cw 2 100 -cw 3 70 -cw 4 100;
        text -l " Search : " -al "left";
        textField textSearch;
        text -l " & Replace : " -al "left";
        textField textReplace;
    setParent..;
   
    rowColumnLayout -nc 4 -cw 1 50 -cw 2 100 -cw 3 70 -cw 4 100;
        text -l " Prefix : " -al "left";
        textField textPrefix;
        text -l " Suffix : " -al "right";
        textField textSuffix;
    setParent..;
   
    rowColumnLayout -nc 1 -cw 1 320;
        button -l "Select Objects and Click Here to Make Group" -c "cc_makegroup" buttonMake;
    setParent..;
setParent..;

showWindow window_ccgrp;

//==============================================================
// make Group
//==============================================================
proc cc_makegroup(){
    string $sel[] = `ls -sl`;
    string $grpName;
    string $objName;
   
    for($objName in $sel){
       
        $grpName = `group -em  -n (ccgrp_make_name($objName))`;
       
        string $parentName[] = `listRelatives -p $objName`;
        if(size($parentName) > 0){
            parent $grpName $parentName[0];
            makeIdentity -apply true -t 1 -r 1 -s 1 -n 0 $grpName;
        }
       
        parentConstraint $objName $grpName;
        select `listRelatives -type parentConstraint $grpName`;
        doDelete;
       
        makeIdentity -apply true -t 1 -r 1 -s 1 -n 0 $grpName;
       
        parent $objName $grpName;
        makeIdentity -apply true -t 1 -r 1 -s 1 -n 0 $objName;
       
    }
   
}

//==============================================================
// make group name and return it
//==============================================================
proc string ccgrp_make_name(string $baseName){
    string $returnName = $baseName;
   
    string $search = `textField -q -tx textSearch`;
    string $replace = `textField -q -tx textReplace`;
    string $returnName = substituteAllString($returnName, $search, $replace);
   
    string $prefix = `textField -q -tx textPrefix`;
    string $suffix = `textField -q -tx textSuffix`;
    if($prefix == "" && $suffix == ""){
        $prefix = "grp_";
        textField -e -tx $prefix textPrefix;
    }
    $returnName = $prefix + $returnName + $suffix;
   
    return $returnName;
}

0 Comments to “Scripts - CC_Grouper”