在使用 Zemax ZPL 进行批量仿真时,一个非常常见的需求是:对一组“非等间距参数”进行遍历计算。
1. ZPL 中 for 循环的限制
ZPL 中的 FOR...NEXT 循环,本质上是步进循环,例如:
这里的变量 i 是等间距变化的(步长可以是非整数,但必须是固定步长)。

👉 这就带来一个问题:当需要遍历如下序列时:
传统 FOR 循环无法直接实现。
很多人会选择“复制多段代码”,但这种方式:
2. 使用 Array Variable 解决非等间距遍历
ZPL 提供了 数组变量(Array Variable),可以很好解决这个问题。


(1)声明数组
DECLARE Aperall, DOUBLE, 1, 5
含义:
(2)赋值
Aperall(1) = 1Aperall(2) = 2Aperall(3) = 4Aperall(4) = 8Aperall(5) = 23
(3)通过索引遍历
FOR i, 1, 5, 1 value = Aperall(i) ! 在这里使用 value 做仿真NEXT
这样就实现了任意离散参数扫描✅
👉 本质上是:
用“等间距索引 i” → 映射“非等间距参数值”
这个思路非常重要,在后续做:
时都非常常用。