global proc string meRefExp() { string $sel[] = `ls -sl`; string $ref; if (size($sel) == 1) { $ref = $sel[0]; } else { print "no references selected, using first one I find"; // get all refs string $refs[] = `ls -type "reference"`; // if multiple, abort, ask user to select ones to use if (size($refs) > 2) return "more than one ref, please select the ref node to use"; $ref = $refs[0]; } // create locator string $loc = "REF_EXPRESSION"; if (size(`ls $loc`) == 0) { spaceLocator -p 0 0 0 -n "REF_EXPRESSION"; } // create expression string $exp[]; string $refPath = `referenceQuery -f $ref`; string $file = basename ($refPath,".mb"); string $dir = dirname ($refPath); string $tok[]; tokenize( $file, "_", $tok); int $i; string $stripFile; for ($i = 0; $i < size($tok)-1; $i++) { $stripFile += $tok[$i]+"_"; } string $prefix = $dir+"/"+$stripFile; $exp[0] = $loc+".visibility = 1;\n"; $exp[1] = "\n"; $exp[2] = "string $prefix = \""+$prefix+"\";\n"; $exp[3] = "string $middle = pad(`currentTime -q`,4);\n"; $exp[4] = "string $suffix = \".mb\";\n"; $exp[5] = "file -loadReference "+$ref+" ($prefix+$middle+$suffix);\n"; string $expStr; for ($e in $exp) { $expStr+=$e; } if (size(`ls "refExpression"`) > 0) delete refExpression; $expNode = `expression -n "refExpression" -s $expStr`; print $expStr; return "expression created"; }