@jackyrj
数值函数
函 数
ABSO(x)
ACOS(x)
自 变 量
数字表达式
数字表达式
APMN(x)
有效表面编号
APMX(x)
有效表面编号
APXD(x)
APYD(x)
APTP(x)
ASIN(x)
ASPR()
ATAN(x)
ATYP()
AVAL()
有效表面编号
有效表面编号
有效表面编号
数字表达式
无
数字表达式
无
无
CALD(i)
指标
CONF()
CONI(x)
COSI(x)
CURV(x)
EDGE(x)
EOFF()
ETIM()
EXPE(x)
EXPT(x)
FICL(vec#)
FLDX(x)
FLDY(x)
无
有效表面编号
数值表达式(弧度表
示)
有效表面编号
有效表面编号
无
无
数字表达式
数字表达式
Vector #,在 1 和 4
之间,包括 1 和 4
有效视场编号
有效视场编号
1
返 回 值
表达式的绝对值。
反余弦值(弧度表示)。
最小半口径值。对于星形通光孔径是指臂
宽;对于长方形和椭圆通光孔径是指口径
的 X 方向半宽度。
最大半口径值。对于星形通光孔径是指臂
数;对于长方形和椭圆通光孔径是指口径
的 Y 方向半宽度。
孔径的 X 方向的偏心值。
孔径的 Y 方向的偏心值。
描述指定表面口径类型的整数代码。
反正弦值(弧度表示)。
当前视图设备的尺寸比例。
反正切值(弧度表示)。
系统孔径类型代码:0 指 EPD,1 指 F/#,2
指 NA,3 指随光阑尺寸移动。
系统孔径值。
返回 CALLMACRO 缓存中指定指标的数值。
见 711 页的“Calling a Macro from
within a Macro”。
返回当前的结构编号,在 1 和最大结构数
之间,包括这两个数。
表面的圆锥系数。
表达式的余弦值。
表面的曲率。
指定表面在半口径上的边缘厚度。
文件结束标记。如果已到文件末尾则返回
1,否则返回 0。仅在执行关键字 READ 后
函数才有效。
从最后一个 TIMER 开始所经过的时间(以
秒表示)。
以 e 为底数,表达式为指数的幂。
以 10 为底数,表达式为指数的幂。
光纤耦合效率。见 639 页的 “Using the
FICL() function”。
指定视场的 X 方向的角度或高度。
指定视场的 Y 方向的角度或高度。
@jackyrj
如果视场类型是以度数表示的角度则为
0,是物高则为 1,是理想像高则为 2,是
实际像高则为 3,高度以透镜单位为单位
(见 UNIT)。
指定视场的渐晕角度。
指定视场的 X 方向和 Y 方向的压缩渐晕系
数。
指定视场的 X 方向和 Y 方向的偏心渐晕系
数。
指定视场的权重。
玻璃库里指定表面对应的玻璃的阿贝常
数。
返回一个服从高斯分布的随机误差,该分
布有 0 平均值和指定的标准误差。
从任何一个打开的文本窗口中获取数值。
这功能允许我们利用 ZEMAX 在窗口中显
示的任意值进行计算。
玻璃库里指定表面对应的玻璃的 d 光折射
率。
指定表面球面顶点的 X 矢量。
指定表面球面顶点的 Y 矢量。
指定表面球面顶点的 Z 矢量。
当 item 等于 1-9 时,返回值为 R11,R12,
R13, R21, R22, R23, R31, R32, 或 R33。
当 item 等于 10-12 时,返回值全局偏移量
的为 x,y,或 z 分量。见 107 页的 “Global
Coordinate Reference Surface”。
指定表面球面顶点的 X 坐标。
指定表面球面顶点的 Y 坐标。
指定表面球面顶点的 Z 坐标。
.如果字符串 A$是一种有效玻璃名,如
BK7,那么返回这种玻璃在玻璃库中的编
号。关键字 SETSURFACEPROPERTY 可以用玻
璃编号来设定表面的玻璃类型。如果 A$不
是玻璃库中的玻璃名,返回 0。如果字符
串是“MIRROR”,返回–1。
玻璃库里指定表面对应的玻璃的相对部分
色散系数。
返回编号为 w 的波长在 s 表面的指定位置
(由 x,y,z 确定)的折射率。对于梯度和
非梯度介质都有效。
FTYP()
无
FVAN(x)
有效视场编号
FVCX(x), FVCY(x) 有效视场编号
FVDX(x), FVDY(x) 有效视场编号
FWGT(x)
GABB(x)
有效视场编号
有效表面编号
GAUS(x)
标准误差
GETT(window,
line, coumn)
GIND(x)
GLCA(x)
GLCB(x)
GLCC(x)
GLCM(surf, item)
GLCX(x)
GLCY(x)
GLCZ(x)
要获取的数值的窗
口编号、行编号、列
编号。 每列以空格
分界。
有效表面编号
有效表面编号
有效表面编号
有效表面编号
surf 须为有效表面
编号,item 为一个
在 1 到 12 之间的整
数
有效表面编号
有效表面编号
有效表面编号
GNUM(A$)
字符串变量名
GPAR(x)
有效表面编号
GRIN(s, w, x, y, z)
表面#,波长#,x,y
和 z 轴坐标
2
@jackyrj
返回几何图像分析效率。见 503 页的
“Optimizing with the IMAE operand”
的讨论。如果种子数为 0,那么每次调用
IMAE 时将使用同样的随机数。如果种子数
不为 0,每次调用 IMAE 时将使用不同的随
机数。
主波长的折射率。See ISMS。
返回不大于自变量的最大整数。
如果该表面是奇次镜面,或在奇次镜面后
但不是镜面,则返回值为 1,否则为 0。
IMAE(seed)
种子数
INDX(surface)
INTE(x)
有效表面编号
数字表达式
ISMS(surface)
有效表面编号
正的数值表达式 表达式的以 e 为底对数值。
正的数值表达式 表达式的以 10 为底对数值。
x 和 y 是任意实数
x 平方与 y 平方之和的平方根。
以度数表示的最大半视场角,或着以透镜
单位表示的半物高或半像高。,返回的值
依赖于视场是由哪种(角度、像高或物高)
定义。
当前使用的玻璃的数量。
从多重结构编辑界面的任意行和结构中获
取数据。 该函数与为获取数据而扩展性能
的 MCOP 类似。
如果行编号和结构编号都为 0,那么对于
data 等于 0,1,2,MCON 分别返回操作数个
数,结构个数或当前结构编号。
如果行编号在 1 和多重结构操作数个数之
间并且结构编号为 0,那么对于 data 等于
0 到 4,MCON 分别返回操作数类型,整数 1,
整数 2,整数 3 和字符串标记。这 3 个整
数值对于不同的操作数有不同的表达,例
如表面编号和波长编号。如果操作数值值
字符串,则字符串标记为 1,若为数值则
为 0。如果行编号在 1 和多重结构操作数
个数之间并且结构编号是有效的,MCON 返
回值为该操作数的数值或字符串。注意调
用 MCON 后 MCON 返回的字符串记录在
$buffer 命令中。例如,下面命令将把行 1
的操作数名存入 a$:
dummy = MCON(1, 0, 0)
a$ = $buffer()
见关键字 SETMCOPERAND.
从多重结构编辑界面的任意行和结构中获
取数据。结构编号为 0 代表当前结构。 见
关键字 SETMCOPERAND.
LOGE(x)
LOGT(x)
MAGN(x,y)
MAXF()
MAXG()
无
无
MCON(row, config,
data)
行(操作数编号),
结构编号和从多重
结构编辑界面获取
的数据
MCOP(row, config)
多重结构编辑界面
的行(操作数编号)
和结构编号
3
@jackyrj
MFCN()
无
NCON()
NFLD()
NOBJ(surface)
NPAR(surf,
object, param)
NPOS(surf,
object, code)
NPRO(surf,
object, code,
face)
NSDC(surf,
object, pixel,
data)
无
无
有效的非序列表面
编号
surf 是表面编号,
object 是目标编
号,param 是要返回
的值的参数编号
surf 是表面编
号,object 是目标
编号,code 是 0-6,
分别代表要返回的
参考目标的 x,y,z
坐标,x,y,z 倾斜的
位置
surf 为表面编号,
object 为物体编
号,code 值在关键
字 SETNSCPROPERTY
中定义,face 是面
编号
surf 值表示非序列
组中的表面序号。
object 序号表示想
要的探测器。pixel
表示返回的像素值。
data 为 0 时表示实
数,1 时表示虚数,
2 时表示振幅总和,
3 时表示相干强度。
见 670 页的
“NSTR”。
MFCN 更新镜头数据,验证评价函数,更新
评价函数,然后返回当前的评价函数值。
参见 OPER.
返回结构个数。
定义的视场个数。
非序列表面上定义的物体个数
从非连续元件的编辑界面的参数栏中返回
一个值。见 687 页的 “SETNSCPARAMETER”。
从非连续元件的编辑界面的位置栏中返回
一个值。 See
“SETNSCPOSITION” on page 687.
返回定义在非序列元件编辑界面中的物体
属性页的数值或字符串。关于 code 值的说
明,见 688 页的“SETNSCPROPERTY”。在
调用该函数之后,并且该函数含返回字符
串数据的 code 值的,可以使用函数
$buffer()来获取字符串数据。例如,使用
下面两行命令来获取 NSC 表面 2 中的物体
5 的注释列:
dummy = NPRO(2, 5, 1, 0)
a$ = $buffer()
dummy 可忽略。 字符串 a$将包含该物体的
注释。
如果 object 序号所对应的是探测器矩形,
那么将返回指定像素的相干强度。相干强
度由 4 个值组成,这 4 个值分别由入射光
学相加得来,4 个值分别为:实部,虚部,
振幅,相干强度。
如果 pixel 为 0,那么将返回探测器物体
的全部像素的数据总和。
4
@jackyrj
NSDD(surf,
object, pixel,
data)
NSDE(surf,
object, pixel,
angle, data)
NSDP(surf,
object, pixel,
data)
surf 值表示非序列
组中的表面序号。
object 序号表示想
要的探测器。关于
pixel 和 data 的讨
论,见右
discussion。见 670
页的 “NSTR”。
surf 值表示非序列
组中的表面序号。
object 序号表示想
要的探测器。关于
pixel,angle 和
data 的讨论,见右
discussion。见 670
页的 “NSTR”。
surf 值表示非序列
组中的表面序号。
object 序号表示想
要的探测器。关于
pixel 和 data 的讨
论,见右
discussion。见 670
页的 “NSTR”。
NSUR()
NWAV()
无
无
OBJC(A$)
任意字符串名
OCOD(A$)
任意 ZEMAX 优化操
作数的名字字符串
ONUM(A$)
任意字符串名
如果 object 序号为 0,那么将清除所有探
测器并且函数返回 0 值。如果 object 序号
小于 0,那么由 object 序号的绝对值所定
义的探测器将被清除且函数返回 0 值。
如果 object 序号所对应的是探测器矩形,
表面,或体积物体,那么将返回指定像素
的非相干强度数据。
关于 pixel 和 data 完整的讨论,见 481
页的“NSDD”。该 ZPL 函数支持与 NSDD
优化操作数同样的 pixel 和 data 参数。
如果 object 序号为 0,那么将清除所有探
测器并且函数返回 0 值。如果 object 序号
小于 0,那么由 object 序号的绝对值所定
义的探测器将被清除且函数返回 0 值。如
果 object 序号对应一个探测器颜色物体,
那么将返回指定像素的数据。
s 关于 pixel,angle 和 data 参数详细讨
论, 见 482 页的“NSDE”。
operand.该 ZPL 函数支持与 NSDE 优化操作
数一样的 pixel,angle 和 data 参数。
如果 object 序号为 0,那么将清除所有探
测器并且函数返回 0 值。如果 object 序号
小于 0,那么由 object 序号的绝对值所定
义的探测器将被清除且函数返回 0 值。如
果 object 序号对应一个探测器极坐标物
体,那么将返回指定像素的数据。
关于 pixel 和 data 参数详细讨论, 见 482
页的“NSDP”。该 ZPL 函数支持与 NSDP
优化操作数一样的 pixel 和 data 参数。
定义的表面个数
定义的波长个数
包含注释的物体。返回其注释与字符串
A$匹配的第一个非序列物体序号。这个比
较是不区分大小写的。如果没有非序列物
体有匹配的注释,则函数返回-1。
OPEV 函数使用的优化操作数代码。
如果字符串 A$是一个有效的优化操作数
名,如 EFFL,则 ONUM 返回这个操作数的
id 编号。关键字 SETOPERAND 可以用操作
数 id 编号来设定评价函数编辑界面中的
操作数类型。如果 A$不是操作数名,ONUM
返回 0。
5
@jackyrj
OPDC()
无
OPER(row, col)
评价函数编辑界面
中的行(操作数编
号)和列(数据类型)
OPEV(code, int1,
int2,
data1, data2,
data3,
data4)
OPEW(code, int1,
int2,
data1, data2,
data3,
data4, data5,
data6)
code 是优化操作数
代码(见函数
OCOD),并且
int1 到 int2,和
data1 到 data4 是被
该操作数所定义的
值。见 461 页的
“Optimization
operands”。
code 是优化操作数
代码(见函数
OCOD),并且
int1 到 int2,和
data1 到 data6 是被
该操作数所定义的
值。见 461 页的
“Optimization
operands”。
OPTH(x)
有效表面编号
PARM(n,s)
PIXX(A$)
有效的参数编号和
表面编号
包含 JPG 或 BMP 图像
文件完整地址的字
符串变量
6
光程差。仅在 RAYTRACE 被调用后才有效。
如果主光线不能被追迹,则 OPDC 不会返回
有效数据。RAYTRACEX 不支持 OPDC。
从评价函数编辑界面的任意行和列中获取
数据。行号与操作数编号一样;列号中 1
指操作数类型,2 指 int1,3 指 int2,4-7
指 data1-data4,8 指目标值,9 指权重,
10 指实际值,11 指贡献百分值,12-13 指
data5-data6。OPER 不会更新镜头数据或
评价函数,它返回当前值。也可参考 OPEV,
MFCN 和关键字 SETOPERAND。
计算任意优化操作数提供的值,并不需要
将该操作数加入评价函数。 这对于计算已
经可以通过优化操作数得到的数值是有效
的。例如,通过 EFFL 操作数计算 EFL 使用
下面代码:
C = OCOD("EFFL")
E = OPEV(C, 0, 1, 0, 0, 0, 0)
见 OPER, OCOD, MFCN 和关键字
SETOPERAND。
一些优化操作数,如 OPGT,仅当他们在有
另外的操作数环境下才有用。OPEV 将只对
那些不依赖先前操作数是否存在的操作数
有效。见下面的 OPEW。
该函数与 OPEV 十分相似,关键不同在于
OPEV 支持额外的参数。.一些优化操作数
使用至少 6 个 data 而不是 4 个 data。
沿着光线到指定表面的光程长度。与 RAYT
和 RAYO 不同,OPTH 考虑了由衍射引起的
相位变化,如光栅、全息、二元光学等。
仅在 RAYTRACE 被调用后才有效。如果主光
线不能被追迹,则 OPTH 不会返回有效数
据。RAYTRACEX 不支持 OPTH。
“s”表面的“n”参数
图像中 x 方向的像素个数。
@jackyrj
图像中 y 方向的像素个数。
包含 JPG 或 BMP 图像
文件完整地址的字
符串变量
无
x、y 为任意数字 计算 x 的绝对值的 y 次方。
无
无
无
无
无
如果近轴模式关闭则为 0,否则为 1
优化操作数 ZPLM 的 data1 参数。
优化操作数 ZPLM 的 data2 参数。
优化操作数 ZPLM 的 data3 参数。
优化操作数 ZPLM 的 data4 参数。
主波长编号。
表面的曲率半径。如果该表面有无穷大的
半径,RADI 返回 0。必须考虑这种可能性
以防止可能的除以 0 的错误。
光线截止点的 x 球形坐标,仅在 RAYTRACE
或 RAYTRACEX 被调用后才有效。
光线截止点的 y 球形坐标,仅在 RAYTRACE
或 RAYTRACEX 被调用后才有效。
光线截止点的 z 球形坐标,仅在 RAYTRACE
或 RAYTRACEX 被调用后才有效。
均匀分布在 0 和表达式值之间的随机浮点
值。
表面法线的 X 方向的余弦。仅在 RAYTRACE
或 RAYTRACEX 被调用后才有效。
表面法线的 Y 方向的余弦。仅在 RAYTRACE
或 RAYTRACEX 被调用后才有效。
表面法线的 Z 方向的余弦。仅在 RAYTRACE
或 RAYTRACEX 被调用后才有效。
光线追迹错误标记,没有错误则返回 0。
仅在 RAYTRACE 或 RAYTRACEX 被调用后才有
效。 详细见关键字 RAYTRACE。
通过表面后光线在 X 方向的余弦。仅在
RAYTRACE 或 RAYTRACEX 被调用后才有效。
通过表面后光线在 Y 方向的余弦。仅在
RAYTRACE 或 RAYTRACEX 被调用后才有效。
通过表面后光线在 Z 方向的余弦。仅在
RAYTRACE 或 RAYTRACEX 被调用后才有效。
从前一表面到指定表面光线的光程长度。
光程长度是长度乘以折射率,这两个数都
有可能是负数。仅在 RAYTRACE 被调用后才
有效。.对于在非序列表面内的光线,RAYO
返回光路长度乘以该光线经过的所有物体
的折射率的总和。仅在 RAYTRACE 或
RAYTRACEX 被调用后才有效。 见 OPTH 和
RAYT.
PIXY(A$)
PMOD()
POWR(x,y)
PVHX()
PVHY()
PVPX()
PVPY()
PWAV()
RADI(x)
有效表面编号
RAGX(x)
有效表面编号
RAGY(x)
有效表面编号
RAGZ(x)
有效表面编号
RAND(x)
正的数值表达式
RANX(x)
有效表面编号
RANY(x)
有效表面编号
RANZ(x)
有效表面编号
RAYE()
无
RAYL(x)
有效表面编号
RAYM(x)
有效表面编号
RAYN(x)
有效表面编号
RAYO(x)
有效表面编号
7
@jackyrj
从前一表面到指定表面光线的光路长度。
光路长度有可能是负数。仅在 RAYTRACE
或 RAYTRACEX 被调用后才有效。见 OPTH
和 RAYO。对于在非序列表面内的光线,
RAYT 返回经过的全部的光路长度的总和。
见 RAYO。
如果无渐晕则为 0,否则为渐晕面的编号。
仅在 RAYTRACE 或 RAYTRACEX 被调用后才有
效。
光线截止点的 X 坐标。仅在 RAYTRACE 或
RAYTRACEX 被调用后才有效。
光线截止点的 Y 坐标。仅在 RAYTRACE 或
RAYTRACEX 被调用后才有效。
光线截止点的 Z 坐标。仅在 RAYTRACE 或
RAYTRACEX 被调用后才有效。
指定视场位置的相对照度
表面上指定点的矢高,以透镜单位表示。
如果两个字符串相等,SCOM 返回 0;如果
A$小于 B$,SCOM 返回一个小于 0 的值;
否则返回一个大于 0 的值。
指定表面的半口径。
如果自变量小于 0 则返回-1,自变量是 0 则
返回 0,自变量大于 0 则返回+1
表达式的正弦值
在字符串 A$中字母的个数
返回关于指定表面和数据的求解类型的数
据。 如果 param 为 0,那么返回与求解类
型相对应的整数。如果 param 在 1 到 3 之
间,那么该数据为求解参数。如果 param
为 4,那么该数据为跟随列序号。更多关
于求解类型和求解参数意义的信息,见
447 页的“SOLVES”。
RAYT(x)
有效表面编号
RAYV()
无
RAYX(x)
有效表面编号
RAYY(x)
有效表面编号
RAYZ(x)
RELI(f)
SAGG(x,y,z)
有效表面编号
有效视场编号
x、y 是编号为 z 的
表面坐标,以透镜单
位表示
SCOM(A$, B$)
任意两个字符串名
SDIA(x)
SIGN(x)
SINE(x)
SLEN(A$)
SOLV(surf, code,
param)
有效表面编号
数字表达式
数值表达式(弧度表
示)
任意一个字符串变
量名
surf 是表面序号。
code 为 0 表示曲率,
1 表示厚度,2 表示
玻璃,3 表示圆锥系
数,5 表示热膨胀系
数 TCE。表示参数数
据时,code 为 100
加上参数序号。表示
附加数据时,code
为 300 加上附加数
据序号。Param 是在
1 和 4 之间的整数,
包括 1 和 4。
8