ZEMAX | 如何在ZPL中使用關(guān)鍵詞PLOT

概述


Zemax編程語(yǔ)言 (Zemax Programming Language, ZPL) 中的關(guān)鍵詞 PLOT 是一個(gè)功能強(qiáng)大且非常靈活的繪圖工具,它可以用來(lái)對(duì)復(fù)雜的數(shù)據(jù)組進(jìn)行繪圖,以更清晰的展示數(shù)據(jù)的特點(diǎn)。這篇文章展示了一些關(guān)于關(guān)鍵詞 PLOT 的使用示例


使用關(guān)鍵詞PLOT


關(guān)鍵詞PLOT可幫助您簡(jiǎn)單輕松的創(chuàng)建分析數(shù)據(jù)的2D圖表。該關(guān)鍵詞在進(jìn)行繪圖時(shí)支持對(duì)大量的參數(shù)進(jìn)行自定義設(shè)置,例如添加坐標(biāo)軸標(biāo)簽,控制刻度線位置等。

在 OpticStudio 的安裝目錄中,提供了一個(gè)使用關(guān)鍵詞 PLOT 進(jìn)行繪圖的 ZPL 宏示例 (PLOT_TEST.ZPL)。本文使用示例文件中的庫(kù)克三片鏡作為示例,該文件位于Zemax根目錄下的\Samples\Sequential\Objectives\(Cooke 40 degree field.zmx)。在這個(gè)示例宏文件中,使用關(guān)鍵詞 RAYTRACE、OPDC 和 OPTH 計(jì)算了軸上視場(chǎng)點(diǎn)發(fā)出的,不同光瞳坐標(biāo)位置光線的總光程 (OPL) 和光程差 (OPD)。這段宏程序的示例代碼如下所示:


! 該宏程序用來(lái)測(cè)試ZPL中的關(guān)鍵詞PLOT.
! 計(jì)算所使用的示例文件為40度庫(kù)克三片鏡系統(tǒng)
! 該文件位于\ZEMAX\Samples\Sequential\Objectives\ directory.
! Written by S. Gangadhara, 12/12/07
!
!定義系統(tǒng)的面數(shù)
n_surf = NSUR()

!定義用于計(jì)算的數(shù)組變量
DECLARE x1, DOUBLE, 1, 21 # 用于儲(chǔ)存OPD的變量
DECLARE y1, DOUBLE, 1, 21
DECLARE X2, DOUBLE, 1, n_surf # 用于儲(chǔ)存OPL的變量
DECLARE y2, DOUBLE, 1, n_surf

!使用關(guān)鍵詞RAYTRACE,OPDC,OPTH計(jì)算數(shù)組變量
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


提取分析數(shù)據(jù)


其中,變量 x1 和 y1 分別存儲(chǔ)了軸上視場(chǎng)點(diǎn)的光瞳坐標(biāo)和 OPD 數(shù)據(jù)。變量 x2 和 y2 分別存儲(chǔ)了軸上視場(chǎng)點(diǎn)的相關(guān)表面的編號(hào)和 OPL 數(shù)據(jù)??s放x2和y2的數(shù)據(jù)以使它們可以與 x1 和 y1 的圖像一起顯示。更多有關(guān) RAYTRACE 關(guān)鍵詞和OPDC、OPTH 的信息請(qǐng)參考 OpticStudio 幫助系統(tǒng)中的“About the ZPL”一節(jié)。


! 用PLOT關(guān)鍵詞顯示結(jié)果
title$ = "PLOT TEST WITH COOKE 40 DEGREE FIELD" # 圖表標(biāo)題
xtitle$ = "PUPIL COORDINATE / RELATIVE SURFACE NUMBER" # X軸標(biāo)簽
ytitle$ = "WAVES / LENGTH" # Y軸標(biāo)簽
banner$ = "RESULTS GENERATED USING PLOT_TEST.ZPL" # 圖標(biāo)上標(biāo)簽
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 曲線圖的標(biāo)簽
label2$ = "OPTICAL PATH LENGTH (OPL)" # OPL 曲線圖的標(biāo)簽
x_min = -2.0 # X-軸最小值
y_min = -2.0 # Y-軸最小值
x_max = 2.0 # X-軸最大值
y_max = 0.0 # Y-軸最大值
x_chk = 0.005 # 圖表標(biāo)注的X尺寸 (以顯示單位表示, 其中 1.0 為窗口的X軸全寬)
y_chk = 0.005 # 圖表標(biāo)注的Y尺寸 (以顯示單位表示)
x_tick = 0.5 # X軸刻度線距離 (以X軸單位表示)
y_tick = 0.4 # Y軸刻度線距離 (以Y軸單位表示)
x_form$ = "%4.2f" # X軸數(shù)字的字符串格式
y_form$ = "%4.2f" # Y軸數(shù)字的字符串格式
xl1 = 0.1 # 第1行的X軸起始位置 (以顯示單位表示)
yl1 = 0.6 # 第1行的Y軸起始位置 (以顯示單位表示)
xl2 = 0.8 # 第1行的X軸結(jié)束位置 (以顯示單位表示)
yl2 = 0.6 # 第1行的Y軸結(jié)束位置 (以顯示單位表示)
xl3 = 0.45 # 第2行的X軸起始位置 (以顯示單位表示)
yl3 = 0.3 # 第2行的Y軸起始位置 (以顯示單位表示)
xl4 = 0.45 # 第2行的X軸結(jié)束位置 (以顯示單位表示)
yl4 = 0.9 # 第2行的Y軸結(jié)束位置 (以顯示單位表示)
xlb1 = 0.15 # 標(biāo)簽1的X軸起始位置 (以顯示單位表示)
xlb2 = 0.30 # 標(biāo)簽2的X軸起始位置 (以顯示單位表示)
ylb1 = 0.65 # 標(biāo)簽1的Y軸起始位置 (以顯示單位表示)
ylb2 = 0.35 # 標(biāo)簽2的Y軸起始位置 (以顯示單位表示)
ang1 = 0 # 標(biāo)簽1沿X正向的傾斜角度 (以度表示)
ang2 = 15 # 標(biāo)簽2沿X軸正向的傾斜角度 (以度表示)
scl = 1 # 標(biāo)簽的縮放因子


初始化圖表參數(shù)


PLOT NEW # 初始化圖表
PLOT TITLE, title$ # 放置圖表的標(biāo)題
PLOT TITLEX, xtitle$ # 放置圖表標(biāo)題的X軸位置
PLOT TITLEY, ytitle$ # 放置圖表標(biāo)題的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 # 定義圖表標(biāo)志的尺寸
PLOT TICK, x_tick, y_tick # 定義X軸和Y軸刻度線的距離
PLOT FORMATX, x_form$ # 定義X軸數(shù)字的格式
PLOT FORMATY, y_form$ # 定義X軸數(shù)字的格式
PLOT DATA, x1, y1, 21, 1, 1, 1 # 使用數(shù)組中的所有點(diǎn)在圖表中繪制OPD數(shù)據(jù), 使用顏色1 (藍(lán)色), 設(shè)置曲線的虛線類型為1, 同時(shí)繪制曲線和標(biāo)志
PLOT DATA, x2, y2, n_surf, 3, 2, 0 # 使用數(shù)組中的所有點(diǎn)在圖表中繪制OPL數(shù)據(jù), 使用顏色3 (紅色), 設(shè)置曲線的虛線類型為2, 同時(shí)繪制曲線和標(biāo)志
PLOT LINE, xl1, yl1, xl2, yl2 # 繪制橫線 (line 1)
PLOT LINE, xl3, yl3, xl4, yl4 # 繪制豎線 (line 2)
PLOT LABEL, xlb1, ylb1, ang1, scl, label1$ # 在圖表中放置標(biāo)簽1 (OPD曲線)
PLOT LABEL, xlb2, ylb2, ang2, scl, label2$ # 在圖表中放置標(biāo)簽2 (OPL曲線)
PLOT GO # 產(chǎn)生圖表

! 釋放數(shù)組變量的內(nèi)存
RELEASE x1
RELEASE y1
RELEASE x2
RELEASE y2

! 結(jié)束程序
PRINT "End of program."

END


繪制自定義圖表



使用關(guān)鍵詞PLOT


ZPL 中關(guān)鍵詞 PLOT 具有強(qiáng)大而又靈活的繪圖功能,它給 OpticStudio 用戶提供了更多的展現(xiàn)數(shù)據(jù)的方法。