Ansys Zemax | 如何在OpticStudio中創(chuàng)建多邊形物體
附件下載
聯(lián)系工作人員獲取附件
概述
在OpticStudio中,使用多邊形物體 (Polygon Object, POB) 是創(chuàng)建用戶自定義幾何體的常用方法之一。本文介紹了如何創(chuàng)建多邊形物體、定義物體表面以及如何在非序列編輯器中使用該物體。
介紹
多邊形物體是由多個三角形或矩形面構(gòu)成的三維空間幾何體,其中三角形或矩形面的頂點由一個ASCII文本文件定義。該文本文件包含有多行數(shù)據(jù),并且可以使用任意文本編輯器進行編輯。其中每行數(shù)據(jù)以單個字母或符號為起始,數(shù)據(jù)跟隨在字母和符號之后。
為了充分演示如何構(gòu)建多邊形對象、定義單個面或面組、保存文件的位置以及如何在OpticStudio中加載文件,讓我們使用POB功能創(chuàng)建一個等邊三角形棱鏡。等邊三角形棱鏡共有五個面,但只需定義總共六個頂點。然后,我們可以使用OpticStudio中多邊形對象支持的矩形符號連接每個頂點。
首先打開一個空白的文本文檔。在POB文件以中嘆號 (!) 為起始的行表示該行為備注行。在定義多邊形物體時使用備注行來描述該物體是十分有用的,它可以在之后使用時幫助您快速了解該文本文件創(chuàng)建了什么樣的物體。

讓我們首先定義棱鏡的6個頂點。我們必須使用的語法由頂點符號描述:V。定義頂點的線必須以字母V開頭,后跟頂點編號和頂點的x、y、z坐標:
V number x y z
該數(shù)字將x、y、z位置指定為一個頂點編號,稍后可以在我們對多邊形對象的定義中使用該編號。這樣做很方便,我們不必每次使用這個頂點時都定義x,y,z坐標。相反,我們只是引用數(shù)字。
x、y、z坐標相對于多邊形對象的局部(0,0,0)。請注意,多邊形對象的(0,0,0)坐標在NSC編輯器中全局定位。
假設棱鏡的頂點位于正面下邊緣的中心,棱鏡的所有邊的尺寸都是2。此處的坐標單位為當前系統(tǒng)的鏡頭單位。如果當前系統(tǒng)的鏡頭單位為毫米,那么棱鏡的每一面都是2毫米。如果我將系統(tǒng)單位切換為英寸,那么每邊將為2英寸。

同樣,共有6個頂點由它們各自的x、y和z位置定義。這是一個代表我們剛剛定義的點集合的圖形:

需要注意的是我們還未連接任何頂點。上圖中的實線只是出于展示目的來幫助我們分辨棱鏡的外形和頂點的空間位置。
其中棱鏡前表面上的箭頭表示局部坐標軸方向,它位于多邊形物體的原點。每個物體的局部坐標軸都可以在對應物體的物體屬性 (Object Properties) > 繪圖 (Draw) 中選中顯示局部坐標軸 (Draw Local Axis) 來顯示:

連接頂點
上一節(jié)中我們定義了所有的頂點坐標,現(xiàn)在我們需要連接各個頂點組成矩形面來構(gòu)建棱鏡。三角形語法需要組成三角形的三個頂點數(shù),以及其他兩個參數(shù):
T vertex1 vertex2 vertex3 isreflective face
矩形語法需要四個頂點編號:
R vertex1 vertex2 vertex3 vertex4 isreflective face
頂點編號必須為整數(shù),并且是文本文件中已經(jīng)定義頂點的編號。其中編號的定義順序并不是任意的,編號的順序必須為所構(gòu)建棱鏡頂點的逆時針或順時針順序。如下圖中右側(cè)顯示的交叉順序是不支持的:

例如,下面的線將創(chuàng)建棱鏡的正面,連接頂點1、2和3:
T 1 2 3 0 0
isreflective參數(shù)是一個整數(shù)值,可以是-1、1或0。多邊形對象的每個面都可以是反射的、折射的或吸收的。如果在上述示例中將反射標志設置為1,則該曲面將被視為反射曲面,語法如下所示:
T 1 2 3 1 0
對于isreflective標志,0代表折射,1代表反射,-1代表吸收。與POB文件中定義的不同,每個對象的每個面都可以從“對象屬性”對話框中進行反射或吸收:

需要注意的是,在膜層/散射標簽中定義的表面屬性將覆蓋POB文件中定義的表面屬性。也就是說,如果POB文件其中一個面設為反射,則可以在不打開編輯文本文件的情況下,在膜層/散射標簽中將該表面的表面屬性改為吸收。如果該選項選擇為“物體默認 (Object Default)”,則OpticStudio將使用POB文件中定義的表面屬性。
數(shù)據(jù)行中的face標識用來定義該表面屬于哪個表面組。我們將在下文中詳細討論。
因此,為了完成立方體的構(gòu)建,我們總共需要兩個三角形命令和四個矩形命令,每個命令都是折射的:

保存和加載POB文件
定義完的多邊形物體文件需要保存在Zemax根目錄下的Objects > Polygon Objects文件夾中。并且文件的擴展名必須為.POB。我們將前文創(chuàng)建的POB文件保存為Equilateral triangle prism.POB文件。
當我們想在OpticStudio非序列模式中使用該POB文件時,我們需要將物體的物體種類設為多邊形物體。在數(shù)據(jù)文件 (Data File) 下拉菜單中選擇Equilateral triangle prism.POB文件,如下所示:

打開陰影模型以確認我們剛剛構(gòu)建的棱鏡。

對表面分組
目前我們定義的立方體只含一個表面分組。換句話說,當我們需要定義立方體的膜層或表面散射屬性時只能同時對6個表面進行定義。打開物體屬性的膜層/散射標簽,我們可以看到在表面下拉菜單中只有一個名為Face 0的分組,它表示立方體的所有表面。

同時,在物體編輯器 (Object Editor) 中選中Face 0表面組會看到立方體的所有表面都被選中并高亮顯示為橙色。

我們可以在POB文件中對不同表面進行分組。如此一來,我們可以對不同表面組的表面定義不同的表面屬性。表面組的名稱和序號需要在POB文件的開頭進行定義,其中定義符號為C。該定義的語法如下所示:
C facebumber “任意名稱”
其中facenumber為整數(shù),用來定義表面組的序號,該序號用于后續(xù)三角形或矩形表面構(gòu)建時進行分組使用。表面組的名稱可以為任意便于區(qū)分的名稱。
在當前示例中,讓我們編輯多邊形對象以區(qū)分棱鏡的正面、背面和側(cè)面(選擇編輯對象數(shù)據(jù)文件(位于NSC編輯器工具欄中)。在頂點定義之前,讓我們定義3個唯一的面組:一個用于正面,一個用于背面,另一個用于棱鏡的四個側(cè)面。為此,需要3個面命令:

請記住,每個三角形/矩形定義都有一個面標志,它對應于之前在POB文件中定義的面組編號。因此,我們需要為每個三角形/矩形定義修改此標志,以區(qū)分哪些面與哪些面組或面編號相關(guān)。
描述正面的三角形的面號為1,因為這是描述“正面”的面組。定義棱鏡側(cè)面的所有矩形的面號都為0。最后,將對背面三角形應用面組編號2:

完成每個面的表面組序號設置后保存文本文件并重新加載該POB物體。我們可以看到表面下拉菜單中包含了三個表面分組:

這樣一來,我們可以單獨對Side Face分組的表面(POB文件中表面分組序號為0的表面)定義任意表面屬性。同樣的,當選擇其他表面分組時(例如序號1,前表面),我們可以定義不同的表面屬性。
我們可以通過物體編輯器查看所選表面分組中包含的表面。其中選中的表面將高亮顯示為橙色:


注意事項
在使用多邊形物體時有以下幾點需要特別注意:
1、當使用POB文件表示空間幾何體時,確保POB文件中定義的矩形/三角形表面閉合為一個封閉的體積(也可以使用多邊形物體在非序列編輯器中的額外數(shù)據(jù)“是實體?(Is Volume ?)”來定義封閉的空間幾何體)。
2、在定義矩形時,頂點的定義順序不能交叉。交叉會導致光線追跡產(chǎn)生錯誤。
3、多邊形物體中沒有三角形/矩形表面的數(shù)量上限。它是由計算機內(nèi)存的容量決定。其中每個三角形表面大約需要100比特的存儲空間。然而OpticStudio通常會在同一時間保多個透鏡數(shù)據(jù)的副本,因此OpticStudio存儲一個三角形表面的實際空間約為500比特。
在OpticStudio中內(nèi)置有一個示例宏程序可以用來生成不同類型的多邊形物體,且無需定義每個頂點。該宏程序名稱為Polygon.ZPL,它保存在Zemax根目錄下的Macros文件夾中。在使用時,宏程序需要用戶輸入物體的表面半徑(表面不一定為圓形)、表面的邊數(shù)、多邊形物體的長度以及長度的分段數(shù)量。
小結(jié)
在OpticStudio中使用多邊形物體是一種非常靈活的創(chuàng)建用戶自定義物體的方法。通過簡單的ASCII文本文件,您可以定義任意由頂點連成的三角形或矩形所組成的空間幾何體。在POB文件中可以對每個表面進行分組,每組中可以包括一個或多個表面。用戶可以根據(jù)分組,簡單快速的定義不同分組表面的表面屬性。