如何利用ZPL自动化键盘和鼠标操作_光学漫谈_百度空间
介绍

ZPL非常广泛,它{zd0}的优势是自动化枯燥或重复性的工作。例如,假定你要看一个复杂光学系统中,发光分布随一个或者多个元件倾角的关系。一些非序列光线追迹需要好几个小时来完成,这需要大量的时间来评估。没有ZPL,你不得不开始最初的光线追迹,等待它完成,保存数据,改变感兴趣元件倾角,再跑光线追迹程序,重复该元件每个倾角增量的过程。
有了ZPL,你可以跑宏,让你的电脑把整个过程计算完。为了演示,我们定性观察Twyman-Green干涉仪的条纹图和测试面倾角的函数关系。宏语言将用于自动调节测试面倾角的调节过程,光线追迹,和条纹图保存为图元文件便于后分析。

Fringe Patterns of the Twyman Green Interferometer 

这个动画是如何产生的?  请点击 .

文件概述和ZPL对话框打开

从打开例程文件“Twyman-Green_2.ZMX”开始(你可以从本文{zh1}一页下载)。注意:这个程序和ZEMAX> Samples>Non-Sequential>Ray Splitting文件夹下Twyman-Green.ZMX例程略有区别。

文件目前的状态是,测试面(Object 4)是xx校正的,得到的屏幕上的条纹图表示仅仅有球差。在这个演示中我们将看到,在我们轻微倾斜测试面时,探测屏上的是如何变化的。我们将通过在ZEMAX中构建一个简单的宏来自动化这个过程。
Fringes on Detector Viewer

宏可以使用任何ASCII文本编辑器产生/编辑(例如NOTEPAD 编辑器)。有时候,从一个和你想完成的任务相近的宏开始,可能是最简单的方式。这样的话,你可以简单的在已有的宏上作必要的修改,以别的名称保存,而不必写全部的宏。

你可以从ZEMAX主菜单选择“Macros > Edit/Run ZPL macros…”,或者按F9。之后会弹出ZEMAX Programming Language 对话框,其中有ZEMAX > Macros文件夹下所有宏的列表。你可以选择已有的宏并执行它,或者你可以选择通过“Edit” 按钮去编辑它:选择 “Edit” 将在NOTEPAD中打开选择的宏。你可以编辑想要的文本,或者你可以删除全部宏,从一个新的屏幕开始。对于目前的演示,我们将开始一个全新的文本编辑器。在本文接下的几页里我们将使用文本编辑软件 。

书写并评价Twyman Green宏的每一行

在Twyman-Green干涉仪的例子中,一些选定的函数和关键字被用于自动化测试板的倾斜并讲条纹图保存为单独的文件。将如下文本敲入你的文本编辑器(或者你可以使用本文后已有的宏)。虽然ZEMAX宏语言不区分大小写,大写函数和关键字以帮助区分宏逻辑仍然是好习惯。EditPlus 2可以将代码的函数(蓝色),关键字(红黄)和字符串颜色显示......这使得宏更容易编写和读懂。
Writing the macro
为了更好的理解此宏的功能,我们一行一行的回顾宏逻辑(行数每行的左边用灰色字体标出):

LINE DESCRIPTION 
10 本行的宏定义了一个FOR循环,这使得开始的一组代码多次执行。开始值是{zh1}一个面关于X的初始倾斜(0度),结束值是循环的结束值(0.1度)。为了简化,我们只执行{zh1}一个面5个不同的倾角,因此增量是0.025度。
11 这里开始了FOR循环中首次声明的执行。这里关键字SETNSCPOSITION被用于设置测试目标的x倾斜(关于X参数的倾斜). 注意该值被设为由变量x代表。
 12 在每次新的光线追迹之前,首先将探测器上的信息清零很重要。第12行宏命令调用NSDD(surf, object, pixel, data)函数。如果object数是0,所有的探测器被清零且函数返回0.
 13 非序列光线追迹由关键字NSTR实现。注意,光线分解,偏振和误差忽略都由整数1标记。这等效于在Ray Trace/Detector Control对话框中勾选各自的复选框。
 14 UPDATE 3更新3号窗口,即Twyman-Green_2.ZMX文件中的探测观察器(Detector Viewer)。此窗需要更新以反映每个循环新的光线追迹结果。
 15, 16, & 17 这些行被用于定义每个循环执行后被保存文件的路径和文件名。字符串可以相加(如Line 17)来产生单个字符串实体。字符串函数$STR(x)将x的值转化为字符串。这样的话,每个文件会保存为以倾角值表示的不同名称。注意,路径(由词头$表示)可以改成任何你想要的路径。上述路径仅为演示之目的。
 18 关键字EXPORTWMF将任何图像窗口导出为图元文件。此关键字需要文件名在文件名参数中有指定的扩展名(.WMF)。文件名参数由filename$ 字符串表示,如第15到17行所定义。
 19 关键字NEXT标志着组语句结束。
 20 一旦FOR循环执行了定义的次数,PRINT 语句用来表示宏完成。
 21 关键字END结束该宏。
宏执行和结果评估

一旦宏被构建,你可以以任何文件名来保存宏。但是宏的扩展名必须是.ZPL。对于目前的例子合适的文件名是“Twyman-Green.ZPL”。
注意,ZPL宏必须保存在文件夹或者子文件夹便于它们被ZEMAX调用。或者可以在File > Preferences > Directories下设置宏的默认文件夹。将目前的宏以需要的文件名保存在合适的文件夹下。
宏可以两种方式之一执行。你若从ZEMAX主菜单中选择“Macros”,所有可用的宏被以字母顺序列于下拉菜单中。如果你的宏没有出现在列表中,试着通过选择“Refresh Macro List”来刷新宏列表。

Launching ZPL macros

如果刷新后宏还没有出现在该列表中,请再次检查你最近生成宏的目录和文件名。
如果你从该列表中选择宏,ZEMAX会自动执行该宏。或者,如同之前描述,你可以选择“Edit/Run ZPL Macros”来xxZEMAX Programming Language 对话框。 一旦选择了想要的宏,你可以通过对话框底部可用的按钮来执行或编辑该宏。

ZPL dialog

从ZEMAX里面执行Twyman Green宏。注意,该宏可能需要几分钟去完成非序列光线追迹。但问题在于,ZEMAX可以更大规模的替你完成重复的工作,让你去做更有意义的事情。
宏完成之后,查看文件保存的目录,产生了总共5个图元文件。每幅图像可以用于定性分析,在Twyman Green干涉仪中,干涉条纹是如何被测试面的倾斜影响的。
除了测试面倾角为0的情况,5个文件里面的4个展示如下:

Four of the five files are shown below, excluding the nominal case in which the tilt of the test plate was zero.

 Tilt About X by .025 Degrees  Tilt About X by 0.05 Degrees
 TG - Tilt About X By_0.0250DEG.WMF  TG - Tilt About X By_0.0500DEG.WMF
 Tilt About X by 0.075 Degrees  Tilt About X by 0.1 Degrees
 TG - Tilt About X By_0.0750DEG.WMF  TG - Tilt About X By_0.1000DEG.WMF
总结和参考

ZEMAX编程语言为ZEMAX提供了很好的用户扩展。ZPL宏可用于处理任意多次工作,且在自动化一系列估值方面非常有用。ZPL的一些基本东西罗列如下:

  • 这些ZPL功能可分为2个部分:函数和关键字。函数能用于赋值的右边,且返回一个值或者字符串。关键字用于直接编程流,能被用于设置透镜描述的值.
  • 宏必须保存为合适的文件名,且需以.ZPL为扩展名.
  • 宏需要被保存在ZEMAX>Macros 文件夹下,以便于能从ZEMAX里调用.

References
ZEMAX Optical Design Program User's Guide, ZEMAX Development Corporation



郑重声明:资讯 【如何利用ZPL自动化键盘和鼠标操作_光学漫谈_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——