2020年6月30日 星期二

如何取出具有相同性質的多個物件名稱

一個HFSS設計通常包含多個幾何模塊,這些模塊不僅拓樸結構不一樣。材料也不盡相同。如圖一。假設程式設計需要挑選出具有相同性質的模塊來編輯,程式碼該如何編寫?

(圖一) 不同拓樸結構與材料的模塊

這裡的性質可以是拓撲結構(點、線、面、三維),位置(高度),材料,顏色,尺寸,群組等等。舉例來說,具備同樣拓撲結構的物件名稱可以透過內建的函式GetObjectsInGroup()得到:

solids = oEditor.GetObjectsInGroup('solids')
AddWarningMessage(str(solids))
sheets = oEditor.GetObjectsInGroup('sheets')
AddWarningMessage(str(sheets))
lines = oEditor.GetObjectsInGroup('lines')
AddWarningMessage(str(lines)) 

(圖二) 輸出之3D結構,平面及線的物件名稱
或屬於同一類的材料:

coppers = oEditor.GetObjectsInGroup('copper')
AddWarningMessage(str(coppers))
tins = oEditor.GetObjectsInGroup('tin')
AddWarningMessage(str(tins))

(圖三) 對應到不同材料的物件名稱

如果用滑鼠依序點選了多個物件,如圖四,接下來想啟動程式來對這些選中的物件做運算,可以用函數GetSelections()取得這些物件的名稱。list當中物件名稱的排列順序與滑鼠點選順序相同,如圖五。

sels = oEditor.GetSelections()
AddWarningMessage(str(sels))

(圖四) 點選物件順序

(圖五) 輸出順序與點選順序相同

沒有留言:

張貼留言