菜单文件的类型、结构和使用 34.1.1 菜单文件简介 菜单文件用于定义菜单,AutoCAD系统中所使用的菜单均保存在相应的菜单文件中。AutoCAD中的菜单是人机交互的主要方法,并且具有几种不同的形式,即菜单区域。在菜单文件中对以下几种菜单区域的功能和外观进行了定义: (1) 定点设备按钮菜单 (2) 下拉菜单和快捷菜单 (3) 工具栏 (4) 图像控件菜单 (5) 屏幕菜单 (6) 数字化仪菜单 (7) 帮助字符串和工具栏提示 (8) 键盘加速键 在AutoCAD启动时,系统会自动装入菜单文件ACAD.MNC(或ACAD.MNS、ACAD.MNU)。用户可以根据需要通过修改菜单文件来定制菜单,也可以创建自定义的菜单文件。 34.1.2 菜单文件的类型 在AutoCAD 2002系统中,可以看到如下几种类型的菜单文件,详细内容见表34-1。 表34-1 菜单文件类型说明 文件类型 | 说明 | *.MNU | 样板菜单文件(文本文件),记录着菜单的功能和结构。 | *.MNC | 编译后的菜单文件(二进制文件),可被AutoCAD直接使用,包含定义菜单功能和外观的命令字符串和菜单语法。 | *.MNR | 菜单资源文件(二进制文件),包含由菜单使用的位图(.BMP)。 | *.MNS | 菜单源文件(文本文件,由AutoCAD生成) | *.MNT | 菜单资源文件。在*.MNR文件无效(例如,只读)时生成该文件。 | *.MNL | 与菜单配套的 AutoLISP 程序。这些文件包含由菜单文件使用的 AutoLISP 表达式。当加载同名的菜单文件时,这些文件也载入内存。 |
MNS文件是ASCII文件,最初与MNU文件一样。用户在AutoCAD界面中修改菜单文件的内容后(如修改菜单栏),MNS文件也被修改。MNS文件不能直接为AutoCAD使用,而是需编辑为同名的MNC文件。 每当AutoCAD编译一个MNC文件后,便会生成一个菜单源文件(MNR文件),该文件包含菜单中要用到的位图。 生成MNS文件后,假如修改了MNU文件,必须重新加载MNU文件以便AutoCAD生成新的MNS和MNC文件,确认所做的修改。 用户可直接对其中文本格式的菜单文件进行编辑,以实现对菜单的定制。当然,前提是用户应对菜单文件的结构和格式有着充分的了解。 34.1.3 菜单文件的结构 AutoCAD采用层次结构来治理菜单文件,首先菜单文件按其功能的不同分为几个部分,每个部分中都包含菜单项,它为与菜单选项相关的外观和操作提供指示。菜单文件的各部分用部分标签来标识,其格式为: ***section_name 表34-2中列出了各个部分标签及其说明。 表34-2 部分标签及说明 部分标签 | 说明 | ***MENUGROUP | 定义菜单文件组 | ***BUTTONSn | 定义定点设备按钮功能 | ***AUXn | 定义系统定点设备菜单 | ***POPn | 定义下拉菜单和快捷菜单 | ***TOOLBARS | 定义工具栏按钮功能 | ***IMAGE | 定义图像控件菜单 | ***SCREEN | 定义屏幕菜单 | ***TABLETn | 定义数字化仪菜单 | ***HELPSTRINGS | 定义菜单项和工具栏按钮的提示信息 | ***ACCELERATORS | 定义加速键 |
菜单文件中各部分中的第二层结构用**标识,第二层结构下则为菜单项的详细定义。 菜单文件中的注释行以“//”为标识,菜单编译器将忽略“//”开始的行。 注重 菜单文件不要求包括所有的菜单部分,而只需要适用于应用程序的菜单部分。因此用户在编写菜单文件时,可以将菜单划分为几个小菜单文件,以便按需加载或卸载,使开发和维护工作更加轻易。 34.1.4 菜单文件的加载 1. 基本菜单与局部菜单 在AutoCAD中加载菜单文件时,分为使用基本菜单和局部菜单的两种情况。基本菜单是菜单界面的基础,假如用户将某个菜单文件作为基本菜单加载,则系统自动取消原有的菜单文件,即新的基本菜单将替换原来的菜单。 加载基本菜单的方式为: 命令行:menu 调用该命令后,系统弹出“Select Menu File(选择菜单文件)”对话框,提示用户选择要加载的菜单文件。 局部菜单可以与基本菜单一起使用,即用户加载局部菜单时,原有菜单并不发生变化。使用局部菜单可使用户在菜单栏上增加或重新调整菜单。加载局部菜单后,该菜单所定义的全部菜单区域都被载入AutoCAD 且都可以使用,但下拉菜单并不直接显示出来,需要用户使用菜单命令,用AutoLISP将它们插入到菜单栏中。 加载局部菜单的方式为: 菜单:【Tools(工具)】→【Customize(自定义)】→【Menu…(菜单)】 命令行:menuload 调用该命令后,将弹出“Menu Customization(菜单自定义)”对话框,如图34-1所示。
在该对话框中,用户单击Browse...按钮,弹出“Select Menu File(选择菜单文件)”对话框,选择需加载的菜单文件并返回。这时,“File Name(文件名称)”编辑框中将显示出将被加载的菜单文件名称,用户单击Load按钮后,该文件的组名将出现在“Menu Groups(菜单组)”列表框里,即该菜单文件被加载到系统中。 与基本菜单不同的是,局部菜单还可以根据需要进行卸载。卸载局部菜单不会影响到其他未卸载菜单的使用。 卸载局部菜单的方式为: 菜单:【Tools(工具)】→【Customize(自定义)】→【Menu…(菜单)】 命令行:menuunload 调用该命令后,将弹出与图34-1完全一样的“Menu Customization(菜单自定义)”对话框。用户在“Menu Groups(菜单组)”列表框里选择需卸载的菜单项,然后单击Unload按钮即可进行卸载。 当用户退出AutoCAD时,AutoCAD记录基本菜单的名称、最多24个局部菜单(由它们的菜单组定义)的名称和最多24个当前菜单栏中存在的菜单,并在下一次启动时加载该菜单文件。这确保AutoCAD界面在各任务期间保持不变。 2. 菜单文件加载过程 假如用户使用对话框来选择需要加载的菜单文件,系统将根据用户所选择的菜单文件类型进行如下操作: (1) 假如用户选择了MNC文件,则系统直接加载它。 (2) 假如用户选择了MNS文件,则系统在同一目录查找与其同名的MNC文件。假如找到该文件就加载它,否则系统将编译MNS文件来生成MNC文件并加载它。 (3) 假如用户选择的是MNU文件,则系统将其编译成MNC和MNS文件,并加载MNC文件。 (4) 无论采用上述何种方法,系统都在加载MNC文件后,查找相应的LISP菜单文件(MNL文件)。假如找到该文件,执行文件中的AutoLISP表达式。 当系统变量FILEDIA设为0时,用户需要在命令行中指定要加载的菜单文件。这种情况下AutoCAD将按下面的顺序查找、加载菜单文件: (1) 根据搜索路径搜索源菜单文件(MNS文件) 假如找到了MNS文件,AutoCAD在同一目录查找编译后的同名菜单文件(MNC文件)。假如找到同名的MNC文件,而且该文件的日期比相应的MNS文件要晚,则AutoCAD加载该文件。否则AutoCAD编译MNS文件,在同一目录中生成新的MNC文件,并加载它。 假如没有找到MNS文件,AutoCAD根据搜索路径查找编译后的同名菜单文件(MNC文件)。假如找到该文件,加载它。 假如既没有找到MNS文件,也没有找到MNC文件,AutoCAD将根据搜索路径查找同名的菜单样板文件(MNU文件)。假如找到了文件,将其编译成MNC和MNS文件,加载MNC文件。 假如没有找到上述任一文件,AutoCAD给出提示信息,并提示使用其他菜单文件名。 (2) 加载MNC文件后,AutoCAD查找LISP菜单文件(MNL文件)。假如找到该文件,执行文件中的AutoLISP表达式。 返回类别: AuotoCAD教程 上一教程: 菜单定义详解 下一教程: DIESEL的概念及其函数
您可以阅读与"菜单文件的类型、结构和使用"相关的教程: · AutoCAD 菜单文件使用五问 · 自定义菜单文件 · 使用菜单与工具栏 · 脚本文件的创建和使用 · 怎样自己汉化autocad菜单?
|