Ansys Zemax | 如何創建復雜的非序列物體
附件下載
聯系工作人員獲取附件
概要
這篇文章介紹了在OpticStudio中,如何不以導入CAD文件的方式創建復雜的物體。您將學習到如何通過組合多個物體來創建復雜的非序列物體,如何利用拾取求解類型鎖定一組物體以及在非序列元件編輯器中如何復制一組物體。
簡介
在非序列模式中,用戶可以導入或創建物體來進行光學機械組件設計,當我們關注于設計而不是分析時,使用易于定義的參數化物體是較為方便的。參數化物體基于一個基本方程,該方程可以通過手動、滑塊、宏或優化器等方式快速修改。Opticsudio有許多內置的參數化物體供我們使用或進行組合。本文將展示通過組合內置參數化物體創建復雜的物體,以及通過編輯器中的參數控制物體的形狀。對參數所做的任何更改都將立即反映在分析結果中,省去需要我們使用參數不同的多個模型的麻煩。
參數化的物體定義方式讓設計更簡單
在OpticStudio中,多數非序列物體都是參數化的,即他們的定義依賴于某個基本的方程。例如,標準透鏡 (Standard Lens) 物體是通過如曲率半徑、圓錐系數、中心厚度等參數來定義的。這樣參數化的物體可以只通過修改非序列元件編輯器 (Non sequential Component Editor, NSCE) 中的數據值就可以進行修改。當物體的數據被手動修改,或被滑塊 (Slider) 工具、宏 (macro) 程序、擴展 (Extension) 程序,以及最關鍵的被優化器 (Optimizer) 修改時,物體能夠快速地重建。
OpticStudio 同樣支持非參數化的物體,如多邊形物體 (Polygon Object) 或者導入的CAD物體 (Imported CAD Objects)。這些物體最終由一系列數據表示。在某些應用中,使用非參數化的物體有很多優勢,例如在進行復雜的光機雜散光分析中,透鏡的底座和其他機械件可以通過非參數化的定義方式快速導入。但是在設計階段,我們需要方便靈活的更改物體的參數,以得到我們想要的結果。參數化的物體定義是這種情況下的理想定義方式。
在OpticStudio中,支持多種參數化的物體定義方式,并且更多新的參數化物體定義方式還會持續添加進來。您可以在用戶手冊中找到這些物體定義方式的完整列表。此外,OpticStudio還預留有一個自定義的接口允許您定義自己的參數化物體:用戶自定義物體 (User-defined Object),它是非常強大的常用自定義工具。
您還可以通過組合已經存在的多個物體來創建一個新的復合物體,這是一個快速且靈活的,不需要編程的創建復雜物體的方式。使用這種方式的關鍵在于:
- 明確OpticsStudio支持的物體類型,您可以在用戶手冊中找到這些物體的完整列表
- 正確定義不同物體之間重疊的體積和表面的屬性,詳細信息請查閱用戶手冊中的“嵌套規則”一節。
- 用拾取求解將多個子物體關聯在一起,以實現改變個別已定義的參數,就可以自動更新組合物體中所有其他參數。
如果我們使用非參數化物體(如CAD物體)分析彎曲光管的效果,就必須創建許多個對應于不同半徑的CAD文件,而使用參數化物體,我們可以在編輯器中通過參數控制物體形狀,參數更改會立刻體現在物體建模上,免去了我們只能使用參數確定的多個文件的麻煩。
設置系統基本屬性
本文示例的目的是創建一個90°彎曲的矩形丙烯酸樹脂導光管,它通常用于電路板印刷過程中,將LED(發光二極管)的光線中繼到儀器面板上,并分析當彎曲半徑改變時,導光管另一端的輻照度會產生怎樣的變化。我們還將在導光管中創建一個孔,以方便插入裝配結構。并且在導光管的末端放置一個圓形孔徑,這樣儀器面板上得到的光斑則為圓形。在創建導光管后,我們將復制它,并將副本放在距它一定長度的位置上。
下圖所示為我們要創建的導光管。需要注意的是,導光管末端的輻照度分布隨著彎曲半徑的變化而變化。由于這個物體是完全參數化的,因此我們可以輸入任意的彎曲半徑值,并且物體會隨著參數改變而動態重建。
探測器上顯示出的多個橢圓光斑是由于光線在光管中發生了不同次數的全內反射導致的,我們可以從下圖中清晰的看到全反射現象:
查閱用戶手冊中的非序列物體列表可以發現,所有物體中并沒有符合我們想要的物體形狀,然而我們可以通過組合矩形體 (Rectangular Volume Object) 和矩形Torus體 (Rectangular Torus Volume Object) 來創建。
讓我們從頭開始,一步步創建這個導光管。
打開OpticStudio,點擊設置 (Setup) 選項卡中的非序列模式 (Non-Sequential) 新建一個非序列文件。打開系統選項 (System Explorer) 中的單位 (Units),設置透鏡單位 (Lens Units) 為毫米、分析單位 (Analysis Unit) 為瓦特每平方厘米 (Watts per cm2)。在波長 (Wavelengths) 中定義系統波長為0.55μm。最后在系統選項中的非序列模式 (Non-sequential) 中設置最大嵌套/接觸物體數目 (Maximum Nested/Touching Objects) 為5。該選項定義了物體嵌套、交叉、連接的數量上限。不要將該數值設為超過所需物體的數量,否則它將占用更多的內存卻不會帶來額外的好處。
創建導光管主體
在非序列元件編輯器中,插入一個空物體(物體1)以及一個矩形體(物體2),如下所示。輸入如下參數定義矩形體:這里我們采用相對參考(物體-1)而非全局參考,這樣做的好處會在復制導光管時體現出來。
參考物體 (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 |
其他參數均為默認設置。
為了幫助我們觀察物體的位置和局部坐標的方向,點擊物體2物體屬性 (Object Properties) 中的繪制 (Draw) 選項卡,勾選“局部坐標軸 (Draw Local Axis)”選項。
打開3D布局圖觀察物體結構。
在非序列元件編輯器中,插入一個矩形Torus體作為物體3,設置如下參數:
參考物體 (Ref Object) |
-1 |
材料 (Material) |
Acrylic |
外R (Outer R) |
40 |
內R (Inner r) |
30 |
起始角 (Start Angle) |
0 |
終止角 (Stop Angle) |
90 |
厚度 (Thickness) |
10 |
其余參數均為默認值。
如前文所提到的,矩形Torus體只有在布局圖中顯示時才使用表面進行表示。在實際的光線追跡過程中,物體會使用實際的方程進行精確定義,定義精度為OpticStudio進行數值計算的精度。
現在我們需要指定合適的X, Y, Z軸位置,以便在不考慮外R參數時,矩形Torus體可以與矩形體正確地連接。需要注意的是,我們接下來馬上會改變參數外R來分析光線傳播過程的變化。我們將使用拾取解求解來連接兩個物體,并使參數外R和內R的值總是相差10mm。
在非序列元件編輯器中,定義參數內R的求解類型為拾取求解 (Pickup Solve),如下圖所示:
對于矩形環狀物體,在非序列元件編輯器中,材料參數欄右側的參數1欄 (Parameter 1) 表示外R,拾取求解會設置內R總是比外R小10mm。
矩形Torus體的一端應與矩形體+Z方向的面相連,您可以使矩形Torus體的Z軸位置與矩形體的Z軸位置(參數3)保持一致,如下圖所示:
更新3D布局圖。
最后,我們需要將矩形Torus體在X軸上移動 -1*(外R-5mm) 的距離,如上圖所示。將物體3的參數X位置的求解類型定義為拾取求解,如下圖所示:
更新的3D布局圖中,可以看到兩者已經連接在一起。
根據下列參數插入第二個矩形體作為物體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 |
其他參數均為默認設置。
在布局圖中顯示物體4的局部坐標軸。
我們需要將物體4繞Y軸旋轉-90°,在非序列元件編輯器中,設置關于參數旋轉Y (Tilt About Y) 為-90。OpticStudio使用右手坐標系,因此從Y軸正向看去,繞Y軸反向旋轉是順時針的。
物體4的Z軸位置參數應與參數外R相同(即-5mm),將矩形體Z軸位置的求解類型同樣定義為拾取求解,參數設置如下圖所示:
現在,系統布局圖如下所示:
在導光管上創建洞
下一步是在物體4上放置一個孔(材料是空氣)。插入圓柱體(Cylinder Volume)作為物體5,定義參數如下:
參考物體 (Ref Object) |
-1 |
Y位置 (Y position) |
5 |
Z位置 (Z Position) |
40 |
傾斜X (Tilt About X) |
90 |
前R (Front R) |
2 |
Z長度 (Z length) |
10 |
后R (Back R) |
2 |
其他參數均為默認設置。
如果想要使矩形體(物體4)與圓柱體(物體5)的重疊體積為空氣,則在本例中需要將圓柱體在非序列元件編輯器中的位置放置在矩形體之后,有關體積嵌套的詳細規則,請參閱用戶手冊。
為了追跡光線穿過導光管,我們需要在物體1的左側插入一個矩形光源 (Source Rectangle) 物體,其參數設置如下所示:
參考物體 (Ref Object) |
-5 |
Z位置 (Z Position) |
-10 |
陳列光線條數 (# Layout Rays) |
20 |
分析光線條數 (# Analysis Rays) |
400000 |
X半寬 (X Half Width) |
4.8 |
Y半寬 (Y Half Width) |
4.8 |
其他參數均為默認設置。
其中放大的布局圖顯示了當前圓孔邊緣處發生的全內反射現象,這是因為孔內的折射率低于矩形體的折射率。
在導光管末端放置光闌
為了在導光管末端放置一個圓形光闌,我們需要將兩個面嵌套在一起,一個是矩形體的表面(作為阻擋光闌)以及一個圓形孔徑(設置為空氣)。首先按照如下參數插入一個矩形體作為物體7:
參考物體 (Ref Object) |
-3 |
Z位置 (Z Position) |
50 |
材料 (Material) |
Absorb |
X半寬 (X Half Width) |
5 |
Y半寬 (Y Half Width) |
5 |
其他參數均為默認設置。
再插入一個標準面 (Standard Surface) 物體作為物體8。它代表導光管末端的圓形光闌,其參數如下所示:
參考物體 (Ref Object) |
-1 |
最大孔徑 (Max Aperture) |
2.5 |
其他參數均為默認設置。
如果此時更新布局圖,您將會看到如下提示:
并且,如果此時點擊分析選項卡中的光線追跡 (Ray Trace),您將會得到如下錯誤提示:
在本例中,產生幾何錯誤的原因是因為我們違背了一個嵌套規則。如幫助系統 (Help System) 中“Setup Tab/Editors Group/(Setup Tab)/Non-Sequential Component Editor/Non-Sequential Overview/Object Placement”一節中的表述:表面物體不會與一個體積的表面共享一個邊界,除非體積表面的屬性是反射或者吸收,或者體積物體在非序列元件編輯器中位于表面物體之后(在這種情況下,共享邊界的屬性由體積物體定義)。
在本例中,物體8是空氣(表面屬性不是吸收或反射)與物體4的邊界重疊。我們可以將光闌(物體7和物體8)的位置遠離導光管1μm,使光闌的Z軸位置從50mm變為50.001mm。
在布局圖中可以看到,超出光闌部分的光線如我們預想的一樣被阻擋。
將光線追跡至探測器
現在,我們放置一個探測器來進行光線追跡分析。插入一個矩形探測器 (Detector Rectangle) 作為物體9:
參考物體 (Ref Object) |
-1 |
Z位置 (Z Position) |
20 |
材料 (Material) |
Absorb |
X半寬 (X Half Width) |
25 |
Y半寬 (Y Half Width) |
6 |
X像元數 (# X Pixels) |
400 |
Y像元數 (# Y Pixels) |
100 |
點擊分析選項卡中的光線追跡,勾選“使用偏振 (Use Polarization)”選項,點擊清除并追跡 (Clear & Trace)。勾選“使用偏振”是為了在計算過程中考慮由表面部分反射和體吸收所造成的能量損失。正如前文所討論的,探測器上的多個橢圓形光斑是由于光線經過不同次數的全內反射導致的。
為了觀察外R(參數1)改變時布局圖中系統的變化,我們可以使用滑塊工具,在優化選項卡中點擊滑塊,設置如下參數并點擊動畫 (Animate)。
從布局圖中可以看到系統隨彎曲半徑的變化而變化:
您可以改變參數外R的值然后重新追跡光線,觀察輻照度分布的變化。您也可以編寫一個簡單的ZPL宏將光線追跡到探測器并保存每個參數值對應的探測器分析結果。如下所示輻照度根據外R參數的變化而變化的動畫就是用這樣的宏來實現的。
復制導光管
讓我們來創建另外一個完全相同的導光管,并把它放置在與第一個導光管Y軸方向的一定距離上。
在矩形探測器后,插入一個空物體,選擇物體1(高亮顯示)并在鍵盤上按住Shift鍵并同時點擊下方向鍵,同時選擇物體1至物體9。
在選中區域內點擊鼠標右鍵并選擇復制多個物體 (Copy Objects)。
選擇物體10,再次點擊鼠標右鍵,選擇粘貼多個物體 (Paste Objects),非序列元件編輯器將如下所示:
在物體10(空物體)的參數Y位置上輸入20mm,將第二個導光管放在第一個導光管Y軸正向20mm遠的地方。同樣將物體12的參數外R的求解類型定義為拾取求解,拾取之前的矩形Torus體的參數外徑R。
現在,我們可以在布局圖中看到兩個距離為20mm的導光管了。
在本例中我們直接復制了一組物體,這是因為采用了相對物體參考,即在參數參考物體中使用負數來定義參考對象。如果我們使用全局參考,則我們需要非常繁瑣地更改第二個導光管中參考物體的編號。
參考文獻
OpticStudio Help System
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















