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將按下面的順序查找、加載菜單文件: