如何計(jì)算非序列物件的表面矢高

前言

Zemax OpticStudio中,我們經(jīng)常需要讀取一些表面Sag。在序列模式中,我們可以通過(guò)操作數(shù)SAGG或者在Analyze > Surface > Surface Sag得到表面Sag。但是在非序列模式中讀取表面Sag的過(guò)程會(huì)稍微復(fù)雜一些。主要原因在于序列模式中的表面都是通過(guò)單個(gè)方程計(jì)算的,這種方程主要描述了表面與頂點(diǎn)切平面之間的距離。但是非序列模式中,對(duì)象均為三維物體(可以是任意復(fù)雜的形狀),可通過(guò)Object Viewer來(lái)查看物體,但物體表面Sag數(shù)據(jù)又取決于查看物體的角度。

本文我們將介紹如何使用操作數(shù)NSRA 得到光源發(fā)出的一條光線與物體交點(diǎn)的位置(沿局部Z軸方向)信息。我們需要做的就是調(diào)整光源坐標(biāo),然后將該光線和物體的交點(diǎn)Z軸坐標(biāo)讀取出來(lái),即可得到完整的Sag信息。


使用Universal Plot 3D計(jì)算

舉例說(shuō)明,假設(shè)我們需要知道一個(gè)CPC物體的表面Sag。非序列元件編輯器中我們一共定義了兩個(gè)物體。具體數(shù)值如下:

注:CPC為Compound Parabolic Concentrator

打開(kāi)Analyze> Universal Plot >2D>New,具體設(shè)定如下:

X軸設(shè)置為物體1(Source Ray)的X Position,該值從-1到2步數(shù)為50份;Y軸設(shè)置為物體1的Y Position,該值從-2到1步數(shù)為50份。Z軸則為操作數(shù)NSRA的數(shù)值。操作數(shù)NSRA的參數(shù)設(shè)置如下:

點(diǎn)擊OK可以看到下面的偽彩圖,其中CPC的Z坐標(biāo)是X和Y的函數(shù)。

計(jì)算該圖時(shí),Source Ray的X、Y坐標(biāo)分別在-1到2以及-2到1之間變化,系統(tǒng)會(huì)自動(dòng)計(jì)算該范圍內(nèi)光線與CPC交點(diǎn)Z坐標(biāo)。點(diǎn)擊Text就可以得到完整的數(shù)值資料。

如果需要得到物體不同方向上的Sag,則可以直接指定該物體的Tilt About X/Y/Z,再重復(fù)上面的操作。


使用ZPL宏計(jì)算表面Sag

表面Sag的計(jì)算可以使用ZPL宏自動(dòng)計(jì)算,代碼如下:

在這個(gè)宏中,要求輸入光源移動(dòng)的X、Y軸的范圍以及掃描時(shí)的步數(shù),這和我們?cè)赨niversal Plot 2D中輸入的參數(shù)一樣。

然后通過(guò)SETPOSITION關(guān)鍵詞使光源的位置進(jìn)行上述范圍的變動(dòng),再通過(guò)NSRA計(jì)算光線與物體交點(diǎn)的Z的坐標(biāo)位置。在宏中讀取NSRA時(shí),我們還需要使用OCOD以及OPEV兩個(gè)關(guān)鍵詞。Source Ray的初始位置可以通過(guò)NPOS讀取,當(dāng)宏執(zhí)行完畢之前,會(huì)再次把Source Ray移回到初始位置。當(dāng)然,關(guān)于以上說(shuō)明都可以在Help文檔中找到。

本文計(jì)算出的X、Y、Z坐標(biāo)如下:


總結(jié)

操作數(shù)NSRA可以和Source Ray共用來(lái)計(jì)算非序列物體的表面矢高(Sag)。有兩種方法可以完成此操作:使用Universal Plot 2D、使用ZPL宏

不管使用哪一種方法都可以明確指定步進(jìn),進(jìn)而可以得到任意分辨率的表面sag。