34.1.1 菜單文件簡介
菜單文件用于定義菜單,AutoCAD系統(tǒng)中所使用的菜單均保存在相應(yīng)的菜單文件中,
菜單文件的類型,結(jié)構(gòu)及使用
。AutoCAD中的菜單是人機交互的主要方式,并且具有幾種不同的形式,即菜單區(qū)域。在菜單文件中對以下幾種菜單區(qū)域的功能和外觀進行了定義:(1) 定點設(shè)備按鈕菜單
(2) 下拉菜單和快捷菜單
(3) 工具欄
(4) 圖像控件菜單
(5) 屏幕菜單
(6) 數(shù)字化儀菜單
(7) 幫助字符串和工具欄提示
(8) 鍵盤加速鍵
在AutoCAD啟動時,系統(tǒng)會自動裝入菜單文件ACAD.MNC(或ACAD.MNS、ACAD.MNU)。用戶可以根據(jù)需要通過修改菜單文件來定制菜單,也可以創(chuàng)建自定義的菜單文件。
34.1.2 菜單文件的類型
在AutoCAD 2002系統(tǒng)中,可以看到如下幾種類型的菜單文件,具體內(nèi)容見表34-1。
表34-1 菜單文件類型說明
文件類型
說明
*.MNU
樣板菜單文件(文本文件),記錄著菜單的功能和結(jié)構(gòu)。
*.MNC
編譯后的菜單文件(二進制文件),可被AutoCAD直接使用,包含定義菜單功能和外觀的命令字符串和菜單語法。
*.MNR
菜單資源文件(二進制文件),包含由菜單使用的位圖(.BMP)。
*.MNS
菜單源文件(文本文件,由AutoCAD生成)
*.MNT
菜單資源文件。在*.MNR文件無效(例如,只讀)時生成該文件。
*.MNL
與菜單配套的 AutoLISP 程序。這些文件包含由菜單文件使用的 AutoLISP 表達式。當(dāng)加載同名的菜單文件時,這些文件也載入內(nèi)存。
MNS文件是ASCII文件,最初與MNU文件相同。用戶在AutoCAD界面中修改菜單文件的內(nèi)容后(如修改菜單欄),MNS文件也被修改。MNS文件不能直接為AutoCAD使用,而是需編輯為同名的MNC文件。
每當(dāng)AutoCAD編譯一個MNC文件后,便會生成一個菜單源文件(MNR文件),該文件包含菜單中要用到的位圖。
生成MNS文件后,如果修改了MNU文件,必須重新加載MNU文件以便AutoCAD生成新的MNS和MNC文件,確認(rèn)所做的修改。
用戶可直接對其中文本格式的菜單文件進行編輯,以實現(xiàn)對菜單的定制。當(dāng)然,前提是用戶應(yīng)對菜單文件的結(jié)構(gòu)和格式有著充分的了解。
34.1.3 菜單文件的結(jié)構(gòu)
AutoCAD采用層次結(jié)構(gòu)來管理菜單文件,首先菜單文件按其功能的不同分為幾個部分,每個部分中都包含菜單項,它為與菜單選項相關(guān)的外觀和操作提供指示。菜單文件的各部分用部分標(biāo)簽來標(biāo)識,其格式為:
***section_name
表34-2中列出了各個部分標(biāo)簽及其說明。
表34-2 部分標(biāo)簽及說明
部分標(biāo)簽
說明
***MENUGROUP
定義菜單文件組
***BUTTONSn
定義定點設(shè)備按鈕功能
***AUXn
定義系統(tǒng)定點設(shè)備菜單
***POPn
定義下拉菜單和快捷菜單
***TOOLBARS
定義工具欄按鈕功能
***IMAGE
定義圖像控件菜單
***SCREEN
定義屏幕菜單
***TABLETn
定義數(shù)字化儀菜單
***HELPSTRINGS
定義菜單項和工具欄按鈕的提示信息
***ACCELERATORS
定義加速鍵
菜單文件中各部分中的第二層結(jié)構(gòu)用**標(biāo)識,第二層結(jié)構(gòu)下則為菜單項的具體定義,
工程
《菜單文件的類型,結(jié)構(gòu)及使用》(http://m.msguai.com)。菜單文件中的注釋行以“//”為標(biāo)識,菜單編譯器將忽略“//”開始的行。
注意 菜單文件不要求包括所有的菜單部分,而只需要適用于應(yīng)用程序的菜單部分。因此用戶在編寫菜單文件時,可以將菜單劃分為幾個小菜單文件,以便按需加載或卸載,使開發(fā)和維護工作更加容易。
34.1.4 菜單文件的加載
1. 基本菜單與局部菜單
在AutoCAD中加載菜單文件時,分為使用基本菜單和局部菜單的兩種情況;静藛问遣藛谓缑娴幕A(chǔ),如果用戶將某個菜單文件作為基本菜單加載,則系統(tǒng)自動取消原有的菜單文件,即新的基本菜單將替換原來的菜單。
加載基本菜單的方法為:
命令行:menu
調(diào)用該命令后,系統(tǒng)彈出“Select Menu File(選擇菜單文件)”對話框,提示用戶選擇要加載的菜單文件。
局 部菜單可以與基本菜單一起使用,即用戶加載局部菜單時,原有菜單并不發(fā)生變化。使用局部菜單可使用戶在菜單欄上增加或重新調(diào)整菜單。加載局部菜單后,該菜 單所定義的全部菜單區(qū)域都被載入AutoCAD 且都可以使用,但下拉菜單并不直接顯示出來,需要用戶使用菜單命令,用AutoLISP將它們插入到菜單欄中。
加載局部菜單的方法為:
菜單:【Tools(工具)】→【Customize(自定義)】→【Menu…(菜單)】
命令行:menuload
調(diào)用該命令后,將彈出“Menu Customization(菜單自定義)”對話框,如圖34-1所示。
在該對話框中,用戶單擊Browse...按鈕,彈出“Select Menu File(選擇菜單文件)”對話框,選擇需加載的菜單文件并返回。這時,“File Name(文件名稱)”編輯框中將顯示出將被加載的菜單文件名稱,用戶單擊Load按鈕后,該文件的組名將出現(xiàn)在“Menu Groups(菜單組)”列表框里,即該菜單文件被加載到系統(tǒng)中。
與基本菜單不同的是,局部菜單還可以根據(jù)需要進行卸載。卸載局部菜單不會影響到其他未卸載菜單的使用。
卸載局部菜單的方法為:
菜單:【Tools(工具)】→【Customize(自定義)】→【Menu…(菜單)】
命令行:menuunload
調(diào)用該命令后,將彈出與圖34-1完全相同的“Menu Customization(菜單自定義)”對話框。用戶在“Menu Groups(菜單組)”列表框里選擇需卸載的菜單項,然后單擊Unload按鈕即可進行卸載。
當(dāng)用戶退出AutoCAD時,AutoCAD記錄基本菜單的名稱、最多24個局部菜單(由它們的菜單組定義)的名稱和最多24個當(dāng)前菜單欄中存在的菜單,并在下一次啟動時加載該菜單文件。這確保AutoCAD界面在各任務(wù)期間保持不變。
2. 菜單文件加載過程
如果用戶使用對話框來選擇需要加載的菜單文件,系統(tǒng)將根據(jù)用戶所選擇的菜單文件類型進行如下操作:
(1) 如果用戶選擇了MNC文件,則系統(tǒng)直接加載它。
(2) 如果用戶選擇了MNS文件,則系統(tǒng)在同一目錄查找與其同名的MNC文件。如果找到該文件就加載它,否則系統(tǒng)將編譯MNS文件來生成MNC文件并加載它。
(3) 如果用戶選擇的是MNU文件,則系統(tǒng)將其編譯成MNC和MNS文件,并加載MNC文件。
(4) 無論采用上述何種方式,系統(tǒng)都在加載MNC文件后,查找相應(yīng)的LISP菜單文件(MNL文件)。如果找到該文件,執(zhí)行文件中的AutoLISP表達式。
當(dāng)系統(tǒng)變量FILEDIA設(shè)為0時,用戶需要在命令行中指定要加載的菜單文件。這種情況下AutoCAD將按下面的順序查找、加載菜單文件:
(1) 根據(jù)搜索路徑搜索源菜單文件(MNS文件)
如 果找到了MNS文件,AutoCAD在同一目錄查找編譯后的同名菜單文件(MNC文件)。如果找到同名的MNC文件,而且該文件的日期比相應(yīng)的MNS文件 要晚,則AutoCAD加載該文件。否則AutoCAD編譯MNS文件,在同一目錄中生成新的MNC文件,并加載它。
如果沒有找到MNS文件,AutoCAD根據(jù)搜索路徑查找編譯后的同名菜單文件(MNC文件)。如果找到該文件,加載它。
如果既沒有找到MNS文件,也沒有找到MNC文件,AutoCAD將根據(jù)搜索路徑查找同名的菜單樣板文件(MNU文件)。如果找到了文件,將其編譯成MNC和MNS文件,加載MNC文件。
如果沒有找到上述任一文件,AutoCAD給出提示信息,并提示使用其他菜單文件名。
(2) 加載MNC文件后,AutoCAD查找LISP菜單文件(MNL文件)。如果找到該文件,執(zhí)行文件中的AutoLISP表達式。