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

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

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

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

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

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

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

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

打開(kāi)陰影模型以確認(rèn)我們剛剛構(gòu)建的棱鏡。

對(duì)表面分組
目前我們定義的立方體只含一個(gè)表面分組。換句話說(shuō),當(dāng)我們需要定義立方體的膜層或表面散射屬性時(shí)只能同時(shí)對(duì)6個(gè)表面進(jìn)行定義。打開(kāi)物體屬性的膜層/散射標(biāo)簽,我們可以看到在表面下拉菜單中只有一個(gè)名為Face 0的分組,它表示立方體的所有表面。

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

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

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

完成每個(gè)面的表面組序號(hào)設(shè)置后保存文本文件并重新加載該P(yáng)OB物體。我們可以看到表面下拉菜單中包含了三個(gè)表面分組:

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


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