当前位置:服务支持 >  软件文章 >  ZEMAX教程:编写ZPL宏计算环带垂轴色差

ZEMAX教程:编写ZPL宏计算环带垂轴色差

阅读数 5
点赞 0
article_banner
简介假设我们要计算系统的环带垂轴色差 (ZTCA)。ZTCA作为光瞳区域的函数,定义为两个波长在像平面上的光线高度差ZTCA = YF - YC基本算法如下:
  • 定义步进式光瞳区域

  • 对应追迹每个波长的边缘光线

  • 减去y坐标

  • 输出结果

我们建议在编写ZPL宏时将采用以下编程规范,使宏更易于阅读:
  • 将所有变量写成小写形式

  • 将所有ZPL函数和关键字写成大写形式

  • 对IF和FOR循环采用文本缩进

  • 赋予变量有意义的名称 (例如 ray_angle  而不是 a)

  • 使用描述性注释(例如使用  ! 或 #)

为了使宏更易于阅读,OpticStudio具有内置的文本编辑器,将语法突出显示:ZEMAX产品使用技巧教程:如何编写ZPL宏——计算环带垂轴色差的图1初版宏的编写对于此示例,我们将使用示例文件<Documents>\Zemax\Samples\Sequential\Objectives\ Doublet.zmx。将此文件加载到OpticStudio中,然后单击“编程“ (Programming)...新建宏 ( New Macro)”:ZEMAX产品使用技巧教程:如何编写ZPL宏——计算环带垂轴色差的图2输入以下代码,以根据之前描述的算法流程来计算环带垂轴色差 (ZTCA) :ZEMAX产品使用技巧教程:如何编写ZPL宏——计算环带垂轴色差的图3使用功能区上的第二个按钮将宏另存至<Documents>\Zemax\Macros folder,命名为“ZTCA1.zpl“。ZEMAX产品使用技巧教程:如何编写ZPL宏——计算环带垂轴色差的图4然后,从“编程 (The Programming tab) ”选项卡中,从“宏列表 (Macro List) ”下拉菜单中选择已保存的宏,或者从“编辑/运行 (Edit/Run) ”中选择它,然后单击“运行 (Run) ”。ZEMAX产品使用技巧教程:如何编写ZPL宏——计算环带垂轴色差的图5运行宏时,将出现一个新的文本窗口,其中包含宏的输出。在本示例中,输出结果为环带垂轴色差ZTCA,作为光瞳区域的函数:ZEMAX产品使用技巧教程:如何编写ZPL宏——计算环带垂轴色差的图6请注意,此宏文件需要基于许多假设,确保宏能够正常运行:
  • 边界波长是 1 和 3

  • 步进数为 10

  • 它仅计算轴上视场的环带垂轴色差ZTCA

  • 无错误检查功能

    • 如果只有一个波长怎么办?

让我们改进宏,使其可以与其他文件一起使用。通用宏的编写用户自定义的步进数我们可以使用 INPUT 关键字提示用户输入步进数,而不是使用固定值 10。在宏的开头,删除赋值“numsteps = 10”并按如下方式使用 INPUT :ZEMAX产品使用技巧教程:如何编写ZPL宏——计算环带垂轴色差的图7运行宏时,“ ZPL宏输入 (ZPL Macro Input) ”窗口将出现:ZEMAX产品使用技巧教程:如何编写ZPL宏——计算环带垂轴色差的图8IF 语句通过函数 INTE() 测试numsteps是否为正整数,该函数将会对数值进行四舍五入。GOTO 命令OpticStudio使用指定的LABEL命令将程序跳至某一行(向前或向后)。在这种情况下,我们使其跳到程序的结尾:ZEMAX产品使用技巧教程:如何编写ZPL宏——计算环带垂轴色差的图9尽管 END 在使用子例程时才被严格要求,但是使用它来指示宏的执行在何处终止是一个良好的编程习惯。适应不同的波长接下来,我们可以要求宏确定临界波长(最小和最大),并将其用于光线追迹中。如果文件中仅定义了一个波长,我们也可以要求宏返回错误消息:ZEMAX产品使用技巧教程:如何编写ZPL宏——计算环带垂轴色差的图10现在,用于光线追迹的波长是minwav和maxwav,因此在 FOR 循环中,将行:RAYTRACE 0, 0, 0, py, 1RAYTRACE 0, 0, 0, py, 3用以下两行替换:RAYTRACE 0, 0, 0, py, minwavRAYTRACE 0, 0, 0, py, maxwav错误检查最后,我们可以使用 RAYE() 检查光线追迹期间的错误。 因此,代码变为:ZEMAX产品使用技巧教程:如何编写ZPL宏——计算环带垂轴色差的图11将宏另存为ZTCA2.ZPL并测试代码正确性,确保您测试了每种错误情况:
  • 用户定义的步进 < 1 或非整数

  • 仅1个波长

  • 光线错误

以下是20个光瞳区域的宏输出:ZEMAX产品使用技巧教程:如何编写ZPL宏——计算环带垂轴色差的图12绘制数据除了输出数据外,我们还可以使用 PLOT 或 PLOT2D 关键字来绘制数据。 PLOT 支持一个自变量和一个因变量,而 PLOT2D 支持两个自变量和一个因变量。这两个关键字都允许用户充分控制绘图格式,例如:
  • 标题,坐标轴图例

  • X,Y 轴刻度

  • 注释

  • 数据点和拟合线:颜色、样式、大小

  • 窗口纵横比

为了能够绘制数据,首先需要声明两个数组变量:一个用于光瞳坐标,一个用于环带垂轴色差ZTCA。在用户输入和错误检查代码之后添加数组声明:DECLARE pupil, double, 1, (numsteps + 1)DECLARE ztca, double, 1, (numsteps + 1)然后,在主循环内,您需要将值存储在先前声明的数组中,而不是将其输出到屏幕上。 这意味着将此行:PRINT "Pupil zone = ", py, " ZTCA = ", yf-yc用下两行替换:pupil(i+1) = pyztca(i+1) = yf-yc最后,在主循环之后添加代码以创建绘图:PLOT NEWPLOT BANNER, "ZTCA vs Py"PLOT TITLE, "Zonal Transverse Chromatic Aberration"PLOT TITLEX, "Normalized Pupil Coordinate (Py)"PLOT TITLEY, "ZTCA (mm)"PLOT RANGEX, 0, 1PLOT RANGEY, -0.005, 0.005PLOT DATA, pupil, ztca, (numsteps + 1), 1, 2, 0PLOT GOPLOT DATA 用于定义要绘制的一系列数据点。它需要以下参数:
  • x_array, y_array, #points, color, style, options

在本例程中颜色 1 = 蓝色 (Color 1 = blue), 样式 2 = 虚线 (style 2 = dashed), 可选项 0 = 无数据点标记 (option 0 = no data point markers)。PLOT 语法的完整说明可以在帮助文件部分的编程选项卡 (The Programming Tab) > 关于ZPL (About the ZPL) > 关键字(关于zpl) (KEYWORDS (about the zpl) ) > 绘图 (PLOT) 中进行了描述。现在将宏另存为ZTCA3.zpl并运行它。 该宏将产生以下绘图:ZEMAX产品使用技巧教程:如何编写ZPL宏——计算环带垂轴色差的图13

Ansys Zemax国内可靠代理商



  光研科技南京有限公司是国内可靠的光学软件和仪器光电供应商,提供企业定制化上门培训服务,承接各类光学设计项目,并有一系列自主编写出版的光学设计书籍。公司拥有一支高素质、高水平、实战经验丰富的管理,销售以及研发团队,从成立到现在已经为广大企业,研究所以及高校提供了很多优秀的产品和服务,是光电圈内值得信赖的企业。追光逐梦,研以致用!以用户的需求为起点,为客户提供有价值的光学产品和服务一直都是光研科技南京有限公司的宗旨。



  AnsysZemax光学软件咨询与订购联系方式

       联系人:南京光研   徐保平

  手机号:15051861513

  微信号:13627124798


       您也可以扫一扫下面的二维码直接咨询


ZEMAX产品使用技巧教程:如何编写ZPL宏——计算环带垂轴色差的图14


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空