快捷菜单是使用与下拉菜单相同的语法在 MNU 文件中定义的。POP0 菜单部分用于定义默认的对象捕捉快捷菜单,从 POP500 到 POP999 的菜单部分
则用于定义上下文快捷菜单。
AutoCAD 通过别名(例如 **GRIPS)引用上下文快捷菜单并在特定情况下使用它们。实际的 POPn 编号并不重要,但是别名必须遵循正确的命名惯例以
便于使用。以下是 AutoCAD 的专用别名:
GRIPS
此菜单的内容定义了选定夹点快捷菜单(在选定对象的夹点时,在绘图区域中单击右键)。
CMDEFAULT
此菜单的内容定义了默认模式i捷菜单(在没有活动命令且未选定任何对象时,在绘图区域中单击右键)。
CMEDIT
此菜单的内容定义了编辑模式快捷菜单(在选定一个或多个对象、未选定任何夹点并且没有活动命令时,在绘图区域中单击右键)。
CMCOMMAND
此菜单的内容定义了命令i式菜单(在命令处于活动状态时,在绘图区域中单击右键)。除了 CMCOMMAND 菜单内容之外,命令行选项(方括号中的关键字)
也被插入到该菜单中。
上下文相关快捷菜单
CMEDIT 和 CMCOMMAND 快捷菜单可以上下文相关。当选定一个或多个特定对象类型时,除了 CMEDIT 菜单的内容以外,适当的对象菜单(如果有)也被插入
该菜单。对象菜单使用以下命名惯例:OBJECT_objectname 或 OBJECTS_objectname。
如果选定单个对象,则使用 OBJECT_objectname 菜单;如果选定多个对象,则使用 OBJECTS_objectname 菜单。如果没有 OBJECT_objectname,则
AutoCAD 将使用 OBJECTS_objectname 菜单(如果有)。
除插入对象外,在任何情况下,对象名称还是对象的 DXF 名称。AutoCAD 使用名称 BLOCKREF 和 XREF 来区分块插入和外部参照。
以下的 AutoLISP 代码定义OTYPE 命令,该命令报告选定对象的 DXF 名称。
(defun C:OTYPE() (cdr (assoc 0 (entget (car (entsel))))))
例如,为支持一个或多个选定块参照的特定对象快捷菜单项,请插入以下行:
***POP512
**OBJECTS_BLOCKREF
[shortcut menu for block objects]
ID_BLOCK [Explode] ^C^C_explode
像 CMEDIT 菜单一样,上下文相关的信息也添加到 CMCOMMAND 菜单中。所有名为 COMMAND_commandname 的菜单都被添加到 CMCOMMAND 菜单中。commandname
的文本可以是任何有效的 AutoCAD 命令,包括任何自定义命令或第三]命令。
如果要使用带有连字号前缀的命令(例如 INSERT),则需要将菜单命名为 COMMAND_INSERT。