文字列をスクリプトとして実行するメソッド「execute」を使用する際には、スコープに注意しなければいけない。
以下ヘルプより抜粋、
execute <string> 文字列の内容を MAXScript 式としてコンパイルおよび評価し、評価結果を返します。 評価された文字列で使用された変数のスコープはグローバルで、 execute()メソッドが実行されるときに適用されるスコープではありません。
そのため、関数、スクリプト ユーティリティ、またはスコープが グローバルではない任意の位置でexecute()を呼び出す場合は、 実行する文字列で使用される変数のスコープを明示的に指定する必要があります。
基本的に変数のスコープ(globalかlocalか)は、きちんと定義しておくべきだが、
executeの文字列内で呼び出される変数はグローバルでないとundefinedになってしまうため、特に注意が必要。
すみません、こんなところで質問です。
返信削除Move_To_Surface_v02.ms を無くしてしまい、
どこかでダウンロードできませんでしょうか?
お手数おかけします。
すいません、スクリプト配布ページのリンク切れを修正しましたので、こちらのページからダウンロードをお願いします。
削除http://suit-dimension-tools.blogspot.jp/2015/01/move-to-surface.html
このコメントは投稿者によって削除されました。
削除ありがとうございます。
削除ただ、オブジェクトのグループ、アセンブリではうまくいかないです。いろいろ試してみます。
ご意見ありがとうございます。簡易的に作成したスクリプトのため、グループなどは検証していませんでした。改良時に検討してみます。
削除ありがとうございます。
削除とても簡単で良いスクリプトなので、今後に期待です。
よろしくお願いします。