什麼是Zemax的Part Designer (ZPD)?


什麼是Zemax的Part Designer (ZPD)?

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
摘要:Zemax的Part designer 允許使用者在獨立於Zemax旗艦版之外的環境下,建立及操作Part Designer Object (PDO) 的幾何圖形。一些特殊功能像是“Ghost View”及即時的幾何圖形建立,能讓使用者按部就班且快速的建立、存取和變更直到最終物件設計完成。藉由ZPD提供的強化工具組,使用者可以在短時間內快速修改及加入指令或操作,以快速產生Zemax Part Object (ZPO) 的檔案。整體而言,Zemax的Part Designer(ZPD)允許使用者透過一個簡單快速的流程,將 3-D的幾何圖形整合到使用者的Zemax非序列設計。

本篇文章介紹了以下內容:
● 介紹Zemax Part Designer的使用者界面
● 建立一個Zemax基本Part Designer的物件
● 操作和檢視該物件

原文連結:What is the Zemax Part Designer?

介紹
本篇文章介紹ZPD並指導使用者如何在Zemax上建立基礎的3-D幾何圖形。使用者將會學習到一系列應用廣泛的基礎指令。在建立一個.ZPO (Part Designer 物件的附檔名) 之後,將接著引導使用者修改並查看各項指令。在本教學課程中,使用者將學習到如何在ZPD內有效率的設計幾何形狀所需的基本流程。
如下圖所示,本文將詳細介紹如何建立一個CFL燈泡:


開始進行
啟動Zemax的Part Designer,並切換到Zemax中的非序列模式。要使用Zemax物件資料夾中的範例零件或是其他.ZPO檔案,只需在非序列物件編輯器裡面“Null Object”格子上點擊右鍵。 (若是您使用OpticStudio,請左鍵點一下該物件,並在NSC編輯器視窗上方打開物件屬性編輯器)
http://forum.zemax.com/Uploads/Images/20194681-e75e-4f91-a37b-51e.jpeg
這將產生一個對話框,供使用者設定物件的屬性以及可能引用的檔案。由下拉式選單“Type”中選擇“Part Designer Object”並從“Data File”下拉式選單中選擇一個.ZPO檔案。這個下拉式選單可瀏覽預設“Part Designer Object”資料夾並列出的其中.ZPO檔案,這個資料夾可由Zemax系統設定來改變。我們將從頭開始創建一個Part Designer 的物件,所以使用一個空的物件就可以了。按下“Cancel”離開對話框。

回到在Zemax的主選單,選擇Tools… Design… Zemax Part Designer。這將會啟動ZPD並產生一個新part的視窗。(若是您使用OpticStudio,您可以直接在主視窗上方的Ribbon工具列看到Part Designer標籤。)

主視窗的左側包含Script、Sketch以及Gallery Mode標籤。Script Mode是一個程式碼編輯的控制介面,可讓使用者輸入ZPD指令。ZSCRIBE視窗正好在文字編輯控制台的下方,這個視窗會顯示與正在編輯文字列相關的指令來幫助協助使用者。要在Script Mode編輯器下建立詳細的物件,可在Script Mode的工具列按下“build” 鍵(Ctrl+ G)。主選單工具列允許檔案存取、改變系統配置(不同的視覺設定)、鏡頭控制以及插入指令等選項。所有從選單“Insert”中建立的指令都被翻譯成ZPD指令,並放置在Script Mode編輯器視窗的最後一個 “^” 符號的位置。有關選單項的詳細訊息,請參閱ZPD文建檔案。(若是您使用OpticStudio,相關的功能表功能,例如 “Insert” ,都可以在Part Designer視窗上方的工具列中找到。)

插入新的指令
使用者欲輸入指令時,可以手動透過文字編輯器輸入,由選單 “Insert” 選擇特定的選項輸入,以及利用ZSCRIBE功能。雖然選單及工具列能提供指令的簡易連結及輸入所有參數,但可能會比手動輸入指令或利用ZSCRIBE視窗慢。隨著時間的經過,使用者應該逐漸能夠手動的自行插入指令。現在點擊進入控制視窗,讓我們開始建立CFL燈泡的ZPD物件。本課程將從燈泡螺旋狀區塊的程式碼開始。能清楚的用一個一個的區塊來組織程式碼,以讓使用者能清楚閱讀是非常重要的。現在,建立一個“commented”的代碼行 (程式碼編輯器不會讀取這行代碼),我們用這一行文字定義螺旋燈泡區塊開始,例如“!BULB”。在任一行文字敘述前加上驚嘆號,可以告訴ZPD不要讀取並建立該文字敘述。由“Insert”選單加入“Spiral”指令至程式碼。

請忽略螺旋對話視窗目前的預設值,然後輸入如下圖所示的對應參數。(請注意!若是您使用OpticStudio,參數順序可能會不一樣,請確認比對)

按“OK”來插入指定的指令到Script Mode的控制介面。按“Build”保存並查看我們剛建立的螺旋。注意:“Build”也可以在選單中的 “File”找到。(若是您使用OpticStudio,您可以在Part Designer上面的工具列找到 “Build All” 的按鈕。

所有新的幾何形狀都有他們的“Lengths”,此長度定義與+ Z軸平行。我們現在有燈泡的基礎形狀了,一個節能燈泡由通過圓筒形管(A)連結的兩個螺旋部分。如下圖所示,燈泡被連接到通過兩個支撐點(B)中的塑膠。

圖一圓柱管(A)

圖二,圓形支撐點(B)

建立支撐點
所有新的幾何形狀在建立時都是沿Z軸對齊,如果我們使用“Move”的指令,它會更容易讓初始螺旋形狀的底部與我們的支撐點結合。要移動一個指定的對象,到 “Insert” -> “Operations” -> “Move” ,並輸入以下數值。(若是您使用OpticStudio,您可以在工具列中的 “Translate” 按鈕找到這些指令插入。)

現在,建立以下支撐點的單邊的形狀:


建立元件。注意:在使用“Insert”選項之前,請確保控制介面目前正在輸入新的空白行,若不是,請把指標移到新的一行來確保。(若是您使用OpticStudio,只要把指標留在最後一行即可,Part Designer現在預設會自動往下一行插入。)
雖然在一個固定常數值上再乘以1.05可能看起來很不必要,但讓一個將套用布林運算的物件包含一個縮放可能是必要的。例如:支撐點將與螺旋部分(徑向厚度0.4)互相重疊。如果沒有調整,支撐點的徑向厚度將與螺旋狀物件相同。這兩個部分將會出現彼此重疊、貼齊的表面。轉換幾何圖形成其他3D格式後,表面完全重疊會產生不可預期或不希望看到的結果。因此,貼齊 / 相切的面和邊緣,可透過給建立的物件一個輕微的偏移來避免。
使用者也可能會注意到,有些相同的值被多次使用,例如偏移值和螺旋的徑向厚度值。使用者可以將使這些值設定為預設參數。預先分配這些常用的參數可以減少混亂,並允許在未來使用這些參數時能簡單的修改所有的指令。現在讓我們為第一個螺旋輸入以下的指令,並以適當的參數替換所有的值。

建立程式碼
http://forum.zemax.com/Uploads/Images/f1e1ce3f-d528-4daf-90de-665.jpeg
控制台現在應該看起來像這樣:
!BULB
PARAMETER offset, 1.05
PARAMETER bulbRad, 0.4
PARAMETER rad, 2.0
SPIRAL Spiral1,bulbRad,rad,rad,3,2.0
MOVE Spiral1, -2.0,0,0.60
CYL cylBulbBase,bulbRad*offset,0.6
SPHERE bulbBase,bulbRad*offset

點擊每個單獨的行,使用者可以分別查看每個指命。透明鬼影物件 (transparent ghost objects) 象徵先前每個指令與相關聯的物件。在目前的系統配置下,ZSO編輯器無法一次查看全部的內容。有兩種方法可以修正這個狀況:
1) 到“Preferences”-> “Options”,在“Ghost View”啟動“Show All Steps.”。選擇此設定可能對於決定在那裡放置新的或是現在的物件有幫助。

相反,使用這種設定也將如下圖所示在螢幕造成混亂。Ghost settings可隨時被切換及調整。


2) 要查看所有必需的部件,最好的方法就是先合併或將相關指令以布林結合起來。例如:我們知道,球體和圓柱體將合併以建立一個支撐點,其結果元件會與螺旋物件結合以建立一個螺旋形狀並連接到一個圓形支撐點。
通過先宣告布林集合:
UNION bulbBaseround,bulbBase,cylBulbBase
UNION SpiralOneSide,Spiral1, bulbBaseround

在程式碼的結尾,我們可以看到這些部件,並且輕鬆地根據需要調整之前的指令。通過先行宣告這樣的敘述,ZPD就能確切地知道什麼形狀將與後續動作有關,而不會把它們排除在渲染過程之外。知道何時何地可以事先宣告這些指令將能在Part Designer中,顯著的提高設計的效率。
產生的結果如下圖所示:

文字控制介面看起來應該像這樣:
!BULB

PARAMETER offset, 1.05
PARAMETER bulbRad, 0.4
PARAMETER rad, 2.0

SPIRAL Spiral1,bulbRad,rad,rad,3,2.0
MOVE Spiral1, -2.0,0,0.60
CYL cylBulbBase,bulbRad*offset,0.6
SPHERE bulbBase,bulbRad*offset

UNION bulbBaseround,bulbBase,cylBulbBase
UNION SpiralOneSide,Spiral1, bulbBaseround

現在,球體“bulbBase”需要被定位在螺旋狀物的底部,這時就是ZPD的“Ray”計算指令派上用場的時候。請在Script View Console中,點擊一下最新插入的Union指令前一行的空行。
由主“Insert”選單選擇“Ray”計算指令:

這條特定的光線會由(0, 0, 1)射出,在自由空間延著負Z軸,朝著支撐點的圓柱體區塊前進。也許其中圓柱體的端點和中間點明顯可見;但這邊主要是為了展示光線計算 (Ray Computation) 的使用。執行此計算將建立3個新的參數:<DataTitle>.X,<DataTitle>.Y和<DataTitle>.Z。需要注意的是X,Y和Z必須是大寫。三個數據點代表射出光線和物件之間交叉點的3-D座標。在這個例子中,這些參數會回到接點位置,我們將會把球體放在這個位置。請插入一個新的指定 “Position” ,並使用這些新的資料參數作為Origin的XYZ座標。

這兩個行動的結果將產生兩個新的指令:
!RAY POSITIONING
RAY bulbBasePlacement,0,0,1,0,0,-1,cylBulbBase
POSITION bulbBase,bulbBasePlacement.X,bulbBasePlacement.Y,bulbBasePlacement.Z,0,0,1

完成燈泡
現在我們要將產生的物件移至中心的原點上然後複製它。使用COPY指令複製原有零件,並在同一地點建立新命名的實體。為了獲得所需的螺旋效應,必須建立兩個螺旋成為一個集合,且其中一個螺旋的方向是相反的。基本的鏡像操作不能被用在這個例子中,因為物件需要沿X軸和Y軸進行翻轉。
要執行此動作,我們使用SCALE指令:

所得形狀沿著Z軸保持其大小和形狀,但沿著X和Y軸翻轉。
根據前面的UNION指令,產生的程式碼如下:
!DUPLICATE BULB
MOVE SpiralOneSide,2,0,0
COPY SpiralOtherSide, SpiralOneSide
SCALE SpiralOtherSide,-1,-1,1
UNION Bulb, SpiralOtherSide, SpiralOneSide


最後,為了完成燈泡,必須在燈泡的兩端之間建立橋樑。
這透過與支撐點類似的方式完成,指令如下:
!BULB BRIDGE
SPHERE bulbTip0,bulbRad*offset
CYL bulbTipCon,bulbRad*offset,4
UNION bulbTip1, bulbTipCon,bulbTip0
SPHERE bulbTip2, bulbRad*offset
MOVE bulbTip2,0,0,4
UNION bulbTipFin, bulbTip2,bulbTip1
POSITION bulbTipFin,-2,0,6.61,1,0,0
UNION finalCFLBulb,bulbTipFin,Bulb

Position指令(POSITION bulbTipFin,-2,0,6.61,0,0)的Z坐標(6.61)藉由將初始螺旋指令的間距(2.0)乘上圈數(3),然後再加上一個基於徑向厚度的偏移量。這種方法是不精確的,因此,需要時請連點最後零件的特定元件,以查看和微調整連結的定位。要改變現有的ZSO指令,以左鍵按下問題的指令,然後按下右鍵。這應該會產生一個對話視窗,以供使用者重新設置指令並將現有值設定為參數。按下“OK”來替換當前的指令。
所產生的燈泡如下所示:


底座
CFL燈泡的底座是由各種圓柱體及其他形狀集合而成的。
燈泡端蓋:
在原點建立一個小圓柱體。如果計畫在平面中心的原點使用MIRROR指令,基礎物件必須先偏移。
http://forum.zemax.com/Uploads/Images/21a2736e-b8b5-4dee-b826-682.jpeg

!BULB END CAPS
CYL bulbPlasticBase, bulbRad+0.1, 0.3
MOVE bulbPlasticBase, -2,0,0
MIRROR bulbPlasticBase,0,0,0,1,0,0
UNION finalB0, finalCFLBulb, bulbPlasticBase

剩餘的燈泡基座:
所述基座的其餘部分是由多種圓錐體,圓柱體,和球體所集合成形。以下是用於基座部分剩餘的ZPD指令:
!CFL BASE
CYL cflPlasticBase, 2.7,2
MOVE cflPlasticBase, 0,0,-2
CONE cflPlasticBase1,1,2.7,2.2
MOVE cflPlasticBase1, 0,0,-4
UNION cflPlasticBaseFin, cflPlasticBase1,cflPlasticBase
FILLET cflPlasticBaseFin,0.05
CYL metalConnect, 1,2
MOVE metalConnect, 0,0,-5.5
SPHERE conductor,1.0*0.9
MOVE conductor, 0,0,-4.5-(1.0*0.9)
UNION contact,conductor,metalConnect
UNION wholeBase,cflPlasticBaseFin,contact
UNION cflTotal, wholeBase, finalB0
請僅注意那些不互相貼齊的“集合”的表面。舉例來說,cflPlasticBase1(CONE指令)設定長度為2.2單位,而不是2.0單位,接著其沿負Z軸移動了4個單位,以遮住cflPlasticBase,並建立幾何圖形之間的重疊。

透過把整個物件對X軸轉動-90度來完成整個物件。該CFL燈泡現已完成!


結論
本文說明了下列資訊:
● Zemax Part Designer的基本介紹
● 建立一個基本的ZPD在Zemax中使用
● 操作和檢視物件
● 完成的 .ZPO檔案可以在Zemax OpticStudio 旗艦版被用於任何非順序列應用。

GO


Similar Topics


Login
Existing Account
Email Address:


Password:


Select a Forum....























































Zemax Users Forum


Search