— MEL Notepad
mel notepad with various code snippets
process selection list
string $select[] = ls -sl;
for ( $node in $select ) // process each
{
/* ... */
}
if node exists
string $node = "object";
if ( objExists $node )
{
// The node exists
}
regexp
Strip component
string $node = "pCube1.f[2]";
string $no_component = match "^[^\.]*" $node;
// Result: "pCube1" //
Extract component or attribute, with '.'
string $node = "pCube1.f[2]"; string $component =match "\\..*" $node; // Result: ".f[2]" //string $nodeAttr = "blinn1.color"; string $attrName =
match "\\..*" $nodeAttr; // Result: ".color" //
Extract attribute name, without '.'
string $node = "pCube1.f[2]"; string $component = `substitute "^[^.]*\\." $node ""`; // Result: "f[2]" // string $nodeAttr = "blinn1.color"; string $attrName = `substitute "^[^.]*\\." $nodeAttr ""`; // Result: "color" //
Extract parent UI control from full path
string $uiControl = "OptionBoxWindow|formLayout52|formLayout55|button6";
string $uiParent = substitute "|[^|]*$" $uiControl "";
// Result: OptionBoxWindow|formLayout52|formLayout55 //
Strip trailing Line Break (\n), if any.
This is useful when processing text input read from a file using fgetline.
string $input = "line\n";
$string $line = match "^[^(\r\n)]*" $input;
// Result: "line" //
Extract directory from path.
Keep the trailing slash for ease of use.
string $path = "C:/AW/Maya5.0/bin/maya.exe";
string $dir = match "^.*/" $path;
// Result: "C:/AW/Maya5.0/bin/"
Extract file from path
string $path = "C:/AW/Maya5.0/bin/maya.exe";
string $filepart = match "[^/\\]*$" $path;
// Result: "maya.exe"
Strip numeric suffix
string $node = "pCube1|pCubeShape223"; string $noSuffix =
match ".*[^0-9]" $node; // Result: "pCube1|pCubeShape"
Extract numeric suffix
string $node = "pCube1|pCubeShape223";
string $suffix = match "[0-9]+$" $node;
// Result: "223" //
Extract short name of DAG or control path
string $dagPath = "pCube1|pCubeShape223";
string $shortName = match "[^|]*$" $dagPath;
// Result: pCubeShape223 //