王志祥 王默熙 鄭炳祥 王玉偉 陳元元 吳建章
(海洋石油工程股份有限公司 中國 天津 300452)
AutoCAD與Excel二次開發(fā)及其在海洋工程中的應(yīng)用技術(shù)研究
王志祥 王默熙 鄭炳祥 王玉偉 陳元元 吳建章
(海洋石油工程股份有限公司 中國 天津 300452)
伴隨著國家十二五規(guī)劃出臺,深海石油開采上升為國家核心戰(zhàn)略。但在海洋工程實(shí)際工作中,圖紙量大、信息量大、Excel數(shù)據(jù)處理量大,圖紙間、圖紙與Excel數(shù)據(jù)傳遞若仍然采用人工方法,顯然已經(jīng)非常落后。為大幅度提高工作效率、降低勞動強(qiáng)度,筆者采用VB對AutoCAD及Excel進(jìn)行聯(lián)合開發(fā),設(shè)計(jì)了一套工程師輔助軟件,在工程實(shí)際應(yīng)用中取得了極其優(yōu)異的效果。
海洋工程;Excel;數(shù)據(jù)傳遞;優(yōu)異效果
日常工作中存在著很多重復(fù)、繁瑣、耗時(shí)的工作,比如在AutoCAD中制作材料表、將AutoCAD圖中的材料表整理到Excel中、將多個(gè)Excel表中的數(shù)據(jù)進(jìn)行匯總處理、繪制不同尺寸標(biāo)準(zhǔn)部件等。
以上各項(xiàng)工作目前多采用人工方式,由于工程中圖紙數(shù)量龐大,這些工作不僅耗費(fèi)了大量時(shí)間,延遲了工程的交付時(shí)間,而且勞動強(qiáng)度大、工作效率低、很容易出錯(cuò)。
為了節(jié)省工作時(shí)間、提高工作效率、降低勞動強(qiáng)度,將工程師從這些重復(fù)、繁瑣、耗時(shí)的工作中解放出來,去完善和優(yōu)化其他更為重要的工作,筆者采用VB對AutoCAD及Excel進(jìn)行了二次開發(fā),設(shè)計(jì)與開發(fā)了一套工程師輔助軟件,在工程應(yīng)用中取得了很好的應(yīng)用效果。
本文以AutoCAD2004和Excel2003為平臺,以Visual Basic為編程工具,成功應(yīng)用Automation通信協(xié)議標(biāo)準(zhǔn)對AutoCAD和Excel進(jìn)行了二次開發(fā)及應(yīng)用。AutoCAD,Visual Basic,Excel之間的通信示意圖如圖1.1所示。
圖1.1 AutoCAD,VB,Excel通信示意圖
Automation是基于Microsoft公司Component Object Model(COM)技術(shù)的通信協(xié)議標(biāo)準(zhǔn),從OLE(Object Linking and Embeding)發(fā)展而來。
利用該通信標(biāo)準(zhǔn),可以將一個(gè)應(yīng)用程序中的開放對象嵌入或鏈接到其他應(yīng)用程序中,從而實(shí)現(xiàn)不同應(yīng)用程序間的數(shù)據(jù)通信和數(shù)據(jù)共享[1]。
Automation通信協(xié)議以客戶端/服務(wù)器方式工作。作為Automation服務(wù)器的應(yīng)用程序能夠?yàn)槠渌麘?yīng)用程序提供一定服務(wù)及開放對象;作為Automation客戶端的應(yīng)用程序能夠通過適當(dāng)協(xié)議訪問服務(wù)器應(yīng)用程序[2]。
本文中 AutoCAD2004和 Excel2003作為 Automation服務(wù)器,Visual Basic作為 Automation客戶端。 在 Visual Basic中依據(jù)Automation通信協(xié)議訪問AutoCAD與Excel開放對象的屬性及方法,實(shí)現(xiàn)AutoCAD、Visual Basic與Excel三者間的數(shù)據(jù)通信,從而實(shí)現(xiàn)對AutoCAD圖形用戶界面中圖形對象的適當(dāng)操作及對Excel數(shù)據(jù)的各種訪問。
圖1.2 AutoCAD應(yīng)用程序?qū)ο竽P褪疽鈭D
理解AutoCAD的對象模型是對其進(jìn)行編程的基礎(chǔ),AutoCAD的對象模型結(jié)構(gòu)示意圖如圖1.2所示。
AutoCAD應(yīng)用程序以層次結(jié)構(gòu)組織對象,頂層是Application對象,即AutoCAD應(yīng)用程序本身,其他對象均繼承自Application對象。
Application對象下一層是 Preferences、Document等對象,通過Preferences對象可以對AutoCAD Tools/Preferences菜單項(xiàng)中的各個(gè)選項(xiàng)進(jìn)行設(shè)置。
Document對象是控制 AutoCAD圖形文件的直接對象,代表AutoCAD圖形文件。Document對象包含Model Space、Paper Space對象及Blocks、Layers、Selectionsets、utility等一系列對象。Model Space是當(dāng)前圖形文件中圖形實(shí)體,如直線、圓、多義線等的集合,每個(gè)實(shí)體即是一個(gè)對象,可通過屬性和方法改變實(shí)體或生成新實(shí)體[3]。
對非圖形實(shí)體,如層(layer)、線形(line type)等的訪問則通過訪問Document對象相應(yīng)的集合類型子對象,如Layers、LineTypes等實(shí)現(xiàn)。
Excel應(yīng)用程序的對象模型包含一些功能強(qiáng)大的數(shù)據(jù)對象,常用對象包括:Application對象、Workbook對象、Worksheet對象和Range對象等。
圖1.3 Excel 2003應(yīng)用程序?qū)ο竽P褪疽鈭D
Application對象處于對象層級結(jié)構(gòu)的最高層,代表了當(dāng)前正在運(yùn)行的Excel應(yīng)用程序本身,其他對象都是該對象的子對象。
Workbook工作簿對象位于Application對象的下一層次。一個(gè)Workbook對象代表一個(gè)Excel文件,包括Worksheet對象、Range對象等。
Worksheet對象代表Excel工作簿中的工作表。通過該對象,可以在程序中完成對工作表的操作。
Range對象是一個(gè)單元格區(qū)域,該區(qū)域可以是一個(gè)單元格、某一行、某一列或任意單元格區(qū)域[4]。
理解了AutoCAD與Excel應(yīng)用程序?qū)ο竽P停涂梢栽诳蛻舳藨?yīng)用程序VB中,遵循Automation通信標(biāo)準(zhǔn),編寫程序以訪問服務(wù)器端應(yīng)用程序AutoCAD、Excel開放對象適當(dāng)?shù)膶傩院头椒?,從而代替人工快速高效地完成一些重?fù)、繁瑣、耗時(shí)的工作。
本軟件目前具有下述功能:將Excel表格導(dǎo)入AutoCAD圖紙、將AutoCAD圖紙中的材料表導(dǎo)出至Excel、多個(gè)Excel表格數(shù)據(jù)匯總整理、在AutoCAD圖紙中繪制標(biāo)準(zhǔn)部件。
由于AutoCAD制表功能和文字處理功能不強(qiáng),
圖2.1 將Excel表格導(dǎo)入至AutoCAD圖紙界面
圖2.2 將Excel表格導(dǎo)入至AutoCAD程序流程圖
工作中對AutoCAD圖紙中材料表格式的要求比較嚴(yán)格,如字高、線寬、對齊方式等,因此在AutoCAD中采用手工方式制作材料表是一項(xiàng)繁瑣、耗時(shí)的工作,占用了工程師很多寶貴的時(shí)間。
本功能實(shí)現(xiàn)了將Excel表格自動導(dǎo)入AutoCAD圖紙的指定位置,實(shí)現(xiàn)了用Excel強(qiáng)大制表功能及文字處理功能對AutoCAD功能的補(bǔ)充,簡化了AutoCAD制作材料表的過程,大大提高了工作效率,提高了材料表的質(zhì)量[5]。
本功能具有字高、線寬、對齊方式、有無邊框、表格排布方式可定制等優(yōu)點(diǎn)。由于采用“四點(diǎn)定位表格”方法,因此可以精確確定導(dǎo)入AutoCAD表格的插入點(diǎn)位置、導(dǎo)入表格的寬度及高度,完全能夠滿足實(shí)際工作的需求,具有很強(qiáng)的實(shí)用性。
本功能實(shí)現(xiàn)了將AutoCAD材料表、各種文字信息自動導(dǎo)出到Excel中,導(dǎo)出的表格格式及文字信息與原AutoCAD信息一致,并且操作簡單、實(shí)用。
本功能支持單個(gè)導(dǎo)出、批量導(dǎo)出功能,操作簡單,只需在AutoCAD選擇導(dǎo)出點(diǎn),即可將導(dǎo)出點(diǎn)確定范圍內(nèi)的材料表自動排序并導(dǎo)出到Excel中,導(dǎo)出材料表與AutoCAD原材料表格式保持一致。
本軟件支持容差處理功能,因?yàn)锳utoCAD材料表的各行文字信息沒有嚴(yán)格對齊,一般都存在一定偏差,通過設(shè)置容差,可以增強(qiáng)軟件對不同圖紙的適應(yīng)能力。
圖2.3 將AutoCAD圖紙中的材料表導(dǎo)出至Excel界面
圖2.4 將AutoCAD材料表導(dǎo)出至Excel程序流程圖
在日常工作中經(jīng)常需要使用Excel對數(shù)據(jù)進(jìn)行處理,處理過程中往往存在著很多重復(fù)、繁瑣、耗時(shí)的工作。本軟件實(shí)現(xiàn)了在VB中操縱Excel,從而實(shí)現(xiàn)自動化辦公,提高工作效率。
本功能用以將多個(gè)Excel表格中的數(shù)據(jù)進(jìn)行匯總整理,能夠?qū)⒍鄠€(gè)Excel表格中名稱及規(guī)格等相同的散料匯總在一起,并能夠?qū)崿F(xiàn)對匯總后的表格進(jìn)行同類數(shù)量求和。
本功能支持多個(gè)關(guān)鍵字匯總整理,實(shí)現(xiàn)將多個(gè)關(guān)鍵字相同的散料匯總到一起。軟件具有批處理功能,可同時(shí)讀取并處理多個(gè)Excel文件,節(jié)省了工作時(shí)間、提高了工作效率。
圖2.5 多個(gè)Excel表格自動匯總整理主界面
圖2.6 多個(gè)Excel表格自動匯總整理程序流程圖
針對在AutoCAD繪圖中常用的、形式相同的標(biāo)準(zhǔn)部件,一個(gè)可行方法是將其做成參數(shù)化設(shè)備,當(dāng)需要時(shí)只需輸入合適的尺寸數(shù)據(jù),即可實(shí)現(xiàn)圖紙的自動1:1繪制,減少了繪制圖形的工作量,提高了工作效率。
對于圖2.7中所示的標(biāo)準(zhǔn)圖形部件,當(dāng)需要繪制一個(gè)形式相同、尺寸不同的標(biāo)準(zhǔn)部件時(shí),只需在參數(shù)表中輸入各個(gè)實(shí)際尺寸值,點(diǎn)擊“繪制圖形”按鈕,即可繪制出新圖形,避免了對原圖進(jìn)行修改的繁瑣過程,提高了工作效率。
圖2.7 在AutoCAD圖紙中繪制標(biāo)準(zhǔn)部件界面
本文以AutoCAD2004和Excel2003為平臺,以Visual Basic為編程工具,成功應(yīng)用Automation通信協(xié)議對AutoCAD和Excel進(jìn)行了二次開發(fā),所設(shè)計(jì)與開發(fā)的軟件極大地提高了生產(chǎn)效率,節(jié)約了勞動時(shí)間,降低了勞動強(qiáng)度,在實(shí)際工程應(yīng)用中取得了很好的應(yīng)用效果。
[1]王述云.利用ActiveX Automation技術(shù)實(shí)現(xiàn)工藝文件的輸出[J].組合機(jī)床與自動化加工技術(shù),2004,1.
[2]肖啟敏,朱育林.基于VB二次開發(fā)AutoCAD的機(jī)械傳動CAD系統(tǒng)[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2007,4.
[3]楊立軍,黨新安,夏田.基于VB的AutoCAD二次開發(fā)技術(shù)[J].現(xiàn)代制造工程,2004,3.
[4]姚文濤.Excel VBA應(yīng)用開發(fā)經(jīng)典案例[M].北京:清華大學(xué)出版社,2009,7.
[5]張帆,鄭立楷,等.AutoCAD VBA二次開發(fā)教程[M].北京:清華大學(xué)出版社,2006,1.
Further Development of AutoCAD and Excel and its Application in Ocean Engineering
WANG Zhi-xiangWANG Mo-xiZHENG Bing-xiangWANG Yu-weiCHEN Yuan-yuan WU Jian-zhang
(China Offshore Oil Engineering Company,Tianjin,300452,China)
As for the twelfth five-year plan Coming on,exploit oil in deep sea becnme the main stratagem of China.There are many drawing、information and data transfer in daily work of offshore engineering.It is very fall behind if we use statistical data by people.To improve work efficiency and reduce intensity of labour greatly,this paper makes a further development of AutoCAD and Excel using the VB programming language based on the Automation Protocols.A software toolkit has been designed and developed which has been used in engineering application and obtained an excellent effect in the application.
Offshore engineering;Excel;Data transfer;Exceptional effection
王志祥(1981—),男,江蘇漣水人,助理工程師,碩士研究生,主要研究方向?yàn)楹Q笃脚_配管。
王默熙(1985—),男,吉林前郭人,助理工程師,學(xué)士,主要研究方向?yàn)楹Q笃脚_配管。
鄭炳祥(1985—)男,安徽太和人,助理工程師,學(xué)士,主要研究方向?yàn)楹Q笃脚_配管。
王玉偉(1987—),男,黑龍江寧安人,助理工程師,學(xué)士,主要研究方向?yàn)楹Q笃脚_配管。
陳元元(1986—),男,湖南茶陵人,助理工程師,學(xué)士,主要研究方向?yàn)楹Q笃脚_配管。
吳建章(1982—),男,河北石家莊人,助理工程師,碩士研究生,主要研究方向?yàn)楹Q笃脚_儀表。
張慧]