eval

MEL コマンドを実行します。

string eval(string command)

command は、二重引用符で囲んだコマンド文字列、またはコマンドを表す文字列型変数です。

戻り値は、コマンドを実行した結果を表す文字列です。

注:

eval コマンドは最上位の MEL スコープで 実行されるので、グローバル関数として認識され、プロシージャ内で定義した関数(ローカル関数)としては認識されません。詳細については、グローバル変数とローカル変数を参照してください。

例 1

eval("select -cl")

select -cl コマンドを実行し、シーン内のオブジェクトの選択をすべて解除します。この例では戻り値は使用されませんが、コマンドの出力結果が返されます。

例 2

string $cmd = "select -cl";
eval($cmd);

1 番目の文は、select -cl というコマンド文字列を文字列型変数 $cmd に代入します。2 番目の文は、$cmd の内容(select -cl コマンド)を実行します。

例 3

string $mycommand = "sphere";
eval($mycommand+"-r 5");

1 番目の文は sphere という文字列を変数 $mycommand に代入します。2 番目の文により、「-r 5」が文字列「sphere」の後ろに追加され、「sphere -r 5」というコマンドが実行されます。これによって、半径が 5 グリッドの球が作成されます。

例 4

string $a[];
$a = eval("ls -lights");
print($a);

1 番目の文は $a という文字配列を定義します。2 番目の文は MEL コマンド ls -lights を実行し、その出力を配列 $a に割り当てます。3 番目の文は $a の内容をスクリプト エディタ(Script Editor)に次のように表示します。

ambientLightShape1
directionalLightShape1

コマンドの出力結果を表す行が、それぞれ新しい行に表示されます。コマンドの出力結果の各行は配列の要素です。Maya では配列の各要素が新しい行に出力されます。