allegro skill選擇和獲取函數
對Allegro中的對象進行操作,比如移動、刪除,都需要先選擇和獲取該對象的dbid。選擇操作包含一些選擇設置比如是隻選擇Symbol還是Symbol和Via都可以選等等,然後通過axlSelect 相關函數來選擇具體的對象,然後是axlGetSelSet函數來得到那些被選擇的dbid。
AXL-Skill函數支持多種選擇的方式,比如單選擇一個對象,或者是框選多個對象,又或者說是使用Temp Group的方式來選擇多個對象,不過通常對象只有在當前可見(Visible)的情況下才可
以被選擇上(除非設置了invisible選項)。
選擇設置和被選擇了對象的有效性會一直持續到用戶使用其它的系統命令,比如allegro的Add Cline命令,因爲allegro的命令將會改變一些系統的dbid,所以的Skill之前獲取的bdid都會變成無效的(removed)。
通常的選擇和獲取操作如下,
設置Find Filter來控制將要被選則的對象類型;
選擇對象的三種模式:單選,多選或通過名字來選擇;
從被選擇的對象中添加和移除對象
3.1 Find Filter設置函數
函數定義axlSetFindFilter(?enabled lt_enabled ?onButtons lt_filterOn) 功能:該函數最直觀的理解是,它可以設置allegro的Find Filter。
參數:
lt_enabled,該參數將決定哪些Find Filter中的元素可以被選擇;
lt_filterOn,該參數將決定可以被選擇的元素中,哪些已經被選中了。
參數支持的類型如下:
"PINS","VIAS","CLINES","CLINESEGS","LINES","LINESEGS","DRCS","TEXT","SHAPES","SHAPESEGS","BOUNDARY_SHAPES","VOIDS","VOIDSEGS","SYMBOLS","FIGURES","COMPONENTS","FUNCTIONS","NETS","INVISIBLE","NAMEFORM","ALLTYPES","ALL","DYNTHEMALS","GROUPS","GROUPMEMBERS""DYNTHEMALS","GROUPS","GROUPMEMBERS"
用法示例:
axlSetFindFilter( ?enabled list( "vias" "pins" "nets") ?onButtons list( "vias" "pins")) =>
設置Find Filter中的vias,pins,nets爲可以被選擇的,而其它的選項將被設置成不可操作的,默認選擇了vias和pins。
3.2 點選函數
axlSingleSelectPoint() => 運行該命令之後,allegro將提示你點選一個design中
的對象。
axlAddSelectPoint()
axlSubSelectPoint()
3.3 框選函數
axlSingleSelectBox() => 在allegro中框選
axlAddSelectBox()