如何計算非序列物件的表面矢高
前言
Zemax OpticStudio中,我們經(jīng)常需要讀取一些表面Sag。在序列模式中,我們可以通過操作數(shù)SAGG或者在Analyze > Surface > Surface Sag得到表面Sag。但是在非序列模式中讀取表面Sag的過程會稍微復(fù)雜一些。主要原因在于序列模式中的表面都是通過單個方程計算的,這種方程主要描述了表面與頂點切平面之間的距離。但是非序列模式中,對象均為三維物體(可以是任意復(fù)雜的形狀),可通過Object Viewer來查看物體,但物體表面Sag數(shù)據(jù)又取決于查看物體的角度。
本文我們將介紹如何使用操作數(shù)NSRA 得到光源發(fā)出的一條光線與物體交點的位置(沿局部Z軸方向)信息。我們需要做的就是調(diào)整光源坐標,然后將該光線和物體的交點Z軸坐標讀取出來,即可得到完整的Sag信息。
使用Universal Plot 3D計算
舉例說明,假設(shè)我們需要知道一個CPC物體的表面Sag。非序列元件編輯器中我們一共定義了兩個物體。具體數(shù)值如下:
注:CPC為Compound Parabolic Concentrator

打開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è)置如下:

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

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

如果需要得到物體不同方向上的Sag,則可以直接指定該物體的Tilt About X/Y/Z,再重復(fù)上面的操作。
使用ZPL宏計算表面Sag
表面Sag的計算可以使用ZPL宏自動計算,代碼如下:


在這個宏中,要求輸入光源移動的X、Y軸的范圍以及掃描時的步數(shù),這和我們在Universal Plot 2D中輸入的參數(shù)一樣。
然后通過SETPOSITION關(guān)鍵詞使光源的位置進行上述范圍的變動,再通過NSRA計算光線與物體交點的Z的坐標位置。在宏中讀取NSRA時,我們還需要使用OCOD以及OPEV兩個關(guān)鍵詞。Source Ray的初始位置可以通過NPOS讀取,當宏執(zhí)行完畢之前,會再次把Source Ray移回到初始位置。當然,關(guān)于以上說明都可以在Help文檔中找到。
本文計算出的X、Y、Z坐標如下:

總結(jié)
操作數(shù)NSRA可以和Source Ray共用來計算非序列物體的表面矢高(Sag)。有兩種方法可以完成此操作:使用Universal Plot 2D、使用ZPL宏
不管使用哪一種方法都可以明確指定步進,進而可以得到任意分辨率的表面sag。