2015年1月25日日曜日

シェルフを取得する方法

自分で作ったMELでシェルフが増えていくなーと思ったので消したかった。
でも直接パスを取得する方法が見つからない。
簡単に探せる方法があれば教えて欲しい。

カレントシェルフタブから指定するラベルを探して
レイアウトのパスを返すプロシージャを作ってみた。

他のMELからyjp_getshelfを実行してdeleteUIするとMayaが強制終了する。
なぜだろう。

global proc string yjp_getshelf(string $labeltxt)
{
    global string $gShelfTopLevel;
string $shelfpath ="";
string $path ;
string $ctab = `shelfTabLayout -q -st $gShelfTopLevel`;
string $shelves[] = `layout -q -ca ($gShelfTopLevel + "|" + $ctab)`;
string $shelf;
for($shelf in $shelves)
{
$path = $gShelfTopLevel + "|" + $ctab + "|" + $shelf;
string $la = `shelfButton -q -l $path`;
if ($la == $labeltxt)
{
   $shelfpath = $path;
return $shelfpath;
}
}
return $shelfpath;
}

0 件のコメント:

コメントを投稿