簡介: 介紹在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)用。