2016-06-26 18 views
0

OpenSCADに作成するには、そのポイントvectorをプログラムによって生成します。しかし、...行列にOpenSCADで点(ベクトル/行列)を生成するには?

p = [1,0,0]; 
r = [[], [], [], [], [], [] ]; 

for(i=[0:5]) 
{ 
    echo("i=",i); 
    r[i] = [0,1]; 
} 

を値を割り当てると、構文エラーを生成します。

ERROR: Parser error in line 7: syntax error 
ERROR: Compilation failed! 

私は本当に読み取り専用(これは)、またはこれらの型である間違いを作っています(インデックスによる割り当てなし)?

+0

回答は[こちら](http://stackoverflow.com/a/30272219/1619432) – handle

答えて

1

割り当てられた後にrを変更することはできません。

リストを生成できる式については、https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/List_Comprehensionsを参照してください。

例:

points = [ for (a = [0 : 5 : 359]) [ 20 * sin(a), 10 * cos(a) ] ]; 
polygon(points); 
+0

私はあなたの文はかなり真実だとは思いません。 「標準変数は、実行時ではなくOpenSCADでコンパイル時に設定されます」という質問に私のコメントでリンクしている回答を参照してください。私はリストの理解を試してみましょう。 – handle

+0

真実ではない部分はありますか? 'r'は変更できません。複数の割り当てを記述することは可能ですが、最後のものだけを実際に使用します(再割り当ては理想的にはエラーとしてフラグを立てるべきですが、下位互換性のため再配置は不可能です)。また、そのリンクされた答えに記載されている制限はもう存在しないことにも注意してください。キューブの次元が負でない限り、そのコードは実際にはうまく機能します。 –

+0

私は静的な値を再割り当てできると思っていましたが、これはうまくいきません。 – handle

関連する問題