首页/文章/ 详情

如何在ZPL中使用关键词PLOT

1年前浏览614

本周为大家带来的是

如何在ZPL中使用关键词PLOT

 

概述

 

Zemax编程语言 (Zemax Programming Language, ZPL) 中的关键词PLOT是一个功能强大且非常灵活的绘图工具,它可以用来对复杂的数据组进行绘图,以更清晰的展示数据的特点。这篇文章展示了一些关于关键词PLOT的使用示例。

 

使用关键词PLOT

 

关键词PLOT可帮助您简单轻松的创建分析数据的2D图表。该关键词在进行绘图时支持对大量的参数进行自定义设置,例如添加坐标轴标签,控制刻度线位置等。

在OpticStudio的安装目录中,提供了一个使用关键词PLOT进行绘图的ZPL宏示例 (PLOT_TEST.ZPL)。本文使用示例文件中的库克三片镜作为示例,该文件位于Zemax根目录下的\Samples\Sequential\Objectives\(Cooke 40 degree field.zmx)。在这个示例宏文件中,使用关键词RAYTRACEOPDCOPTH计算了轴上视场点发出的,不同光瞳坐标位置光线的总光程 (OPL) 和光程差 (OPD)。这段宏程序的示例代码如下所示:

! 该宏程序用来测试ZPL中的关键词PLOT.
! 计算所使用的示例文件为40度库克三片镜系统
! 该文件位于\ZEMAX\Samples\Sequential\Objectives\ directory.
! Written by S. Gangadhara, 12/12/07
!
!定义系统的面数

n_surf = NSUR()

!定义用于计算的数组变量
DECLARE x1, DOUBLE, 1, 21    # 用于储存OPD的变量
DECLARE y1, DOUBLE, 1, 21
DECLARE X2, DOUBLE, 1, n_surf    # 用于储存OPL的变量

DECLARE y2, DOUBLE, 1, n_surf

!使用关键词RAYTRACE,OPDC,OPTH计算数组变量
FOR i, 1, 21, 1
    x1(i) = 0.1*i-1.1
    RAYTRACE 0, 0, 0, 0.1*i-1.1, 1
    y1(i) = OPDC()
NEXT i

FOR i, 1, n_surf, 1
    x2(i) = (i - 3.0)/2.0
    RAYTRACE 0, 0, 0, 0.1*i-1.1, 1
    y2(i) = OPTH(i)/50. - 2.0
NEXT i


提取分析数据


其中,变量x1和y1分别存储了轴上视场点的光瞳坐标和OPD数据。变量x2和y2分别存储了轴上视场点的相关表面的编号和OPL数据。缩放x2和y2的数据以使它们可以与x1和y1的图像一起显示。更多有关RAYTRACE关键词和OPDCOPTH的信息请参考OpticStudio帮助系统中的“About the ZPL”一节。

! 用PLOT关键词显示结果
title$ = "PLOT TEST WITH COOKE 40 DEGREE FIELD"    # 图表标题
xtitle$ = "PUPIL COORDINATE / RELATIVE SURFACE NUMBER"    # X轴标签
ytitle$ = "WAVES / LENGTH"    # Y轴标签
banner$ = "RESULTS GENERATED USING PLOT_TEST.ZPL"    # 图标上标签
comment1$ = "DATA FOR OPD ARE EXACT"    # 图表注释行1
comment2$ = "DATA FOR OPTICAL PATH LENGTH (OPL) ARE NORMALIZED"    # 图表注释行2
comment3$ = "X-AXIS FOR OPL DATA IS 0.5*(SURFACE NUMBER - 2)"    # 图表注释行3
comment4$ = "Y-AXIS FOR OPL DATA IS LENGTH/50 - 2"    # 图表注释行 4
comment5$ = "NORMALIZATION OF THE OPL DATA WAS PERFORMED SO THAT IT"    # 图表注释行 5
comment6$ = "  COULD BE PLOTTED ON THE SAME GRAPH AS THE OPD DATA"    # 图表注释行 6
label1$ = "OPD FOR ON-AXIS FIELD POINT"    # OPD 曲线图的标签
label2$ = "OPTICAL PATH LENGTH (OPL)"    # OPL 曲线图的标签
x_min = -2.0    # X-轴最小值
y_min = -2.0    # Y-轴最小值
x_max = 2.0    # X-轴最大值
y_max = 0.0    # Y-轴最大值 
x_chk = 0.005    # 图表标注的X尺寸 (以显示单位表示, 其中 1.0 为窗口的X轴全宽)
y_chk = 0.005    # 图表标注的Y尺寸 (以显示单位表示)
x_tick = 0.5    # X轴刻度线距离 (以X轴单位表示)
y_tick = 0.4    # Y轴刻度线距离 (以Y轴单位表示)
x_form$ = "%4.2f"    # X轴数字的字符串格式
y_form$ = "%4.2f"    # Y轴数字的字符串格式
xl1 = 0.1    # 第1行的X轴起始位置 (以显示单位表示)

yl1 = 0.6    # 第1行的Y轴起始位置 (以显示单位表示)
xl2 = 0.8    # 第1行的X轴结束位置 (以显示单位表示)
yl2 = 0.6    # 第1行的Y轴结束位置 (以显示单位表示)
xl3 = 0.45    # 第2行的X轴起始位置 (以显示单位表示)
yl3 = 0.3     # 第2行的Y轴起始位置 (以显示单位表示)
xl4 = 0.45    # 第2行的X轴结束位置 (以显示单位表示)
yl4 = 0.9    # 第2行的Y轴结束位置 (以显示单位表示)
xlb1 = 0.15    # 标签1的X轴起始位置 (以显示单位表示)
xlb2 = 0.30    # 标签2的X轴起始位置 (以显示单位表示)
ylb1 = 0.65    # 标签1的Y轴起始位置 (以显示单位表示)

ylb2 = 0.35    # 标签2的Y轴起始位置 (以显示单位表示)
ang1 = 0    # 标签1沿X正向的倾斜角度 (以度表示)
ang2 = 15    # 标签2沿X轴正向的倾斜角度 (以度表示)
scl = 1    # 标签的缩放因子


初始化图表参数

PLOT NEW    # 初始化图表
PLOT TITLE, title$    # 放置图表的标题
PLOT TITLEX, xtitle$    # 放置图表标题的X轴位置
PLOT TITLEY, ytitle$    # 放置图表标题的Y轴位置
PLOT BANNER, banner$    # 放置图表横幅
PLOT COMM1, comment1$    # 放置图表的注释1
PLOT COMM2, comment2$    # 放置图表的注释2
PLOT COMM3, comment3$    # 放置图表的注释3
PLOT COMM4, comment4$    # 放置图表的注释4
PLOT COMM5, comment5$    # 放置图表的注释5
PLOT COMM6, comment6$    # 放置图表的注释6
PLOT RANGEX, x_min, x_max    # 定义图表的X轴范围
PLOT RANGEY, y_min, y_max    # 定义图表的Y轴范围
PLOT CHECK, x_chk, y_chk    # 定义图表标志的尺寸
PLOT TICK, x_tick, y_tick    # 定义X轴和Y轴刻度线的距离
PLOT FORMATX, x_form$    # 定义X轴数字的格式
PLOT FORMATY, y_form$    # 定义X轴数字的格式
PLOT DATA, x1, y1, 21, 1, 1, 1    # 使用数组中的所有点在图表中绘制OPD数据, 使用颜色1 (蓝色), 设置曲线的虚线类型为1, 同时绘制曲线和标志
PLOT DATA, x2, y2, n_surf, 3, 2, 0     # 使用数组中的所有点在图表中绘制OPL数据, 使用颜色3 (红色), 设置曲线的虚线类型为2, 同时绘制曲线和标志
PLOT LINE, xl1, yl1, xl2, yl2    # 绘制横线 (line 1)
PLOT LINE, xl3, yl3, xl4, yl4    # 绘制竖线 (line 2)
PLOT LABEL, xlb1, ylb1, ang1, scl, label1$    # 在图表中放置标签1 (OPD曲线)
PLOT LABEL, xlb2, ylb2, ang2, scl, label2$    # 在图表中放置标签2 (OPL曲线)
PLOT GO    # 产生图表

! 释放数组变量的内存
RELEASE x1
RELEASE y1
RELEASE x2
RELEASE y2

! 结束程序
PRINT "End of program."

END

绘制自定义图表

在ZPL的第一个部分中,定义了大量的绘图选项设置,例如图表的标题(title$),坐标轴的标签(xtitle$和ytitle$),坐标轴的范围(x_mix,y_min,x_max,y_max)等等。随后,使用大量的PLOT关键词在同样的标题、坐标轴标签和坐标轴范围下绘制多条曲线数据。ZPL宏中的每个关键词PLOT的详细含义(为了展示的目的本文不对这些关键词进行详述)请参考OpticStudio帮助系统中的“About the ZPL”一节。最终的分析图表如下图所示:

 
 

小结

 

ZPL中关键词PLOT具有强大而又灵活的绘图功能,它给OpticStudio用户提供了更多的展现数据的方法。

 

本周有关使用ZPL的关键词PLOT绘制自定义图表的内容就和大家分享到这里啦,希望本文对您的工作有所帮助!


来源:武汉宇熠
ACTSolidWorksUM控制Zemax
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-05-27
最近编辑:1年前
武汉宇熠
光机电领域优秀供应商
获赞 340粉丝 234文章 846课程 9
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈