实例
实例1
(defun showElement ()
mypopup = axlUIPopupDefine(
nil
(list
(list "Done" 'axlFinishEnterFun)
(list "Cancel" 'axlCancelEnterFun)
)
)
axlUIPopupSet( mypopup)
axlSetFindFilter( ?enabled list( "NOALL" "ALLTYPES" "NAMEFORM") ?onButtons "ALLTYPES")
while( axlSelect()
axlShowObject( axlGetSelSet() )
)
)
实例2
(defun DelElement ()
let ((mypopup)
"Delete selected Objects"
mypopup = axlUIPopupDefine(
nil
'(
("Done" axlFinishEnterFun)
("Cancel" axlCancelEnterFun)
)
)
axlUIPopupSet(mypopup)
axlSetFindFilter(?enabled '("ALL" "EQUIVLOGIC") ?onButtons '("ALL"))
while( axlSelect()
axlDeleteObject(axlGetSelSet())
)
axlUIPopupSet( axlUIPopupDefine(nil nil))
)
)
实例3
(defun showText ()
"Print text of selected objects"
mypopup = axlUIPopupDefine( nil
(list
(list "Done" 'axlFinishEnterFun)
(list "Cancel" 'axlCancelEnterFun)
)
)
axlUIPopupSet( mypopup)
axlSetFindFilter(
?enabled list("noall")
?onButtons "noall"
)
axlSetFindFilter(
?enabled list("symbols")
?onButtons "symbols"
)
axlOpenFindFilter()
(while (axlSelect)
progn(
alltext = axlDBGetAttachedText(car(axlGetSelSet())
)
foreach(thistext alltext
printf( "Text on this symbol is : '%s'\n", thistext->text)
)
)
axlCloseFindFilter()
)
实例4
(defun showPad ()
mypopup = axlUIPopupDefine(
nil
(list
(list "Done" 'axlFinishEnterFun)
(list "Cancel" 'axlCancelEnterFun)
)
)
axlUIPopupSet( mypopup)
axlSetFindFilter(
?enabled list("noall")
?onButtons "noall"
)
axlSetFindFilter(
?enabled list("pins" "vias")
?onButtons list("pins" "vias")
)
(while axlSelect()
progn(
mypad = axlDBGetPad(
car(axlGetSelSet())
"etch/top"
"regular"
)
printf( "Pad figure type : %s\n", mypad->figureName)
)
)
实例5
(defun showPad ()
mypopup = axlUIPopupDefine(
nil
(list
(list "Done" 'axlFinishEnterFun)
(list "Cancel" 'axlCancelEnterFun)
)
)
axlUIPopupSet( mypopup)
axlSetFindFilter(
?enabled list("noall")
?onButtons "noall"
)
axlSetFindFilter(
?enabled list("pins" "vias")
?onButtons list("pins" "vias")
)
(while axlSelect()
progn(
mypad = axlDBGetPad(
car(axlGetSelSet())
"etch/top"
"regular"
)
printf( "Pad figure type : %s\n",mypad->figureName)
)
)
实例6
(defun axlMyCancel ()
axlClearDynamics()
axlCancelEnterFun()
axlUIPopupSet(nil)
)
(defun axlMyDone ()
axlClearDynamics()
axlFinishEnterFun()
axlUIPopupSet(nil)
)
mypopup = axlUIPopupDefine(
nil
(list
(list "MyCancel" 'axlMyCancel)
(list "MyDone" 'axlMyDone)
)
)
axlUIPopupSet( mypopup)
; Clear the dynamic buffer
axlClearDynamics()
; Clear mypath to nil, then loop gathering user picks:
mypath = nil
while( (mypath = axlEnterPath(?lastPath mypath))
progn(
axlDBCreatePath(mypath, "etch/top")
)
)
实例7
(defun highlightLoop ()
mypopup = axlUIPopupDefine(
nil
(list
(list "Done" 'axlFinishEnterFun)
(list "Cancel" 'axlCancelEnterFun)
)
)
axlUIPopupSet( mypopup)
axlSetFindFilter(
?enabled '("noall" "alltypes" "nameform")
?onButtons "alltypes"
)
(while (axlSelect)
progn(
axlHighlightObject( axlGetSelSet())
; Just a dummy delay to see what happens
sum = 0
for( i 1 10000 sum = sum + i)
axlDehighlightObject( axlGetSelSet())
)
)
POPUP API
创建POPUP菜单ID
axlUIPopupDefine(
r_popup
ts_pairs
) ⇒
r_popup/nil
; skill load( "sgDynamicDemo.il" )
defun(myCompleteFun ()
axlUICmdPopupSet( nil )
axlFinishEnterFun()
)
defun(myCancelFun ()
axlUICmdPopupSet( nil )
axlCancelEnterFun()
)
defun(axlMyRotate ()
println( "it is rotate operation" )
)
defun(axlMySomething ()
println( "it is something operation" )
)
defun(sgPopupDemo ()
parent = myPopUp = axlUIPopupDefine(
nil
(list
(list "ParentComplete" 'myCompleteFun)
(list "ParentRotate" 'axlMyRotate)
(list "ParentSomething" 'axlMySomething)
(list "ParentCancel" 'myCancelFun)
)
)
; 在父亲基础上新增item
myPopUp = axlUIPopupDefine(
parent
(list
(list "Complete" 'myCompleteFun)
(list "Rotate" 'axlMyRotate)
(list "Something" 'axlMySomething)
(list "Cancel" 'myCancelFun)
)
)
axlUICmdPopupSet( myPopUp )
)
设置POPUP菜单
创建POPUP菜单,使用该函数可以修改axlUIPopupSet
行为。
axlUICmdPopupSet(
r_popup ; 由axlUIPopupDefine创建
) ⇒
r_prevPopup
事件设置
axlEnterEvent(
l_eventMask
t_prompt
g_snap
) ⇒
r_eventId
设置Popup回调函数
在Popup显示前设置回调函数,允许AXL应用程序复位Popup。回调函数是一个列表,与axlEnterEvent
类似。当AXL应用程序启动时,设置回调函数;结束时,移除回调函数。
axlEventSetStartPopup(
[s_callback]
) ⇒
t/nil
实例
(defun startpopupcallback (event)
...
newpopup = get a new popup based on event x,y values
axlUIPopupSet(newpopup)
)
axlEventSetStartPopup('startpopupcallback)
...
let( (eventMask event, loop)
eventMask = list( 'PICK 'DBLPICK )
loop = t
while( loop
event = axlEnterEvent(eventMask, nil)
case(event->type
('PICK
...
)
('DBLPICK
...
)
('DONE
loop = nil
)
('CANCEL
loop = nil
)
)
)
...
axlEventSetStartPopup()