こんにちは、篠島です。コンパイルブロックのエラー集の最後です。
今回のサンプルファイルです。
Compile_error3.zip
Attempt to use local variable in a compilied node: …
コンパイルブロック内でローカル変数を使うとこのようなエラーがでます。下の例ではTransform SOPにローカル変数の$CEYを使っています。解決策としてはローカル変数を使わないだけなのですが、ローカル変数の代わりになる物が分からないと対処が難しいです。
$CEY などのジオメトリの中心を求める機能はエクスプレッションのcentroid() を使って表すことが出来ます。Spare Input を使って下のように書くことが出来ます。するとコンパイルエラーは無くなりきちんと動作します。破片毎にスケールを掛けることができています。
使えないのはローカル変数だけであり、$Fなどはグローバル変数なのでコンパイルブロック内でも使用可能です。ローカル変数の代わりに使えるエクスプレッションとして $XMIN や $SIZEX 等は bbox() を使って表現することが出来ます。