什么是ZPL宏?

概述

这篇文章介绍了什么是ZPL宏 (Zemax Programming Language),ZPL可以用来实现什么功能以及ZPL中函数 (Functions) 与关键词 (Keywords) 的区别。

ZPL宏简介

Zemax编程语言 (ZPL) 允许用户在OpticStudio中编写自己的程序。这些程序可以实现:

• 自动重复键盘和鼠标的操作

• 基于OpticStudio的数据进行计算

• 以图表或表格的形式生成数据

• 还有很多很多其它的功能……:)

创建一个ZPL宏程序是非常简单的。我们的目标是为光学工程师提供一个可以快速上手的简单易用的编程工具,即便光学工程师可能并没有太多的编程经验。 (OpticStudio还支持进行扩展编程,这是一个API级别的接口,它可以允许外部程序调用OpticStudio的分析工具,例如使用Matlab。)

需要注意的是:这篇文章无法代替用户手册中关于Zemax Programming Language章节的要点。如果您刚开始接触ZPL,我们强烈建议您阅读用户手册中的“About the ZPL”一章。

ZPL包含五个基本概念:变量 (variables)、运算符 (operations)、函数 (functions)、关键词 (keywords) 和备注 (comments)。 变量可以是数值 (numeric) 或字符串 (string),并且您可以定义矩阵变量。例如,下面这段代码相当于ZPL宏中经典的“hello world”:

变量a分配的数值为1,变量b分配的数值为2,我们使用运算符“+”将这两个变量加在一起。ZPL支持所有的数学、字符串和逻辑运算。 函数用来调取在OpticStudio中已编译好的算法,它用来返回一个特定的数值。例如:

它将调用已经编译好的光线耦合效率算法,并将计算结果储存在变量coupling中。FICL()所调用的算法和您在OpticStudio用户界面中的分析 (Analysis) 选项卡/光线耦合 (Fiber Coupling)/单模光纤耦合 (Single Mode Coupling) 工具调用的算法是相同的。 并且函数的执行速度和OpticStudio内置函数的速度相同,因为ZPL函数调用的就是OpticStudio的内置函数本身。OpticStudio支持非常多种函数种类,并且任意一个优化操作数都可以在ZPL中直接调用。

关键词是已经编译好的例程,它可以用来执行程序循环,或用来执行一些重要的任务,例如运行光线追迹或调整透镜参数等。例如,如果想要告诉OpticStudio对透镜文件进行10圈优化,您可以使用如下关键词:

同样的,执行这段ZPL宏和您在执行优化时点击10圈优化的效果是相同的。关键词可以执行OpticStudio中很多类型的计算,例如光线追迹和物理光学计算等,同样关键词也可以用来执行例如FOR…NEXT和IF…THEN…ELSE…ENDIF这类循环和条件判断语句。
最后,您可以使用备注来标注ZPL宏是如何工作的。任何以“!”为起始的行或任何“#”后输入的字符都将作为备注,这些内容将在执行ZPL宏时被忽略。
ZPL类似于一个脚本将这几个组成部分包在一起。作为演示,想像您需要优化一个镜头,计算镜头的优化函数值,并将该值乘以5的对数。则相应的ZPL即如下所示:

您可以查阅用户手册的相关章节获取每个函数和关键词的语法和详细信息。你需要清楚的是这些都是已经编译好的函数。 每一次ZPL函数调用一个函数或关键词时,它都在调用一个已经编译好的指令。ZPL调用的函数和您在软件用户界面中点击相同功能的分析工具所调用的函数是相同的, 并且ZPL调用函数进行计算不会产生额外的分析时间。
执行ZPL宏的速度非常快,并且ZPL是非常容易学习和使用的语言。我们将发布更多技术文章带您了解Zemax编程语言的强大之处。