如何創(chuàng)建復雜的非序列物體
概述
這篇文章介紹了如何通過組合多個物體的方式創(chuàng)建復雜的非序列物體、如何通過拾取求解來鎖定一組物體, 以及如何在非序列元件編輯器中復制一組物體。本文使用的附件請從以下鏈接處下載:
https://customers.zemax.com/support/knowledgebase/Knowledgebase-Attachments/How-to-Create-Complex-Non-Sequential-Objects/Complex.aspx
參數(shù)化的物體定義
在OpticStudio中,多數(shù)非序列物體都是參數(shù)化的,即他們的定義依賴于某個基本的方程。例如,標準透鏡 (Standard Lens) 物體是通過如曲率半徑、圓錐系數(shù)、中心厚度等參數(shù)來定義的。這樣參數(shù)化的物體可以只通過修改非序列元件編輯器 (Non sequential Component Editor, NSCE) 中的數(shù)據(jù)值就可以進行修改。當物體的數(shù)據(jù)被手動修改, 或被滑塊 (Slider) 工具、宏 (macro) 程序、擴展 (Extension) 程序,以及最關鍵的被優(yōu)化器 (Optimizer) 修改時,物體能夠快速地重建。
OpticStudio 同樣支持非參數(shù)化的物體,如多邊形物體 (Polygon Object) 或者導入的CAD物體 (Imported CAD Objects)。這些物體最終由一系列數(shù)據(jù)表示。在某些應用中,使用非參數(shù)化的物體有很多優(yōu)勢,例如在進行復雜的光機雜散光分析中,透鏡的底座和其他機械件可以通過非參數(shù)化的定義方式快速導入。但是在設計階段,我們需要方便靈活的更改物體的參數(shù),以得到我們想要的結果,參數(shù)化的物體定義是這種情況下的理想定義方式。
在OpticStudio中,支持多種參數(shù)化的物體定義方式,并且更多新的參數(shù)化物體定義方式還會持續(xù)添加進來。您可以在用戶手冊中找到這些物體定義方式的完整列表。此外,OpticStudio還預留有一個自定義的接口允許您定義自己的參數(shù)化物體:用戶自定義物體 (User-defined Object),它是非常強大的常用自定義工具。
您還可以通過組合已經(jīng)存在的多個物體來創(chuàng)建一個新的復合物體,這是一個快速且靈活的,不需要編程的創(chuàng)建復雜物體的方式。使用這種方式的關鍵在于:
明確OpticsStudio支持的物體類型,您可以在用戶手冊中找到這些物體的完整列表
正確定義不同物體之間重疊的體積和表面的屬性,詳細信息請查閱用戶手冊中的“嵌套規(guī)則”一節(jié)。
用拾取求解將多個子物體關聯(lián)在一起,以實現(xiàn)改變個別已定義的參數(shù),就可以自動更新組合物體中所有其他參數(shù)。
本文示例的目的是創(chuàng)建一個90°彎曲的矩形丙烯酸樹脂導光管,它通常用于電路板印刷過程中,將LED(發(fā)光二極管)的光線中繼到儀器面板上,并分析當彎曲半徑改變時,導光管另一端的輻照度會產(chǎn)生怎樣的變化。我們還將在導光管中創(chuàng)建一個孔,以方便插入裝配結構。并且在導光管的末端放置一個圓形孔徑,這樣儀器面板上得到的光斑則為圓形。同樣,對參數(shù)做出的任何改變都會立即體現(xiàn)在所有分析中,而不會需要我們改變每一個參數(shù)值。
下圖所示為我們要創(chuàng)建的導光管。需要注意的是,導光管末端的輻照度分布隨著彎曲半徑的變化而變化。由于這個物體是完全參數(shù)化的, 因此我們可以輸入任意的彎曲半徑值,并且物體會隨著參數(shù)改變而動態(tài)重建。

探測器上顯示出的多個橢圓光斑是由于光線在光管中發(fā)生了不同次數(shù)的全內(nèi)反射導致的,我們可以從下圖中清晰的看到全反射現(xiàn)象:

設置系統(tǒng)基本屬性
查閱用戶手冊中的非序列物體列表可以發(fā)現(xiàn),所有物體中并沒有符合我們想要的物體形狀,然而我們可以通過組合矩形體 (Rectangular Volume Object) 和矩形Torus體 (Rectangular Torus Volume Object) 來創(chuàng)建。
讓我們從頭開始,一步步創(chuàng)建這個導光管。
打開OpticStudio,點擊設置 (Setup) 選項卡中的非序列模式 (Non-Sequential) 新建一個非序列文件。打開系統(tǒng)選項 (System Explorer) 中的單位 (Units),設置透鏡單位 (Lens Units) 為毫米、分析單位 (Analysis Unit) 為瓦特每平方厘米 (Watts per cm2)。在波長 (Wavelengths) 中定義系統(tǒng)波長為0.55μm。最后在系統(tǒng)選項中的非序列模式 (Non-sequential) 中設置最大嵌套/接觸物體數(shù)目 (Maximum Nested/Touching Objects) 為5。該選項定義了物體嵌套、交叉、連接的數(shù)量上限。不要將該數(shù)值設為超過所需物體的數(shù)量,否則它將占用更多的內(nèi)存卻不會帶來額外的好處。

創(chuàng)建導光管主體:A
在非序列元件編輯器中,插入一個空物體(物體1)以及一個矩形體(物體2),如下所示。輸入如下參數(shù)定義矩形體:
參考物體 (Ref Object): -1
材料 (Material): Acrylic
X1半寬 (X1 Half Width): 5
Y1半寬 (Y1 Half Width): 5
Z長度 (Z Length): 20
X2半寬 (X2 Half Width): 5
Y2半寬 (Y2 Half Width): 5
其他參數(shù)均為默認值
這里我們采用相對參考而非全局參考,這樣做的好處會在復制導光管時體現(xiàn)出來。

為了幫助我們觀察物體的位置和局部坐標的方向,點擊物體2物體屬性 (Object Properties) 中的繪制 (Draw) 選項卡,勾選“局部坐標軸 (Draw Local Axis)”選項。

打開3D布局圖觀察物體結構。

在非序列元件編輯器中,插入一個矩形Torus體作為物體3,設置如下參數(shù):
參考物體 (Ref Object): -1
材料 (Material): Acrylic
外R (Outer R): 40
內(nèi)R (Inner r): 30
起始角 (Start Angle): 0
終止角 (Stop Angle): 90
厚度 (Thickness): 10
其余參數(shù)均為默認值。

如前文所提到的,矩形Torus體只有在布局圖中顯示時才使用表面進行表示。在實際的光線追跡過程中,物體會使用實際的方程進行精確定義,定義精度為OpticStudio進行數(shù)值計算的精度。

現(xiàn)在我們需要指定合適的X, Y, Z軸位置,以便在不考慮外R參數(shù)時,矩形Torus體可以與矩形體正確地連接。需要注意的是,我們接下來馬上會改變參數(shù)外R來分析光線傳播過程的變化。我們將使用拾取解求解來連接兩個物體,并使參數(shù)外R和內(nèi)R的值總是相差10mm。
在非序列元件編輯器中,定義參數(shù)內(nèi)R的求解類型為拾取求解 (Pickup Solve),如下圖所示:

對于矩形Torus體物體,在非序列元件編輯器中,材料參數(shù)欄右側(cè)的參數(shù)1欄 (Parameter 1) 表示外R,拾取求解會設置內(nèi)R總是比外R小10mm。 矩形Torus體的一端應與矩形體+Z方向的面相連,您可以使矩形Torus體的Z軸位置與矩形體的Z軸位置(參數(shù)3)保持一致,如下圖所示:

創(chuàng)建導光管主體:B
更新3D布局圖

最后,我們需要將矩形Torus體在X軸上移動 -1*(外R-5mm) 的距離,如上圖所示。將物體3的參數(shù)X位置的求解類型定義為拾取求解,如下圖所示:


更新的3D布局圖中,可以看到兩者已經(jīng)連接在一起。
根據(jù)下列參數(shù)插入第二個矩形體作為物體4:
參考物體 (Ref Object) : -1
材料 (Material) : Acrylic
X1半寬 (X1 Half Width) : 5
Y1半寬 (Y1 Half Width) : 5
Z長度 (Z Length) : 50
X2半寬 (X2 Half Width) : 5
Y2半寬 (Y2 Half Width) : 5
其他參數(shù)均為默認設置

在布局圖中顯示物體4的局部坐標軸。

創(chuàng)建導光管主體:C
我們需要將物體4繞Y軸旋轉(zhuǎn)-90°,在非序列元件編輯器中,設置關于參數(shù)旋轉(zhuǎn)Y (Tilt About Y) 為-90。OpticStudio使用右手坐標系,因此從Y軸正向看去,繞Y軸反向旋轉(zhuǎn)是順時針的。

物體4的Z軸位置參數(shù)應與參數(shù)外R相同(即-5mm),將矩形體Z軸位置的求解類型同樣定義為拾取求解,參數(shù)設置如下圖所示:

現(xiàn)在,系統(tǒng)布局圖如下所示:

在導光管上創(chuàng)建洞
下一步是在物體4上放置一個孔(材料是空氣)。插入圓柱體(Cylinder Volume)作為物體5,定義參數(shù)如下:
參考物體 (Ref Object): -1
Y位置 (Y position): 5
Z位置 (Z Position): 40
傾斜X (Tilt About X): 90
材料 (Material) : Blank (留空)
前R (Front R) : 2
Z長度 (Z length) : 10
后R (Back R) : 2

如果想要使矩形體(物體4)與圓柱體(物體5)的重疊體積為空氣,則在本例中需要將圓柱體在非序列元件編輯器中的位置放置在矩形體之后,有關體積嵌套的詳細規(guī)則,請參閱用戶手冊。

為了追跡光線穿過導光管,我們需要在物體1的左側(cè)插入一個矩形光源 (Source Rectangle) 物體,其參數(shù)設置如下所示:
參考物體 (Ref Object) : -5(參考于一個空物體)
Z位置 (Z Position) : -10
陳列光線條數(shù) (# Layout Rays) : 20
分析光線條數(shù) (# Analysis Rays) : 400000
X半寬 (X Half Width) : 4.8
Y半寬 (Y Half Width) : 4.8
其他參數(shù)均為默認設置



其中放大的布局圖顯示了當前圓孔邊緣處發(fā)生的全內(nèi)反射現(xiàn)象,這是因為孔內(nèi)的折射率低于矩形體的折射率。
在導光管末端放置光闌
為了在導光管末端放置一個圓形光闌,我們需要將兩個面嵌套在一起,一個是矩形體的表面(作為阻擋光闌)以及一個圓形孔徑(設置為空氣)。首先按照如下參數(shù)插入一個矩形體作為物體7:
參考物體 (Ref Object) : -3(參考于物體4)
Z位置 (Z Position) : 50
材料 (Material) : Absorb
X半寬 (X Half Width) : 5
Y半寬 (Y Half Width) : 5
其他參數(shù)均為默認設置
再插入一個標準面 (Standard Surface) 物體作為物體8。它代表導光管末端的圓形光闌,其參數(shù)如下所示:
參考物體 (Ref Object) : -1
材料 (Material) : Blank(留空)
最大孔徑 (Max Aperture) : 2.5
其他參數(shù)均為默認設置

如果此時更新布局圖,您將會看到如下提示:

并且,如果此時點擊分析選項卡中的光線追跡 (Ray Trace),您將會得到如下錯誤提示:

在本例中,產(chǎn)生幾何錯誤的原因是因為我們違背了一個嵌套規(guī)則。如幫助系統(tǒng) (Help System) 中“Setup Tab/Editors Group/(Setup Tab)/Non-Sequential Component Editor/Non-Sequential Overview/Object Placement”一節(jié)中的表述:表面物體不會與一個體積的表面共享一個邊界,除非體積表面的屬性是反射或者吸收,或者體積物體在非序列元件編輯器中位于表面物體之后(在這種情況下,共享邊界的屬性由體積物體定義)。 在本例中,物體8是空氣(表面屬性不是吸收或反射)與物體4的邊界重疊。我們可以將光闌(物體7和物體8)的位置遠離導光管1μm,使光闌的Z軸位置從50mm變?yōu)?0.001mm

在布局圖中可以看到,超出光闌部分的光線如我們預想的一樣被阻擋。
將光線追跡至探測器
現(xiàn)在,我們放置一個探測器來進行光線追跡分析。插入一個矩形探測器 (Detector Rectangle) 作為物體9:
參考物體 (Ref Object) : -1
Z位置 (Z Position) : 20
材料 (Material) : Absorb
X半寬 (X Half Width) : 25
Y半寬 (Y Half Width) : 6
X像元數(shù) (# X Pixels) : 400
Y像元數(shù) (# Y Pixels) : 100
數(shù)據(jù)類型 (Data Type) : 0 (非相干照度)
顏色 (Color) : 0 (探測器查看器以灰度進行顯示)

點擊分析選項卡中的光線追跡,勾選“使用偏振 (Use Polarization)”選項,點擊清除并追跡 (Clear & Trace)。勾選“使用偏振”是為了在計算過程中考慮由表面部分反射和體吸收所造成的能量損失。正如前文所討論的,探測器上的多個橢圓形光斑是由于光線經(jīng)過不同次數(shù)的全內(nèi)反射導致的。

為了觀察外R(參數(shù)1)改變時布局圖中系統(tǒng)的變化,我們可以使用滑塊工具,在優(yōu)化選項卡中點擊滑塊,設置如下參數(shù)并點擊動畫 (Animate)。

從布局圖中可以看到系統(tǒng)隨彎曲半徑的變化而變化:

您可以改變參數(shù)外R的值然后重新追跡光線,觀察輻照度分布的變化。您也可以編寫一個簡單的ZPL宏將光線追跡到探測器并保存每個參數(shù)值對應的探測器分析結果。如下所示輻照度根據(jù)外R參數(shù)的變化而變化的動畫就是用這樣的宏來實現(xiàn)的。

復制導光管
讓我們來創(chuàng)建另外一個完全相同的導光管,并把它放置在與第一個導光管Y軸方向的一定距離上。
在矩形探測器后,插入一個空物體,選擇物體1(高亮顯示)并在鍵盤上按住Shift鍵并同時點擊下方向鍵,同時選擇物體1至物體9。

右鍵鼠標選擇復制對象(Copy Objects)。

選擇物體10,再次右鍵,選擇粘貼對象(Paste Objects),非序列組建編輯器將會變成如下樣子:

在物體10(空物體)Y軸位置參數(shù)上鍵入20mm,來將第二個光管放在第一個光管+Y方向上20mm遠的地方。同樣將物體12外徑R的解類型定義為拾取之前的矩形環(huán)面體的外徑R。

布局圖現(xiàn)在有兩個距離為20mm的光管了。

我們在本例中采用了相對對象參考(relative object reference),即在物體參考參數(shù)( Ref Object )中使用負數(shù)來定義參考對象。如果我們使用絕對對象參考(absolute object referencing),我們將需要非常麻煩地為第二個光管修改參考對象的編號。
小結
本文表述了在OpticStudio非序列模式中如何嵌套體積對象和表面對象來創(chuàng)建復雜的物體。
我們得到的經(jīng)驗有:
參數(shù)化對象應該盡可能多地使用
用戶手冊中體積對象和表面對象的嵌套原則應該嚴格遵守
用組合物體的方式創(chuàng)建復雜的物體是一個非常實用的方法
正確的對象參考能夠令復制一組物體變得輕松