簡介: 介紹在AutoCAD環(huán)境下創(chuàng)建和管理圖形庫的一種方案、開發(fā)環(huán)境、流程等。使用圖標(biāo)菜單和合適的對(duì)話框展示圖文并茂的圖形信息,展示了方法的良好效果。
關(guān)鍵字:CAD 制圖應(yīng)用
一、前言
AutoCAD軟件具有相當(dāng)優(yōu)秀的開放型結(jié)構(gòu)(Open architecture)和一個(gè)強(qiáng)大的內(nèi)部編程語言(Autolisp語言,可以完成一些計(jì)算機(jī)工作和作圖功能),可以方便地讓用戶隨意地開發(fā)自己的命令、標(biāo)準(zhǔn)庫文件和各種應(yīng)用程序等。
圖形管理是CAD應(yīng)用的一個(gè)重要內(nèi)容,是CAD應(yīng)用中較為繁瑣、較為困難的部分之一。用戶在實(shí)際應(yīng)用中總是為圖形太多無法管理大傷腦筋。本文提供了一個(gè)圖形庫創(chuàng)建和管理的方法,其最終效果是展示一個(gè)方便快捷、圖文并茂的直觀的圖形庫。
二、 方案設(shè)計(jì)
1、實(shí)現(xiàn)方案
許多AutoCAD用戶在圖形庫的創(chuàng)建和管理方面都使用一種較為簡便的方法:將圖形文件命名為能體現(xiàn)其圖形內(nèi)容的名稱,然后將其分類存入特定的文件夾。這種方法的優(yōu)點(diǎn)在于簡便快捷,但其不方便、不直觀的缺點(diǎn)卻更為突出。
針對(duì)上述的簡便方法,本文提出的方案方便、直觀且內(nèi)置于AutoCAD中。該方案如下:
●生成所有圖形的幻燈片文件;
●在AutoCAD初始化界面的下拉菜單區(qū)加入“圖形庫”菜單條,此菜單條包含“機(jī)械圖庫”和“電子圖庫”兩個(gè)菜單項(xiàng);
●點(diǎn)擊“機(jī)械圖庫”和“電子圖庫”兩個(gè)菜單區(qū)彈出相應(yīng)的圖標(biāo)菜單,在圖標(biāo)菜單中可以看到圖形文件標(biāo)識(shí)名和相應(yīng)的圖形(幻燈片);
●在圖標(biāo)菜單中拾取圖形彈出一幅對(duì)話框,該對(duì)話框給出圖形的一些文字信息(如:作者, 圖形內(nèi)容, 繪圖日期,圖號(hào)等)和圖形的預(yù)覽;
●點(diǎn)擊對(duì)話框的確定按鈕即可打開拾取的圖形文件。
2、方案論證
該方案的關(guān)鍵在于圖標(biāo)菜單和對(duì)話框。
●圖標(biāo)菜單:
圖標(biāo)菜單是AutoCAD菜單的一種。圖標(biāo)菜單以20個(gè)為一組顯示幻燈片,并同時(shí)顯示一個(gè)包含有幻燈片名或其他文字的滾動(dòng)列表框。圖標(biāo)菜單的長度不受限制,如果一個(gè)圖標(biāo)菜單包含的幻燈片多于20個(gè)AutoCAD會(huì)提供換頁按鈕,以便讓用戶換頁顯示更多的幻燈片。因此,可以利用AutoCAD的開放型體系結(jié)構(gòu)上的二次開發(fā)定制圖標(biāo)菜單來對(duì)圖形庫進(jìn)行管理。
圖標(biāo)菜單也有不足之處。圖標(biāo)菜單的一個(gè)頁面需顯示20幅幻燈片,所以只能從中獲得比較概略的圖形信息(尤其是復(fù)雜圖形)。所以,需要采取一定的輔助措施來對(duì)使用圖標(biāo)菜單的缺陷進(jìn)行彌補(bǔ)。
●對(duì)話框:
從用戶觀點(diǎn)來看,窗口操作環(huán)境是目前最先進(jìn)最流行的一種人機(jī)交互界面。它能控制光柵掃描型顯示器和以鼠標(biāo)器為代表的輸入設(shè)備,向用戶提供了圖文并茂的可視化環(huán)境,是操作更為直觀、自然、簡便和快速。
AutoCAD R12以上版本提供了一種對(duì)話框語言(Dialog-box Control Language,縮寫為DCL),允許用戶設(shè)計(jì)并實(shí)現(xiàn)自己的對(duì)話框。因此, 可以使用對(duì)話框語言編程來對(duì)圖標(biāo)菜單中圖形進(jìn)行放大并提供圖標(biāo)菜單中不能提供的文字信息。
三、 開發(fā)環(huán)境
●486以上微機(jī)
●win95或win98操作系統(tǒng)
●AutoCAD R12以上版本(本文提供方案在R12、R13、R14中都能實(shí)現(xiàn),但本文提供的開發(fā)步驟主要是在R14中實(shí)現(xiàn))
四、 開發(fā)步驟
1、建立圖形庫文件夾
在AutoCAD目錄下創(chuàng)建文件夾Storeroom,將需要進(jìn)入圖形庫進(jìn)行管理的圖形文件存入該文件夾。
2、制作幻燈片庫(*.SLB)
◆制作幻燈片文件(*.SLD)
在當(dāng)前視窗中打開圖形文件,并將圖形移到屏幕中央。然后在命令行鍵入MSLIDE命令并在“Creat slide file”框中鍵入幻燈片名(按下〈return〉鍵則將當(dāng)前圖形名作缺省幻燈片名接受)。為了創(chuàng)建幻燈片庫,將所有幻燈片文件保存到AutoCAD目錄下的support子目錄中。
◆創(chuàng)建幻燈片列表文件(*.txt)
假設(shè)有mach001.dwg~mach030.dwg共30個(gè)圖形文件和對(duì)應(yīng)的mach001.sld~mach030.sld共30個(gè)幻燈片文件,編輯如下文件(文件名為mach.txt):
mach001.sld
mach002.sld
mach003.sld
mach030.sld
◆幻燈片庫的建立
使用AutoCAD的support目錄中的實(shí)用程序slidelib,將幻燈片文件按照文件列表構(gòu)造成幻燈片庫mach.slb: slidelib mach<>
3、編寫對(duì)話框文件(*.dcl)
對(duì)話框主要是展示一個(gè)圖文并茂的圖形庫中的圖形,在對(duì)話框中不僅要有圖形預(yù)覽,還要有該圖形的一些文字說明。假設(shè)圖形庫中的mach001.dwg是一個(gè)繪制軸承的圖形文件:圖號(hào)為mach-001,則可編制如下對(duì)話框文件(文件名為mach001.dcl):
dcl_settings:default_dcl_settings{audit_level=0;}
accept_button:ok_button{
label="確定";
key="accept";
}
can_button:cancel_button{
label="取消";
key="cancel";
}
mach001:dialog{
label="機(jī)械圖庫—mach001";
:row{
:column{
:text{
label="圖 號(hào):mach-001";
key="num";
width=20;
fixed_width=true;
}
……
:image{
key="img";
width=40;
height=20;
}
}
spacer_1;
:row{
:text{
label=" ";
}
accept_button;
can_button; :text{
label="";
} }
}
4、編制對(duì)話框控制程序(*.lsp)
下面給出對(duì)話框文件mach001.dcl的控制程序mach001.lsp:
(defun mach001()
(setq dcl_id (load_dialog "mach001.dcl"))
(if (not (new_dialog "mach001" dcl_id))
(exit))
(action_tile "accept" "(draw001)")
(action_tile "cancel" "(done_dialog)")
(setq x (dimx_tile "img")
y (dimy_tile "img"))
(start_image "img")
(fill_image 0 0 x y 0)
(slide_image 0 0 x y "mach(mach001)")
(end_image)
(start_dialog)
(unload_dialog dcl_id)
)
(defun draw001()command "open""mach001")
5、編制圖標(biāo)菜單
本文通過修改AutoCAD主菜單acad.mnu來實(shí)現(xiàn),其操作步驟如下:
●在AutoCAD主菜單acad.mnu中加入自己的圖標(biāo)菜單區(qū)
AutoCAD主菜單acad.mnu中的“***IMAGE”表示圖標(biāo)菜單區(qū),對(duì)應(yīng)幻燈片庫中的幻燈片、對(duì)話框和對(duì)話框的控制程序,在圖標(biāo)菜單區(qū)加入以下內(nèi)容(本文給出的是機(jī)械圖庫的圖標(biāo)菜單,電子圖庫的圖標(biāo)菜單與此類似):
***IMAGE
**mach
[電子圖庫]
[mach(mach001,mach001)]^C^C(load "mach001");(mach001);
[mach(mach002,mach002)]^C^C(load "mach002");(mach002);
[mach(mach030,mach030)]^C^C(load "mach030");(mach030);
●將圖標(biāo)菜單的加載放到AutoCAD下拉菜單區(qū)
在菜單文件acad.mnu中的***POP10(下拉菜單第十區(qū))前加入如下內(nèi)容(同時(shí)將***POP10改為***POP11): ***POP10 [圖形庫]
ID-ELE[電子圖庫]$I=ACAD.ELE +
$I=ACAD.*
ID-MACH[機(jī)械圖庫]$I=ACAD.MACH +
$I=ACAD.*
●將修改后的菜單文件用AutoCAD中的menu命令編譯成acad.mns即可。
五、 應(yīng)用效果
進(jìn)入AutoCAD操作界面后,會(huì)發(fā)現(xiàn)在下拉菜單區(qū)出現(xiàn)了“圖形庫”菜單項(xiàng)。點(diǎn)擊下拉菜單“圖形庫”菜單項(xiàng),彈出相應(yīng)的下拉菜單項(xiàng),包括“機(jī)械圖庫”和“電子圖庫”。選擇“機(jī)械圖庫”或“電子圖庫”菜單項(xiàng)(本文使用的是“機(jī)械圖庫”菜單項(xiàng)),彈出圖1所示圖標(biāo)菜單。通過鼠標(biāo)雙擊圖標(biāo)菜單左邊的列表框中的列表項(xiàng)或右邊的圖標(biāo)則可彈出圖2所示的對(duì)話框,該對(duì)話框給出了一些與圖形有關(guān)的信息。也可以先用鼠標(biāo)拾取一個(gè)列表項(xiàng)或圖標(biāo),再點(diǎn)擊“ok”按鈕彈出對(duì)話框。對(duì)話框給出了放大的幻燈片和該幻燈片的信息。點(diǎn)擊“確定”按鈕則打開圖形文件。點(diǎn)擊“取消”按鈕則不打開圖形文件并關(guān)閉對(duì)話框。
六、 結(jié)束語
圖形管理是CAD應(yīng)用的一個(gè)重要內(nèi)容,是CAD應(yīng)用中較為繁瑣、較為困難的部分之一。不同的用戶可以有不同的圖形管理方案,本文提出的方案完全基于AutoCAD的開放體系結(jié)構(gòu)提供的Autolisp語言和DCL語言,旨在利用AutoCAD提供的上述兩種解釋性語言,以使AutoCAD用戶能方便地應(yīng)用。