工作空间可以用于控制将在菜单栏上显示哪些下拉菜单。但是,也可以通过编程方法将某个下拉菜单交换为另一个(例如,在用户加载需要其他下拉菜单的应用程序的情况下)。 交换下拉式菜单因为本程序具有级联下拉式菜单,所以几乎不需要交换菜单。另外,交换菜单会降低用户界面的一致性。不过,使用 $ 命令可以交换下拉式菜单和子菜单。另外一种菜单交换涉及相对(或全局)参照。用这种方法,可以在已知菜单前面插入新菜单,然后删除已知菜单。 为进行菜单交换,下拉菜单被命名为 P1 到 P16。通过将菜单的标题行替换为 $Pn= 命令,可以更改显示在菜单栏上的标题。可以在任意命令中使用特殊命令 $Pn=*,强制下拉当前指定给 POPn 别名的菜单,从而提高定点设备移动的灵活性。 以下宏样例将以称为 MYMENU 的自定义组中名为 new3 的菜单替换位于 P3 的下拉菜单。 $P3=mymenu.new3 在 AutoCAD 中,按以下方式使用 AutoLISP menucmd 函数同样可以完成该操作: (menucmd "P3=mymenu.new3") 注: AutoLISP 在 AutoCAD LT 中不可用。
可以在任意宏中使用 $Pn=* 特殊命令,以强制显示当前指定给区域 POPn 的菜单。 注: 下拉式菜单的交换不符合 Microsoft
®
用户界面原则,并且不保证在程序的后续版本中可用。
插入和删除下拉式菜单菜单交换通过从一个菜单中直接激活另一个菜单实现。以下界面元素支持菜单交换:
交换局部菜单的语法如下所示: $section=customizationgroup.menuname
应该了解以下问题:
可以使用 AutoLISP menucmd 函数(在 AutoCAD LT 中不可用)以插入或删除下拉式菜单。其语法与用于交换下拉式菜单的语法类似,不同之处在于赋值左侧是下拉式菜单,新菜单将被插入到该菜单前面。赋值右侧是一个加号 (+),后面带有自定义组名、句点以及菜单的别名,如以下语法所示: (menucmd "Gcustomizationgroup1.menuname1=+Gcustomizationgroup2.menuname2") 也可以用 Pn = 语法来插入菜单。以下宏将在 P5 菜单后面插入一个菜单: $P5=+Gmymenu.new3 可以使用以下方法通过 AutoLISP 实现相同的宏: (menucmd "P5=+Gmymenu.new3") 如果用此方法插入菜单,请牢记不能保证该菜单如预期的那样被插入 P6 菜单位置。有两个原因可导致菜单不在预期的位置。
删除菜单的语法为: Gcustomizationgroup.menuname=- 在通过 AutoLISP 删除菜单时将使用以下语法: (menucmd "Gcustomizationgroup.menuname=-") 下例演示了如何删除“MyMenu”菜单组的成员菜单 NEW3。 $Gmymenu.new3=-" 在 AutoLISP 中,上例将如下所示: (menucmd "Gmymenu.new3=-") 正如您所认为的,上述格式比 Pn = 格式更好用,因为它将只删除指定的菜单。下例展示了如何删除 P4 位置处的菜单(不管其为何种菜单)。 $P4=- 在 AutoLISP 中,上例将如下所示: (menucmd "P4=-") 注: 仅使用 Pn 语法作为 AutoLISP
menucmd
函数的部分语法。将 $Pn 语法用于特定于宏的语句。
控制局部自定义 (CUIx) 文件中的工具栏通常使用工作空间来显示工具栏。但是,您可以使用 -TOOLBAR 命令显示工具栏。在 “输入工具栏名称或 [全部(ALL)]:”提示下使用以下语法 。 customizationgroup.toolbaralias 通过此语法可以访问由 customizationgroup.toolbaralias 标识的工具栏。 如果自定义组保持检出状态,则程序将默认为主自定义 (CUIx) 文件。 |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2024-12-15 14:58
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.