3ds Max 7 より前のバージョンでは、Array 値、VertexSelection 値、FaceSelection 値、EdgeSelection 値、BigMatrix、および BigMatrixRowArray値を文字列に出力または強制的に置き換える場合、最初の 20 要素しか変換されませんでした。
3ds Max 7 以降、MAXScript 変数と新しいコンテキストが導入されました。これらは、上記の値タイプをすべて文字列に出力または強制的に置き換えるか、最初の 20 要素だけにするかをコントロールします。
変数は次のとおりです。
options.printAllElements
true に設定した場合、Array 値、MeshSelection 値、BigMatrix 値、および BigMatrixRowArray 値のすべての要素が、文字列に出力または強制的に置き換えられます。false に設定した場合、これらの値タイプの最初の 20 要素だけが出力されます。
コンテキストは次のとおりです。
with printAllElements <boolean> <expr>
<boolean>
が true の場合、<expr>
が実行されるときに printAllElements が true になります。これは例外に対処しています。例外が <expr>
で起きた場合、printAllElements が初期値に戻されます。
例:
a = for i = 1 to 30 collect i --> #(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...) with printAllElements off (print a #nomap;ok) --> #(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...) --> OK with printAllElements on (print a #nomap;ok) --> #(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) --> OK with printAllElements off a as string --> "#(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...)" with printAllElements on a as string --> "#(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)" ( -- note that the following is not exception safe! local oldPrintAllElements = options.printAllElements options.PrintAllElements = true print a #nomap options.printAllElements = oldPrintAllElements ok ) --> #(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30) --> OK