穆泉伶
(吉林建筑工程學(xué)院 計(jì)算機(jī)科學(xué)與工程學(xué)院,吉林 長春 130021)
建筑設(shè)計(jì)的成果以圖紙?bào)w現(xiàn)。建筑市場(chǎng)的良性發(fā)展,設(shè)計(jì)院承接的工程設(shè)計(jì)項(xiàng)目投資大、工期緊、地區(qū)分布廣,一直以來的單用戶的設(shè)計(jì)方式顯示出了不便之處。主要體現(xiàn)為設(shè)計(jì)人員之間溝通周期長,設(shè)計(jì)方案落實(shí)出現(xiàn)偏差等,影響了設(shè)計(jì)進(jìn)度和質(zhì)量,同時(shí)也降低了技術(shù)人員的工作熱情。我們充分利用網(wǎng)絡(luò)資源,開發(fā)并使用圖紙管理系統(tǒng),滿足了設(shè)計(jì)院圖檔管理需求。為了能在Internet上顯示CAD圖形,需要將CAD圖形文件的格式進(jìn)行轉(zhuǎn)換。我們?cè)O(shè)計(jì)實(shí)現(xiàn)了將CAD圖形文件由DWG格式自動(dòng)轉(zhuǎn)換為DWF格式的功能。轉(zhuǎn)換程序監(jiān)控服務(wù)器,在用戶對(duì)DWG圖紙上傳的同時(shí),自動(dòng)將DWG文件轉(zhuǎn)換為DWF文件。技術(shù)人員可以通過計(jì)算機(jī)網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)于電子圖紙的瀏覽、查詢、存儲(chǔ)及下載等操作,可實(shí)時(shí)、多用戶的進(jìn)行設(shè)計(jì)圖紙的發(fā)布及交互。
Autodesk公司開發(fā)的AutoCAD一直以來是建筑設(shè)計(jì)院采用的工程設(shè)計(jì)軟件。DWG是AutoCAD的一種應(yīng)用最為廣泛的文件格式,但是DWG格式圖紙不能通過瀏覽器進(jìn)行直接瀏覽。
DWG是CAD格式,即在網(wǎng)頁上不能直接使用.dwg為擴(kuò)展名的CAD圖形文件。因而需要將DWG圖形文件進(jìn)行格式轉(zhuǎn)換。早期的一種解決方法是通過捕捉圖形的位圖圖像,然后把它們添加到網(wǎng)頁上。盡管這種方法很容易實(shí)現(xiàn),但顯示的只是比較粗糙的圖像,同時(shí)為了兼顧圖形容易在網(wǎng)上存取,就要以限制它們的分辨率和尺寸為代價(jià)。
為了能在網(wǎng)頁上顯示CAD圖形,Autodesk公司使用DWF(Drawing Web Format)文件格式,DWF是Web圖形格式。隨著網(wǎng)絡(luò)的普及和AutoCAD2004的發(fā)布,DWF已經(jīng)成為了AutoDesk重點(diǎn)推廣的文件格式之一。
DWF文件格式支持超級(jí)鏈接、線寬、圖層、比例等圖形特性。與DWG文件相比較,具有以下優(yōu)點(diǎn):DWF文件可被壓縮,它的大小比轉(zhuǎn)換前的DWG文件小8倍;因其文件較小,所以DWF文件在網(wǎng)絡(luò)傳輸速度更快;DWF格式因其不顯示轉(zhuǎn)換前的可編輯的DWG圖形,即使用者無法更改原來的DWG圖形,所以DWF格式相比較而言更為安全;但是AutoCAD本身不能顯示DWF文件。
AutoCAD可以將DWG圖形文件轉(zhuǎn)換為DWF格式的文件,并將其在網(wǎng)絡(luò)上發(fā)布??梢员3謭D形的矢量格式,以利于表現(xiàn)更多的細(xì)節(jié),并且不受尺寸和分辨率的限制。在網(wǎng)頁端我們使用AutoDesk公司提供的Whip插件,用戶可通過Web瀏覽器對(duì)DWF圖形文件進(jìn)行瀏覽、下載、打印等操作,在網(wǎng)頁中通過平移和縮放觀看這些圖形。
由于設(shè)計(jì)院電子圖紙數(shù)量特別多,如果將圖紙一張一張地進(jìn)行格式轉(zhuǎn)換,非常麻煩,工作量太大。所以我們?cè)O(shè)計(jì)了自動(dòng)將CAD圖形文件由DWG轉(zhuǎn)換為DWF的程序部分,在用戶對(duì)CAD圖紙上傳的同時(shí),轉(zhuǎn)換程序監(jiān)控服務(wù)器,自動(dòng)將進(jìn)行格式轉(zhuǎn)換。
CAD文件轉(zhuǎn)換為DWF格式文件的程序流程圖如圖1所示。先讀取ini配置文件(ReadINI()),獲得轉(zhuǎn)換過程中的要用到的信息。再搜索要轉(zhuǎn)換的Dwg文件,如果沒有Dwg要轉(zhuǎn)換就重新開始,否則讀取dwg文件轉(zhuǎn)換。
這里說明類的生命周期和調(diào)用關(guān)系。如圖2所示。
圖1 CAD文件轉(zhuǎn)換為DWF格式文件的程序流程圖
圖2 CAD文件轉(zhuǎn)換序列圖
先是TDwgToDwf被創(chuàng)建,并調(diào)用自己的私有方法(讀取ini配置文件readini,搜索要轉(zhuǎn)換的Dwg文件searchfile,讀取dwg文件轉(zhuǎn)換readfile).再調(diào)用自己的OpvoloView方法,在該方法中創(chuàng)建了TOpenSelect線程,并給DwgName屬性賦值,TOpenSelect線程啟動(dòng)并執(zhí)行.再創(chuàng)建TOpenPrint線程,并給DwfName屬性賦值,TOpenPrint線程啟動(dòng)并執(zhí)行.最后調(diào)用CloseAllClient關(guān)閉此次操作的分配的空間。
VoloView是一個(gè)數(shù)字設(shè)計(jì)檢查工具,可以瀏覽和測(cè)量、打印包括DW在內(nèi)的CAD圖形,但他不能修改原始文件。我們調(diào)用VoloView的打印功能,將DWG格式的cad圖紙文件轉(zhuǎn)換為DWF格式文件。在實(shí)現(xiàn)CAD圖紙文件轉(zhuǎn)換程序的實(shí)現(xiàn)上,從序列圖上看主要有兩個(gè)線程比較重要,調(diào)用VoloView打開DWG文件和調(diào)用VoloView打印功能轉(zhuǎn)換成DWF文件。
TOpenSelect負(fù)責(zé)判斷Volo View的打開對(duì)話框是否彈出,如果沒彈出則等待。如果彈出則修改打開對(duì)話框中要打開文件的內(nèi)容,并關(guān)閉打開對(duì)話框。
TOpenPrint負(fù)責(zé)判斷AutoCAD DWF Writer的另存為對(duì)話框是否彈出,如果沒彈出則等待。如果彈出則修改對(duì)話框中要保存文件的內(nèi)容,并關(guān)閉對(duì)話框。
根據(jù)新形式下建筑設(shè)計(jì)院電子圖紙管理的需要,充分利用計(jì)算機(jī)網(wǎng)絡(luò)資源,分析并利用了DWF文件的特點(diǎn),完成了CAD圖紙的格式自動(dòng)轉(zhuǎn)換。提高了多用戶間的工作效率,也提高了企業(yè)的市場(chǎng)競(jìng)爭(zhēng)力。
[1] [美]Ellen FinkelsteinAutoCAD 2004寶典[M].北京:電子工業(yè)出版社,2003.
[2] 姚涵珍.AutoCAD 2004交互工程繪圖及二次開發(fā)[M].北京:機(jī)械工業(yè)出版社,2003.
[3] 王玉昆.CAD二次開發(fā)技術(shù)及其工程應(yīng)用[M].北京:清華大學(xué)出版社,2008.
[4] Autodesk,Inc.Autodesk Dsign Review 2007 and DWF View 7.0[M].APIS Reference.2006.