十五年专注于
液压缸筒生产

全国咨询热线:
400-086-9833

   热门关键词修理 加工 活塞杆 缸筒 不锈钢

无标题文档

天圆液压产品中心

当前位置:主页 > 行业资讯 >

探究AutoC油缸AD菜单开发技术(3)

时间:2017-03-02 11:00来源:来自网络 作者:天圆液压 点击:
使用Menu命令重新载入ACAD.MNU菜单样板文件,可以发现我们自制的“绘制”菜单增加了快捷键、子菜单、分隔线和禁用菜单,如图9所示。 图9 在上面的代码中,“直线”菜单项增加了带下划线的菜单热键(L),还增加了快捷

  使用Menu命令重新载入ACAD.MNU菜单样板文件,可以发现我们自制的“绘制”菜单增加了快捷键、子菜单、分隔线和禁用菜单,如图9所示。

图9

  在上面的代码中,“直线”菜单项增加了带下划线的菜单热键(L),还增加了快捷键CTRL+L。它的标签由[直线]变成了[直线(&L)\tCtrl+L]。其中“&”的作用是给“&”后的第一个字符加上下划线,并将其作为该菜单项的菜单热键;“\t”的作用是将其后的所有文字推向右边,即靠右对齐。菜单项“圆”的下面增加了两个子菜单。子菜单由一对特殊符号进行定义,符号“->”用在父菜单项标签的开头,表示这个菜单项含有子菜单;符号“<-”用在最后一个子菜单项标签的开头,表示这个菜单项是整个子菜单的最后一项。值得注意的是:这两个符号必须成对出现。AutoCAD会自动忽略不能与其它符号匹配的符号,这样“圆”菜单项也已经失去了原有的画圆功能。这是因为如果一个菜单项含子菜单,AutoCAD会自动忽略含该菜单项的菜单宏,这与Windows中的层叠菜单是相同的。菜单项“圆”的下面多了一条分隔线,这条分隔线是由两个连字符“[-]”产生的,分隔线不能被选中,其后的任何菜单宏都会被忽略。在一个菜单项的标签开始处加一个波浪线“~”就可以禁用该菜单项。“文字”菜单项就进行了这样的处理。被禁用的菜单项会变为灰色,不能被选中。当然,创建一个总是被禁用的菜单项是没有任何意义的,禁用符号通过都和AutoLISP语言的条件判断表达式组合使用,达到在特定状态下禁用特定菜单项的目的。例如在文本编辑器中,如果没有进行复制或剪切操作,那么粘帖菜单项就处于被禁用状态。

  这个例子很简单,但是包括了最常用的几个标签控制字符的用法。AutoCAD提供的标签控制字符还有很多,下表显示了其它的标签控制符。

  -- 下拉菜单或快捷菜单中的菜单项分隔符(使用时,不能包括其它任何字符)

  + 延续宏到下一行(如果是最后一个字符)

  -> 指出下拉菜单或快捷菜单具有子菜单

  <- 指出子菜单中的最后一个下拉菜单项或快捷菜单项

  <-<-... 指出子菜单中的最后一个下拉菜单项或快捷菜单项并且结束父菜单。(每个<-结束一级

  父菜单)

  $( 如果作为第一个字符,则使下拉菜单或快捷菜单项标签求DIESEL字符串宏的值

  ~ 禁用菜单项的前缀符

  !. 给菜单项打上复选标记的前缀符

  & 直接放在下拉菜单或快捷菜单标签中一个字符之前,把该字符指定义菜单的热键。例如, S&le则将字每a下显示一条下划线

  / 指定下拉菜单或快捷菜单标签的菜单热键,通常与&符号配合使用

  \t 把标签中这两个字符右边的文件置于菜单的右侧

  四、进一步完善菜单

  我们继续对菜单进入完善,包括给菜单项指定快捷键和增加状态栏提示信息,仍然是通过修改菜单文件来完成。前面我们定义的菜单中有一个小毛病没有克服:虽然我们在“直线”菜单项中写出该菜单项的快捷键是“Ctrl+L”,但我们并没有真正为这个菜单项分配任何快捷键。如果我们能把这个小小的Bug也去掉,那我们的菜单就尽善尽美了。

  分配快捷键涉及到两个菜单区域:一个是菜单项所在菜单区域,在我们前面的例子中就是定义菜单“绘制”的“***POP12”菜单区域;另一个就是专门定义快捷键的菜单区域“***ACCELERATORS”。为了两个菜单区域可以进行正确的通讯,必须为需要快捷键的“直线”菜单项定义一个唯一而规范的名称,AutoCAD把这个名称叫做“名称标记”。名称标记是将一个菜单项与其它菜单项区别开的唯一标志。名称标记只能是字母和下划线的组合,放在菜单项标签之前,就能把标签作为名称标记,因为标签的命名规则太笼统,而且同一个标签名可以出现在不同的菜单区域当中。为了给菜单项分配快捷键,首先应该给每个菜单项一个有意义而且唯一的菜单标记,现在我们还是以前面的例子为每个菜单项定义菜单标记,其代码如下:

  ***POP12

  **MyDraw

  ID_MyDraw [绘制]

  ID_MyLine [直线(&L)\tCtrl+L] ^c^c^_line

  ID_MyCircle [->圆] ^c^c_circle

  ID_RFCrl [R50圆] ^c^c_circle \50

  ID_RECrl [<-R80圆] ^c^c_circle \80

  [--]

  ID_MyText [~文字] ^c^c_text

  接下来,我们为“直线”菜单项分配快捷键。找到“***ACCELERATORS”菜单区域,它通常在菜单样板文件的末尾处,在此区域添加如下字样:

  ID_MyLine [CONTROL+"L"]

  注意要把这些文字添加在“***ACCELERATORS”区域的第一行。存盘退出文本编辑器,在AutoCAD中执行Menu命令重新载入ACAD.MNU文件,按下Ctrl+L键,AutoCAD开始执行Line命令。这里我们只为直线菜单项定义了快捷键,您完全可以根据需要给其它菜单项定义快捷键。

  理解了为菜单项增加快捷键的方法,增加状态栏帮助文本就显得很简单了。在菜单样板文件中有一个菜单区域“***HELPSTRINGS”,这个菜单区域保存了其它菜单项的帮助文本,找到这个菜单区域,在这个菜单区域内添加如下代码。

  ID_MyLine [绘制直线]

  ID_RFCrl [绘制一个半径为50的圆]

  ID_RECrl [绘制一个半径为80的圆]

(责任编辑:admin)
分享按钮
------分隔线----------------------------