ZEMAX | 如何在布局圖中顯示光瞳

本周想和大家分享一個(gè)實(shí)用小技巧

如何在布局圖中顯示光瞳



概述


在 OpticStudio 的序列模式中,您可以在不影響其他面的情況下使用虛擬面 (dummy surface) 和求解類型:拾取 (pickup) 在透鏡數(shù)據(jù)編輯器 (LDE) 及布局圖 (Layout) 中顯示系統(tǒng)的入瞳和出瞳。這篇文章介紹了如何在透鏡數(shù)據(jù)編輯器中使用 ZPL 宏和主光線高度 (Chief Ray Height) 求解厚度,以及如何在編輯器中隱藏虛擬面。本文使用的示例文件請(qǐng)從以下鏈接下載:


https://customers.zemax.com/ZMXLLC/media/Knowledge-Base/Attachments/12108_Double-Gauss-28-degree-field_pupils.zip


概述


為了在透鏡數(shù)據(jù)編輯器和布局圖中顯示入瞳和出瞳面,我們需要在透鏡編輯器中插入虛擬面來(lái)模擬光瞳的位置。本文使用 OpticStudio 自帶的 Double Gauss 28 degree field.ZMX 文件作為示例,該文件位于 Zemax 根目錄下 Samples > Sequential > Objectives 文件夾中。對(duì)于序列系統(tǒng),您可以在分析 (Analyze) 選項(xiàng)卡 > 報(bào)告 (Report) > 詳細(xì)數(shù)據(jù) (Prescription Data) 的報(bào)告中查看系統(tǒng)光瞳的數(shù)據(jù)。



對(duì)于本系統(tǒng)來(lái)說(shuō),光瞳數(shù)據(jù)如下所示:



在 OpticStudio 中,入瞳位置總是參考于表面1,出瞳位置總是參考于像面的。為了減少對(duì)系統(tǒng)的改變,我們需要現(xiàn)在第一片透鏡前及像面前分別插入一個(gè)虛擬面。

根據(jù)光瞳的定義,光瞳的位置位于主光線與光軸的交點(diǎn)處,或者為主光線高度為0的地方。OpticStudio 內(nèi)置了便捷的厚度求解功能,該功能可以快速求解特定表面的厚度以滿足近軸主光線在該表面處的高度為零。需要特別注意的是,這個(gè)求解類型與其他求解類型一樣,需要設(shè)置在光闌面 (STOP) 之后。因此我們只能使用厚度求解計(jì)算出瞳位置。對(duì)于入瞳位置,我們可以使用 ZPL 宏求解進(jìn)行計(jì)算。OpticStudio 內(nèi)置的求解類型:光瞳位置 (Pupil Position) 使用實(shí)際傍軸光線進(jìn)行計(jì)算而非近軸光線,因此可以用于離軸系統(tǒng)或使用近軸光線無(wú)法準(zhǔn)確計(jì)算光瞳位置的系統(tǒng)。但在這篇文章中,我們采用主光線高度的計(jì)算方法,因?yàn)榻S光線(計(jì)算迭代周期更少)和實(shí)際光線(計(jì)算穩(wěn)定性更強(qiáng))的計(jì)算結(jié)果偏差很小,在六位小數(shù)點(diǎn)精度之內(nèi)。

在開始設(shè)置之前,我們需要插入四個(gè)虛擬面,其中兩個(gè)面在表面1之前,兩個(gè)在像面之前。本文將以 D1-D4 表示這些表面:



在開始實(shí)際計(jì)算之前,我們首先需要對(duì)這些表面進(jìn)行設(shè)置。分別設(shè)置 D2 和 D4 表面厚度的求解類型為拾取,使其分別拾取 D1 和 D3 的厚度,并設(shè)置縮放比例為-1。完成后您將會(huì)看到厚度參數(shù)的求解類型標(biāo)記為 “P”:



然后我們需要設(shè)置這四個(gè)表面及 D2 的下一個(gè)表面(下表標(biāo)記為 D2+1)的表面屬性 (Surface Properties),以使 OpticStudio 只畫出這些表面而不畫出經(jīng)過(guò)這些表面的光線。您需要在表面屬性中的繪圖 (Draw) 選項(xiàng)卡中進(jìn)行如下設(shè)置:



現(xiàn)在讓我們先設(shè)置比較容易的出瞳面位置。您只需要選中 D3 面,設(shè)置該表面的厚度求解類型為主光線高度 (Chief Ray Height) 并保持高度值為0。設(shè)置完成后該厚度參數(shù)后會(huì)出現(xiàn)標(biāo)記 “C”。此時(shí)主光線的參考球面的曲率半徑與出瞳面的厚度相同。因此您可以設(shè)置 D4 面的曲率半徑拾取 D3 面的厚度并設(shè)置縮放比例為-1:



對(duì)于入瞳位置的確定,我們需要使用ZPL宏求解。首先,在界面上方導(dǎo)航欄的編程選項(xiàng)卡中點(diǎn)擊新建宏 (New Macro) 創(chuàng)建一個(gè)新的宏,并以 LDE_EP 為文件名保存。在這段宏程序中復(fù)制粘貼下面這段代碼:


SOLVEBEFORESTOP
SOLVERETURN OPEV(OCOD("ENPP"),0,0,0,0,0,0)


如果宏無(wú)需使用光線追跡的數(shù)據(jù)并且該宏求解需要設(shè)置在光闌面之前時(shí),關(guān)鍵詞 (Keywords)“SOLVEBEFORESTOP”需要編寫在 ZPL 宏的第一行,如上段代碼所示。 當(dāng)宏需要使用光線追跡的數(shù)據(jù)時(shí),使用該關(guān)鍵詞進(jìn)行的一些計(jì)算將不再有效,您可以瀏覽用戶手冊(cè)詳細(xì)了解如何正確使用“SOLVEBEFORESTOP”。 數(shù)值函數(shù) (Numeric Functions) “OPEV(OCOD())” 的組合是一個(gè)非常有效的方法來(lái)提取現(xiàn)有優(yōu)化函數(shù)操作數(shù)所能計(jì)算的數(shù)值結(jié)果,而不用在優(yōu)化函數(shù)編輯器中設(shè)置。


選中表面 D1,設(shè)置厚度求解類型為 ZPL 宏 (ZPL Macro) 并在宏名稱一欄輸入 “LDE_EP” (輸入時(shí)不帶引號(hào)),需要注意的是該宏程序并非只能用于當(dāng)前系統(tǒng),還可以應(yīng)用到其他系統(tǒng)之中:



現(xiàn)在您可以在布局圖中查看表示系統(tǒng)入瞳和出瞳的兩個(gè)虛擬面:



在某些系統(tǒng)中這個(gè)方法并不適用,例如在物方遠(yuǎn)心系統(tǒng)中系統(tǒng)入瞳位于物方無(wú)窮遠(yuǎn)處,因此光瞳無(wú)法在布局圖中顯示。