__NOTOC__
配列要素の値または範囲に基づいて繰り返し実行する。
配列要素の値: for (変数=<配列>) <実行されるもの> - <変数> には配列の値が次々に代入される
範囲: for (変数=<範囲>) <実行されるもの>
範囲: [<初期値>:<終値>] - 初期値から終値まで繰り返す。<終値> は <初期値> より小さくてもよい。
範囲: [<初期値>:<増分>:<終値>] - 初期値から終値まで増分だけ増やして繰り返す。増分は非整数でもよい。
注意: 増分は正の絶対値である必要がある。もし <終値> が <初期値> より小さくとも、増分は絶対値でなくてはならない。
警告: 増分で (-) が割り切れない場合、繰り返しの実際の終値は -(- mod ) となる
(訳注: 範囲を超えることはない。初期値1、終値6、差分2の場合、1、3、5が代入される)。
ループのネスト :
for (変数1 = <範囲または配列>, 変数2 = <範囲または配列> ) <両方の変数を変化させて実行されるもの>
for ループは通常のプログラム同様、ネストできる。ひとつのfor文で両方の繰り返しを実行できる。
Nested loop example
  for (xpos=[0:3], ypos = [0,2,6]) // 3要素の配列を範囲によって4回繰り返す
   translate([xpos, ypos, 0]) cube([0.5, 0.5, 0.5]);
配列または範囲による繰り返しを実行し、描いたものの交わり (intersection) をとる。
注: intersection_for() は、通常のfor() 文と intersection() 文を用いた結果と同じにならない問題があり、対処中である。
パラメータ
<ループ変数名> : for ループ内で用いられる変数名。 
サブツリー内を条件によって評価する。
引数
条件となるべきbooleanの式。
例:
 
if (x > y)
{
    cube(size = 1, center = false);
} else {
    cube(size = 2, center = true);
}
変数にサブツリー内での新しい値を代入する。
引数
(再)代入される変数。
例:
for (i = [10:50])
{
    assign (angle = i*360/20, distance = i*10, r = i*2)
    {
        rotate(angle, [1, 0, 0])
        translate([0, distance, 0])
        sphere(r = r);
    }
}
Update:
このバージョンから値の代入は好きなところでできるため、assign() は必要ない (assign() は後方互換性のために残されている)。