ZEMAX產品使用技巧教程:如何編寫ZPL宏——計算環帶垂軸色差

簡介假設我們要計算系統的環帶垂軸色差 (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

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP