注册自定义命令(快捷键)
RegisterAction <Label> <Enabler> <Accel> <Callback> <ViewType>
Label
在原理图页面中:右键——more——显示的标签
Enabler
使能
Accel
快捷键
Callback
调用的过程,即快捷键按下后调用的过程
ViewType
视图.有效值为: Schematic, PM, NULL,一般选Schematicc
注册 在Accessory菜单下的菜单/子菜单
RegisterAction "_cdnCapTclAddPageCustomMenu" "::capMenuUtil::capTrue" "" "::capMenuUtil::addPageAccessoryMenu" ""
示例代码如下:
#/
# WARRANTY: NONE. THIS PROGRAM WAS WRITTEN AS "SHAREWARE" AND IS AVAILABLE AS IS
# AND MAY NOT WORK AS ADVERTISED IN ALL ENVIRONMENTS. THERE IS NO
# SUPPORT FOR THIS PROGRAM
# NOTE: YOU ARE STRONGLY ADVISED TO BACKUP YOUR DESIGN
# BEFORE RUNNING THIS PROGRAM
# TCL file: capMenuUtil.tcl
# contains OrCAD Capture Menu utlities
#
# You can run the script in the Capture TCL command window .
#/
package require Tcl 8.4
package require Placeoffpage 1.0
package provide capMenuUtil 1.0
package provide submenus 1.0
namespace eval ::capMenuUtil {
}
#创建页面级菜单
#命令形式:
#AddAccessoryMenu "offpage" "LE" "::capMenuUtil::OpenPageoffLE"
#offpage:Accessory菜单下的标签
#LE:为offpage菜单下的标签
#::capMenuUtil::OpenPageoffLE:为点击菜单后调用的过程,即想自动完成的操作。
#
proc ::capMenuUtil::addPageAccessoryMenu { } {
# AddAccessoryMenu <User menu under Accessories> <SubMenu under user menu> <TCL callback #handler with 2 parameters pPage and pOcc>
AddAccessoryMenu "offpage" "LE" "::capMenuUtil::OpenPageoffLE"
AddAccessoryMenu "offpage" "LS" "::capMenuUtil::OpenPageoffLS"
AddAccessoryMenu "offpage" "RE" "::capMenuUtil::OpenPageoffRE"
AddAccessoryMenu "offpage" "RS" "::capMenuUtil::OpenPageoffRS"
}
#创建设计级菜单的过程,与页面级界面的形式一样。
#
proc ::capMenuUtil::addDesignAccessoryMenu { } {
# AddAccessoryMenu <User menu under Accessories> <SubMenu under user menu> <TCL callback #handler with 1 parameter pLib>
AddAccessoryMenu "offpage" "Design in L" "::capMenuUtil::OpenDesignNotepad"
}
#调用的TCL过程,即实际要完成的功能过程
proc ::capMenuUtil::OpenPageoffLE { pPage pOcc } {
#实际要进行的操作
POPLE
}
proc ::capMenuUtil::OpenPageoffLS { pPage pOcc } {
POPLS
}
proc ::capMenuUtil::OpenPageoffRE { pPage pOcc } {
POPRE
}
proc ::capMenuUtil::OpenPageoffRS { pPage pOcc } {
POPRS
}
proc ::capMenuUtil::OpenDesignNotepad { pLib } {
exec "C:/WINDOWS/system32/notepad.exe"
}
#使能过程
#
proc ::capMenuUtil::capTrue { } {
return 1
}
#注册添加页面级菜单的命令
#命令形式
#RegisterAction "过程名称1" "过程名称2" "过程名称3"
#其中RegisterAction为注册命令
#"过程名称1"为动作,只有两种要么是在页面级界面,要么是在设计级界面
#"过程名称2"为固定的值
#"过程名称3"为添加菜单/子菜单的信息
#如下是注册一个页面级菜单的完整命令
RegisterAction "_cdnCapTclAddPageCustomMenu" "::capMenuUtil::capTrue" "" "::capMenuUtil::addPageAccessoryMenu" ""
#注册一个设计级菜单的命令
#
RegisterAction "_cdnCapTclAddDesignCustomMenu" "::capMenuUtil::capTrue" "" "::capMenuUtil::addDesignAccessoryMenu" ""
#注册快捷键命令
#命令形式
#RegisterAction "Lable" "Enabler" "Accel" "Callback" "ViewType"
#RegisterAction 注册命令
#Lable:在"右键后点击more后显示的标签"
#ENabler:使能,基于该过程显示此菜单项的启用或禁用
#Accel:快捷键的定义
#Callback:TCL过程,当用户单击此菜单项时将调用该过程
#View Type:可以使用此命令的应用程序视图类型。有效的视图类型有:Schematic, PM, NULL
#如下命令:添加一个offpageL的标签,快捷键为Ctrl+Shift+L,调POPL过程,在Schematic视图下可用。
#
RegisterAction "offpageL" "::capMenuUtil::capTrue" "Ctrl+Shift+L" "POPL" "Schematic"
RegisterAction "offpageR" "::capMenuUtil::capTrue" "Ctrl+Shift+L" "POPR" "Schematic"