劉高君,符純?nèi)A
(四川理工學(xué)院 機(jī)械工程學(xué)院,四川 自貢 643000)
隨著AutoCAD 軟件在建筑、機(jī)械加工等行業(yè)的廣泛應(yīng)用,企業(yè)針對(duì)自身需求對(duì)AutoCAD 的二次開(kāi)發(fā)應(yīng)用越來(lái)越多。雖然AutoCAD 軟件提供了強(qiáng)大的繪圖功能,但不同企業(yè)針對(duì)不同產(chǎn)品帶來(lái)的大量產(chǎn)品重新設(shè)計(jì)與制圖更改,使得其本身的繪圖功能遠(yuǎn)遠(yuǎn)不能滿足產(chǎn)品快速變化發(fā)展的需要,這就需要企業(yè)根據(jù)自身需求來(lái)開(kāi)發(fā)適合自身的繪圖模塊。
本系統(tǒng)的設(shè)計(jì)使用基于AutoCAD 2008 繪圖軟件之上,并利用其自帶的LISP 語(yǔ)言開(kāi)發(fā)工具Visual-LISP 集成環(huán)境作為程序開(kāi)發(fā)工具,部分文件處理功能使用了DosLib8.6 功能庫(kù)。
現(xiàn)代化企業(yè)中尤其是機(jī)械加工企業(yè),電腦制圖基本替代了圖板手工制圖。AutoCAD 軟件給用戶帶來(lái)了巨大變化,同時(shí)提供的LISP 開(kāi)發(fā)平臺(tái)給用戶提供了一個(gè)進(jìn)行二次開(kāi)發(fā)的利器。LISP 語(yǔ)言簡(jiǎn)單易學(xué),開(kāi)發(fā)人員很快就能開(kāi)發(fā)出基本的繪圖功能塊,這使得LISP 在程序自動(dòng)制圖方面具有很大的優(yōu)勢(shì)。隨著LISP 二次開(kāi)發(fā)模塊的逐漸增多,一套完整的LISP 開(kāi)發(fā)系統(tǒng)可能對(duì)運(yùn)行環(huán)境與各模塊之間的連接提出了一定要求,每次應(yīng)用都需要單獨(dú)加載。這給使用二次開(kāi)發(fā)軟件及相關(guān)的應(yīng)用推廣帶來(lái)了困難。于是通過(guò)LISP 本身開(kāi)發(fā)一個(gè)方便的安裝插件就能方便的解決這個(gè)問(wèn)題。
一套LISP 二次開(kāi)發(fā)軟件使用的基本環(huán)境是AutoCAD 及在其中調(diào)用的LISP 程序、VBA、ARX 及其他Application 軟件包,復(fù)雜系統(tǒng)往往還會(huì)調(diào)入自身開(kāi)發(fā)的很多函數(shù)庫(kù),這些函數(shù)庫(kù)在AutoCAD 軟件環(huán)境中使用之前都需要相關(guān)的環(huán)境配置與裝載,而最終用戶卻往往并不能很好的掌握這整套技術(shù)。所以LISP 安裝軟件的設(shè)計(jì)就是為了和普通軟件一樣只需一次安裝,用戶就可直接使用所開(kāi)發(fā)的功能。
針對(duì)以上設(shè)計(jì)要求與思路,本文設(shè)計(jì)了比較通用的LISP 程序安裝系統(tǒng),其僅需要做較小的發(fā)動(dòng)就可實(shí)現(xiàn)大多數(shù)LISP 二次開(kāi)發(fā)軟件的安裝。
為模擬通用Windows 安裝程序過(guò)程,本系統(tǒng)利用對(duì)話框來(lái)實(shí)現(xiàn)整個(gè)安裝界面結(jié)構(gòu),通過(guò)while 循環(huán)完成整個(gè)安裝過(guò)程的前進(jìn)與后退。其具體實(shí)現(xiàn)程序如下:
本安裝系統(tǒng)界面制作主要使用DCL 對(duì)話框文件由LISP 程序進(jìn)行控制。除了進(jìn)度條界面,其他三個(gè)界面都是一個(gè)名為dialog 的DCL 元素構(gòu)成,這是AutoLISP 程序提供的基本人機(jī)交互界面功能,其具體語(yǔ)法可查閱相關(guān)書(shū)籍,本文因篇幅關(guān)系不再敘述。
安裝過(guò)程圖如圖1 所示。
圖1 安裝程序運(yùn)行過(guò)程
系統(tǒng)環(huán)境配置主要是安裝程序本身運(yùn)行所需要的運(yùn)行環(huán)境,LISP 開(kāi)發(fā)軟件包運(yùn)行環(huán)境的處理主要是要求安裝程序加載和文件搜索路徑的配置。實(shí)現(xiàn)代碼如下:
以上程序中,DOSLib 為加載的外部應(yīng)用程序,本系統(tǒng)選用了外部程序DOSLib 庫(kù)來(lái)操作文件的復(fù)制功能,配合外部程序可方便對(duì)Windows 系統(tǒng)進(jìn)行操作來(lái)完善程序功能實(shí)現(xiàn)效果,如第三頁(yè)中的程序安裝進(jìn)度就利用了DOSLib 庫(kù)中的dos_getprogress 函數(shù)來(lái)實(shí)現(xiàn)。
本系統(tǒng)實(shí)現(xiàn)了用Visual LISP 語(yǔ)言開(kāi)發(fā)的CAD應(yīng)用軟件安裝包制作功能,其設(shè)計(jì)思路與系統(tǒng)結(jié)構(gòu)簡(jiǎn)潔通用,接近傳統(tǒng)WINDOWS 應(yīng)用軟件安裝過(guò)程。Visual LISP 軟件開(kāi)發(fā)人員只需進(jìn)行簡(jiǎn)單更改就可輕松實(shí)現(xiàn)自己的安裝軟件制作,方便最終用戶的使用。
[1]符純?nèi)A.計(jì)算機(jī)輔助設(shè)計(jì)[M].四川:西南交通大學(xué)出版社,2006.
[2]周樂(lè)來(lái),馬 婧. AutoCAD2008 Visual LISP 二次開(kāi)發(fā)入門(mén)到精通[M].北京:機(jī)械工業(yè)出版社.2008.
[3]吳鴻宇,符純?nèi)A,張良棟.變壓器鐵心參數(shù)化繪圖設(shè)計(jì)[J].機(jī)械,2007,(11):30-32.