您好,欢迎来到飒榕旅游知识分享网。
搜索
您的当前位置:首页AutoCAD自定义菜单和工具栏

AutoCAD自定义菜单和工具栏

来源:飒榕旅游知识分享网
AutoCAD自定义菜单和工具栏 2012-12-22 00:00

一、很多用户在使用自己编写的lisp命令时,每次启动CAD都进行加载,影响了效率,下面介绍的方法可以解决这一问 题。 1:首先找到acad.mnl文件,系统默认安装在Application Data\\Autodesk\\AutoCAD 200i\\Support,当然你可将此文件 移到你的CAD目录下

2:请将你自己编写的AAA.lsp文件拷入ACAD的Support目录下,如果路径有指到你的目录也可以不用拷入。添加以下文 本到acad.mnl。

(if(null C:XXX)(load\"AAA\")(princ));加载并执行你自己编写的AAA.lsp之XXX命令。 二、自动加载自己编写的菜单:添加以下文镜絘cad.mnl

(if(null (menugroup \"你的工具條\"))(command \"menuload\" \"BBB\")(princ));加载你的工具条菜单BBB.mnu之\"你 的工具條\"

对于菜单我当时就晓得修改ACAD.MNU,先分析一下ACAD.MNU(它在哪里?汗,你在CAD安装路径搜索一下试试,对于二

次开发的软件如南方CASS,那就要在CASS安装目录搜索了),除了注释,我们看到的第一句有用的话就

是“***MENUGROUP=ACAD”,这句话什么意思呢?顾名思义并结合注释我们晓得,这里是讲这是一个菜单 组“MENUGROUP”,菜单组的名字叫“ACAD”。其实,在AutoCAD这个环境里,可以加载多个菜单组,但是只能有一个

主体菜单,其他的叫局部菜单。主体菜单的加载命令是“MENU”,局部菜单的加载命令是“MENULOAD”。我们继续分

析ACAD.MNU文件,向下仔细看不难发现,此文件组织是按段组织的,每一段的开始都是以“***”开始后面注以段的关

键字标识。总体看来一般有这样几个段“***BUTTONS”、 “***AUX”、 “***POP”、 “***TOOLBARS”、 “*** IMAGE”、 “***SCREEN”、 “***TABLE”、“***HELPSTRINGS”、“***ACCELERATORS”等,它们分别代表定点设备

按钮菜单区域、系统定点设备菜单区域、菜单区域、工具栏定义区域、图像控件菜单区域、屏幕菜单区域、数字化仪 菜单区域、帮助文本区域、快捷键定义区域等。由于这里讲菜单和工具栏,则主角“***POP”、“***TOOLBARS”在此 潇洒登场。

我们来看“***POP”不难发现,除了“***POP0”之外,其余即是菜单栏里面的“文件”、“编辑”、“显示”菜单项 ,选取一段来做分析——

***POP1 **FILE

ID_MnFile [文件(&F)]

ID_New [新建(&N)...\Ctrl+N]^C^C_new ID_Open [打开(&O)...\Ctrl+O]^C^C_open ID_DWG_CLOSE [关闭(&C)]^C^C_close

其中第一项是菜单的ID,第二项即中括号里面的是文字显示和快捷键,在后面就是它执行的命令了,如“打开”的命 令就是“_open”,其余的类似。ID项可以随便写,只要不与现有的重复,文显更是可以自由发挥,但是最好易记,后

面的命令就是你写的插件的命令了——这不,终于把执行命令和菜单项对应上了,下面我们来做一个测试,在

ACAD.MNU里面加上这样一段: ***POP15 **MYMENU

ID_MnMyMenu [我的菜单(&F)] ID_CXKZ [查询扩展]^C^C_CXKZ ID_ DDJC [打点检查]^C^C_DDJC

然后输入“MENU”调出加载菜单对话框,选择“ACAD.MNU”,问是否加载,选择“是”,则CAD重新加载菜单项,即出 现我们自定义的菜单如图:

在命令栏输入命令“CXKZ”,则提示栏信息如下:

当然,输入此命令前要把你自己的插件加载进来。另外,以上方法讲的是修改主体菜单来实现命令与菜单的挂接,我

们还可以用局部菜单进行加载。流程如下:新建一文本文档如记事本,输入代码—— ***MENUGROUP=ACAD001 ***POP15 **MYMENU

ID_MnMyMenu [我的菜单(&F)] ID_CXKZ [查询扩展]^C^C_CXKZ ID_ DDJC [打点检查]^C^C_DDJC

然后另存为ACAD001.MNU,注意扩展名要改。再在CAD里面用加载局部菜单的命令“MENULOAD“加载此文件并编译,同 样可出现想要的效果。

好了,我们再来看自定义工具栏“***TOOLBARS”。同样先看一段代码如下: ***TOOLBARS **TB_DIMENSION

ID_TbDimensi [_Toolbar(\"标注\

ID_Dimlinear [_Button(\"线性标注\ ^C^C_dimlinear

ID_Dimaligne [_Button(\"对齐标注\ ^C^C_dimaligned

ID_Dimordina [_Button(\"坐标标注\ ^C^C_dimordinate

其中第一段还是ID,第二段告诉你控件的类型,如_Toolbar是工具栏、_Button是按钮。对于工具栏,在说明类型是“

_Toolbar”之后告诉你标题名称如“标注”_Floating意思是?????,再后面是_Hide意思是CAD启动时候此工具栏

是否隐藏,后面的坐标告诉你它基于屏幕的绝对坐标是多少。对于按钮,首先告诉你鼠标划过时候的提示信息如“线 性标注”,然后告诉你显示图标,这个图标在哪里找呢,Q了一下,原来一在搜索路径可以找到就行,二在同名的DLL

中找到也可以,如果是文件,则其后缀名是.bmp,如果是DLL,则是它的导出资源ID了,最后面即中括号之外的即是其 执行命令,呵呵,这里又将命令与工具栏按钮挂接上了。下面我们搞一个示例,在ACAD.MNU里面加上代码如下: **TB_MYTOOLBARS

ID_AMAN [_Toolbar(\"阿瞒\ ID_CXKZ [_Button(\"查询扩展\查.bmp, ICON_16_DIMLIN)] ^C^C_CXKZ

ID_DDJC [_Button(\"打点检查\打.bmp, ICON_16_DIMALI)] ^C^C_DDJC

然后将图像文件COPY到搜索路径,注意这个图像文件要求是16*15的,否则显示不完整。然后我们再在命令栏输入命令 “MENU”,重新加载ACAD.MNU,则出现效果如下:

点击“查”则命令就会执行,命令栏显示效果如图:

同时我们看下工具箱里面也加了一个工具条选项,如图:

这样一来,我们就实现了定制工具栏的效果。

和菜单一样,工具栏也是可以搞个局部菜单加载方式,这里不再胪述了,另外我们只实现了菜单栏和工具栏,还有其 他几个组如“***IMAGE”、“***HELPSTRINGS”、“ ***ACCELERATORS”我们可以如法炮制。 最后还要发表点隐忧之辞,由于这种方式是基于老版本的CAD菜单配置文件.MNU文件来实现的,但是现在的的CAD已经

采用流行的XML语言来实现此一功能了,XML编辑好的菜单配置文件扩展名为.CUI,所以也许.MNU方式的菜单配置将会 被淘汰,不过据网友“飞诗”大侠说,桌子公司会考虑兼容性问题,将继续支持.MNU方案。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务