如何使用AssemblyLink物件


如何使用AssemblyLink物件

Author
Message
Zemax_Taiwan
Zemax_Taiwan
Forum Member
Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)

Group: Administrators / Zemax Staff
Posts: 215, Visits: 2.2K
摘要:此篇文件解釋如何在 OpticStudio 中動態的開啟SolidWorks®、Autodesk Inventor® 以及 PTC Creo Parametric® 的組件檔。
原文作者:Dr. Sanjay Gangadhara,由Kristen Norton維護更新
原文出版日期:2016.7.20
範本檔案:附件下載
原文連結:How to Use the AssemblyLink Object

介紹
OpticStudio可支援動態連結到數種CAD軟體的零件檔與組件檔 (SolidWorks 2009以上版本;Autodesk Inventor® 2013 以上版本;Creo Parametric® 2.0 以上版本)。動態連結讓使用者可以用OpticStudio連動這些CAD軟體,讀入及修改零件檔的原生格式(請看詳文 “如何使用PartLink物件”)。
類似的,在SolidWorks、Autodesk Inventor、PTC Creo Parametric中建立的組件檔 (Assembly) ,也可以透過動態連結在OpticStudio裡直接被讀取。在讀取組件檔時,OpticStudio假設每個組件中的獨立零件都是不需要再修改的完成品,這也是通常一個組件在CAD程式內被設計出來時的情況。因此,OpticStudio一開始會將組件以單一檔案的方式加載。
然而,如果該組件在OpticStudio視為單一物件,此整個組件就只能被賦予一種內部特性 (例如構成的塑膠材料、以及體散射特性等等)。此外單一組件上可以分配的表面特性數量也會被限制,這是因為CAD檔中的每個物件表面都可以指定一個特性 (薄膜塗層、表面散射等),而同一個物件上最多只能被指定51種不同的表面屬性。
此時解決的方法即是拆散 (break-up) 或是炸開 (explode) 集合到組成的零件。然後,每一個零件或許會被分配到獨特屬性。在這篇文章,我們將會回顧如何透過一個CAD Assembly物件載入一個組件檔案到OpticStudio裡,以及如何炸開組件到它的組成的零件。

載入一個組件檔
使用此功能需要的第一步驟是安裝SolidWorks® (SW)、Autodesk Inventor® (AI)、和/或 Creo Parametric® (CP):
● 需安裝SolidWorks 2009 或更新版本,才能使用 “CAD Part: SolidWorks” 物件,以動態連結到SolidWorks 零件檔 (*.SLDPRT)。
● 需安裝Autodesk Inventor 2013 或更新版本,才能使用 “CAD Part: Autodesk Inventor” 物件,以動態連結到 Autodesk Inventor的零件檔 (*.IPT)
● 需安裝 Creo Parametric 2.0 或更新版本,才能使用 “CAD Part: Creo Parametric” 物件,以動態連結到 Creo Parametric 的零件檔 (*.PRT)。
*注意:Zemax技術支援範圍不包含SW 、 AI 或CP 的安裝。在使用PartLink之前,其一的程式需被正確地安裝,且須手動開啟程式。你只需要開啟SW, AI 或 CP程式;但不需要開啟將使用的零件檔。

當使用CAD Part: SolidWorks 或 CAD Part: Creo Parametric開啟一個零件檔時,相對應的程式必須事先打開執行,並且必須一直開著,直到OpticStudio運行結束,以保證OpticStudio與相對應CAD軟體之間的通訊不中斷。

但如果是使用CAD Part: Autodesk Inventor來開啟IPT零件檔,Autodesk Inventor 則不需要事先開啟,此時OpticStudio會自動以背景模式開啟Autodesk Inventor,這代表你不會看到Autodesk Inventor出現在你螢幕中的任何地方,但可以在工作管理員中確認其正在運行。只要OpticStudio還在運行,這個程序就必須持續運作,不能關閉,以保證OpticStudio與Autodesk Inventor之間的通訊無礙。所有這些情況,都需要確保OpticStudio與相關程式通訊順暢,以順利讓OpticStudio修改已經載入的零件檔。

Autodesk Inventor 範例
在此範例中,我們將開啟一個在Autodesk Inventor裡創建的組件檔案。此檔案及其中的組合零件檔案包含文章最後的附件。此檔案由一位在Inventor 3d (http://inventor3d.blogspot.it/) 任職的工程師所創建的,免費從CAD代理商網站GrabCad (www.grabcad.com) 所獲得。
請留意,為正確將組件加載到OpticStudio,OpticStudio必須同時取得所有組件組合所需的組件檔案和零件檔案。這些檔案必須在同一個文件夾裡(更詳細的訊息如下)。假如一些零件檔案遺失,組件仍會被現存的零件所建造 (假如OpticStudio無法找到組件的任何零件檔案,錯誤訊息將會跳出)。因此須由使用者來確保組件的正確性。
此範例選用的組件檔案,表現出一個崁入在膠體中的長絲型光源。下圖是這個組件檔在Autodesk Inventor中檢視的樣子:


載入這個組件到OpticStudio,首先我們需要把組件 (.IAM) 檔及組成的零件 (.IPT) 檔案放置到適合的文件夾。Autodesk Inventor檔案預設文件夾是 “\Documents\Zemax\OBJECTS\Inventor Files\” 。使用者可以自訂這個文件夾位置,可以在在Ribbon工具中的 ”Setup > Project Preference” 中的Folders區塊中自訂 。


請注意SolidWorks、Creo Parametric以及Autodesk Inventor各有各的資料,不能搞混。

組件檔案被放在正確的文件夾後,我們就可以在OpticStudio的非序列元件編輯器中開啟。讓我們一步一步操作,首先打開OpticStudio並開啟非序列元件編輯器,展開Object Properties並在Type欄位的下拉式選單中選擇 “CAD Part: Autodesk Inventor®”:


選擇我們的*.IAM組件檔,然後點擊OK:
http://forum.zemax.com/Uploads/Images/c6a39480-a65f-4279-9c6e-06f.jpeg

注意所有副檔名是*.IAM的組件檔 (並且要放在正確的資料夾) 都可以被選擇。點擊一下OK後,你會看到以下訊息,表示Autodesk Inventor正在被系統開啟,稍後組件將會被讀入OpticStudio:
http://forum.zemax.com/Uploads/Images/fdc68429-d1ca-41fb-b4e0-4d0.jpeg

炸開組件
一旦組件檔案被加載,OpticStudio將會自動地詢問你是否希望炸開組件到所屬組成零件:
http://forum.zemax.com/Uploads/Images/3b5baf0d-aedb-4f23-bccc-f82.jpeg

假如你選擇視窗上的 “否” ,組件將單純的以單一檔案形式被讀取。假如你隨後希望炸開此組件,只要選擇編輯器中的CAD Assembly物件,並從NSCE選單中選擇“Explode Inventor Assembly”功能就可以再次炸開:


為了使用正確的CAD工具,必須在編輯器中選擇相對應的工具,例如如果我們要炸開CAD Assembly: SolidWorks,就要在選單中選擇 "Explode SolidWorks Assembly" 工具。
假如你在上方對話框裡選擇 “是” ,或是隨後從NSCE工具選單裡選擇“Explode Inventor Assembly”,你將會看到以下對話框:
http://forum.zemax.com/Uploads/Images/9c9bed86-c3df-43a4-9d30-17b.jpeg

選擇“Get Part Count”按鈕將會顯示組件裡的組合零件數量以供參考:
http://forum.zemax.com/Uploads/Images/a00517f9-9bb8-4554-b2d7-451.jpeg

而選擇“Explode”按鈕,便會將組件拆開為組合零件。在點選Explode之後,所有其他按鈕就無法再次選取,你會看到Please Wait…的訊息顯示在視窗中,請稍待片刻:
http://forum.zemax.com/Uploads/Images/6c8649c5-c3a9-4170-820e-32b.jpeg

炸開此零件完成後,這些按鈕會再次回覆,選擇Exit關閉視窗,就可以看到下列結果:


注意每個組成的零件被寫成一個OpticStudio物件格式檔案(.ZOF),並透過 “CAD零件: STEP/IGES/STL” 物件來加載到OpticStudio。因此,在OpticStudio中,這些組成零件的外型都是固定無法更動的。如我們前面的說明,組件裡面的零件都是預期不需要進一步修正的。

假如你想要建立一個組件,但其中的零件可動態地調整,你需要單純的分批載入每個單一零件到OpticStudio,透過PartLink來執行(請讀文章題名“如何使用PartLink 物件” 來取得更多資訊)。

炸開後,透過“Ref Object”欄位,每一個構成零件的位置及方向都會參考到母組件 (請在Help中搜尋Reference Objects條目,以取得更多資訊)。雖然母組件依舊存在編輯器中,但這個物件將被光線忽略,如下圖:


可以看到炸開後, "Rays Ignore Object" 被自動設定為 “Always”。此外,到Object Properties中的Draw區塊看的話,可以看到母組建物件不會在3D Layout或是Shaded Model中顯示:
http://forum.zemax.com/Uploads/Images/657e9eac-4b25-48b4-a02b-30f.jpeg

因此,相對於原先的組件,組成零件中僅保留有意義的物件,而CAD組件物件單純作為座標參照用。假如不須這個組件座標參考,你可以在炸開時,選擇刪除炸開後的組件,如下圖。
http://forum.zemax.com/Uploads/Images/e219b0f2-d378-4a8a-ab09-30e.jpeg

因此隨後的NSCE會像這樣:

每一個組成零件的位置及方位依舊參考到母組件,但組件本身已被Null物件所取代。
刪除炸開後的組件有兩個好處:
(1) 檔案的佔據的記憶體量比較少,假設初始的組件很大且電腦記憶體不足,這將會是一個問題;
(2) 檔案不再需要再動態連結到Autodesk Inventor (或是適合其他類型的AssemblyLink物件之CAD程式),系統狀態更新時可增加速度 (如在優化時)。

然而,假如母組件隨後被原始CAD軟體再次修正 (在這個例子中是Autodesk Inventor),這些修正將不會被OpticStudio讀取到,因為母組件在炸開後已被刪除,對這些程式而言連結已經遺失。因此,雖然這個母組件在OpticStudio並不會真的被光線追跡,保留這些檔案在編輯器中,可以確保如果這個組件檔有任何改變,仍可以在下次開啟包含這些炸開組件的OpticStudio檔案時能讀取到最新的改變。

定義組件的屬性
現在,組件已經被炸開,燈絲源及膠體可以被分配到不同的屬性。舉例來說,我們可以指定膠體 (NSCE內的object #2),由聚碳酸酯所製成(polycarbonate)(從Misc 玻璃目錄中使用POLYCARB):


燈絲 (NSCE內object #3) 可被定義為金屬反射,只要兩個步驟:
(1) 把燈絲幾何形狀所有的面群組為單一表面。首先打開物件3的Object Properties視窗,選擇 “Select All” 按鈕,接著在右邊下拉式選單中選擇 Face 0,最後點選“Change To->”按鈕,這樣就可以把此CAD檔上的所有表面都設定為Face 0:


(2) 然後我們就可以在Object Properties的Coat/Scatter區塊中,指定物件3的Face 0的標籤的鍍膜與散射屬性。我們把Face Is 設為Reflective,把Coating設為METAL:


名稱為METAL的這個膜層,在OpticStudio中的定義是一層薄的鍍鋁層,這個設定常被用在分光器 (beam splitter) 上。此外,Face Is被設為Reflective,這讓OpticStudio只考慮反射部分的光線。如果這裡被設為 “Object Default” 的話,打到Face 0上的光線會依據構成這個CAD的材料設定來決定要折射、反射還是吸收。
在現實中,燈絲及膠體的物理屬性或許比程式裡的更為複雜。舉例來說,光或許會在這些物件的表面上散射,並且是一個複雜的表面散射。假設每一個物件的散射分佈都可被各自量測 (使用像是IS-SA Imaging Sphere的設備量測),則此檔案透過BSDF散射模型可以直接被OpticStudio所使用。有關此BSDF模型更多的資訊,請閱讀文章標題“How to Use Tabular BSDF Data to Define the Surface Scattering Distribution”.

光線追跡
我們可以放置一個燈絲光源物件到系統裡,來模擬從CAD燈絲中所產生的光線。
我們必須使用“Inside Of”欄位,定義此光源物件是在膠體裡面,:


為配合CAD定義的燈絲屬性:
1. 設定光源的Z Position為 13.5 mm、Layout Rays 為 100、Analysis Rays為100萬:


2. 選擇燈絲Length (長度) 為4.5 mm,Radius (半徑) 為1.15 mm,Turns為15:


在上面的螢幕截圖中可以看到,在NSC 3D Layout中,Source Filament被高亮顯示為橘色,而你可以看到燈絲的外型包圍在原本的CAD外型上。要在NSC 3D Layout中看到如上圖的結果,要在NSC編輯器中選擇 “Ignore Trace Error”。這將會停止顯示任何在Layout顯示功能中的光線錯誤訊息。即使是正確的系統,也可能因為有限的電腦精度或是一些其他的小問題而會有一些錯誤光線,並且對於匯入的CAD檔案來說,這是一個常有的事情。

3. 透過色溫來定義燈絲光譜的分佈,我們在物件4的object properties中的Source區塊設定。在 Color/Spectrum設定區中,選擇Color Temperature,並輸入 6500K

更多關於這個光源頻譜設定的詳細內容,請見文章標題“How to Model Colored and Tristimulus Sources

現在,增加一個遠場探測器來取得從光源發出的光線。我們將使用Detector Color物件 (增加object #5),接著:
1. 設定Z軸到500 mm
2. 設定Material 為 ABSORB
3. 設定X及Y半寬度為2000 mm
4. 設定# X Pixels 及# Y Pixels到100

欲看到在這個探測器上的照度分布,我們必須要追跡光線。工具的位置在Analyze Ribbon,請打開Ray Trace Control。使用下列設定,並選擇Clear & Trace,從光源追跡1億光線:
http://forum.zemax.com/Uploads/Images/c39cf5a0-daa3-42a5-905f-bad.jpeg

追跡完後,點一下Exit按鈕已關閉追跡視窗。我們在探測器上找到如下的結果,這是一個燈絲光源從此CAD物件中發光所得的遠場分布:


這個模型會對燈絲及膠體的材料與表面屬性設定較為敏感。在這個範例中,擁有此光源的物理模型 (如CAD定義的燈絲等),如果有任何光線被反射到這個光源,我們可以精準地描述發射的光與實際光源物體之間的相互作用。

總結
CAD 組件物件允許OpticStudio動態連結不同的CAD程式,像是SolidWorks、Autodesk Inventor、PTC Creo Parametric,並可直接讀取這些程式所製成的組件檔案。匯入這些組件時,可以選擇要是否炸開成OpticStudio內的組成零件,讓每一個零件可以被分配到個別的材料屬性。讓OpticStudio執行光線追跡時,可以正確地處理組件性質。

GO


Similar Topics


Login
Existing Account
Email Address:


Password:


Select a Forum....























































Zemax Users Forum


Search