王志祥 王默熙 鄭炳祥 王玉偉 陳元元 吳建章
(海洋石油工程股份有限公司 中國 天津 300452)
AutoCAD與Excel二次開發及其在海洋工程中的應用技術研究
王志祥 王默熙 鄭炳祥 王玉偉 陳元元 吳建章
(海洋石油工程股份有限公司 中國 天津 300452)
伴隨著國家十二五規劃出臺,深海石油開采上升為國家核心戰略。但在海洋工程實際工作中,圖紙量大、信息量大、Excel數據處理量大,圖紙間、圖紙與Excel數據傳遞若仍然采用人工方法,顯然已經非常落后。為大幅度提高工作效率、降低勞動強度,筆者采用VB對AutoCAD及Excel進行聯合開發,設計了一套工程師輔助軟件,在工程實際應用中取得了極其優異的效果。
海洋工程;Excel;數據傳遞;優異效果
日常工作中存在著很多重復、繁瑣、耗時的工作,比如在AutoCAD中制作材料表、將AutoCAD圖中的材料表整理到Excel中、將多個Excel表中的數據進行匯總處理、繪制不同尺寸標準部件等。
以上各項工作目前多采用人工方式,由于工程中圖紙數量龐大,這些工作不僅耗費了大量時間,延遲了工程的交付時間,而且勞動強度大、工作效率低、很容易出錯。
為了節省工作時間、提高工作效率、降低勞動強度,將工程師從這些重復、繁瑣、耗時的工作中解放出來,去完善和優化其他更為重要的工作,筆者采用VB對AutoCAD及Excel進行了二次開發,設計與開發了一套工程師輔助軟件,在工程應用中取得了很好的應用效果。
本文以AutoCAD2004和Excel2003為平臺,以Visual Basic為編程工具,成功應用Automation通信協議標準對AutoCAD和Excel進行了二次開發及應用。AutoCAD,Visual Basic,Excel之間的通信示意圖如圖1.1所示。

圖1.1 AutoCAD,VB,Excel通信示意圖
Automation是基于Microsoft公司Component Object Model(COM)技術的通信協議標準,從OLE(Object Linking and Embeding)發展而來。
利用該通信標準,可以將一個應用程序中的開放對象嵌入或鏈接到其他應用程序中,從而實現不同應用程序間的數據通信和數據共享[1]。
Automation通信協議以客戶端/服務器方式工作。作為Automation服務器的應用程序能夠為其他應用程序提供一定服務及開放對象;作為Automation客戶端的應用程序能夠通過適當協議訪問服務器應用程序[2]。
本文中 AutoCAD2004和 Excel2003作為 Automation服務器,Visual Basic作為 Automation客戶端。 在 Visual Basic中依據Automation通信協議訪問AutoCAD與Excel開放對象的屬性及方法,實現AutoCAD、Visual Basic與Excel三者間的數據通信,從而實現對AutoCAD圖形用戶界面中圖形對象的適當操作及對Excel數據的各種訪問。

圖1.2 AutoCAD應用程序對象模型示意圖
理解AutoCAD的對象模型是對其進行編程的基礎,AutoCAD的對象模型結構示意圖如圖1.2所示。
AutoCAD應用程序以層次結構組織對象,頂層是Application對象,即AutoCAD應用程序本身,其他對象均繼承自Application對象。
Application對象下一層是 Preferences、Document等對象,通過Preferences對象可以對AutoCAD Tools/Preferences菜單項中的各個選項進行設置。
Document對象是控制 AutoCAD圖形文件的直接對象,代表AutoCAD圖形文件。Document對象包含Model Space、Paper Space對象及Blocks、Layers、Selectionsets、utility等一系列對象。Model Space是當前圖形文件中圖形實體,如直線、圓、多義線等的集合,每個實體即是一個對象,可通過屬性和方法改變實體或生成新實體[3]。
對非圖形實體,如層(layer)、線形(line type)等的訪問則通過訪問Document對象相應的集合類型子對象,如Layers、LineTypes等實現。
Excel應用程序的對象模型包含一些功能強大的數據對象,常用對象包括:Application對象、Workbook對象、Worksheet對象和Range對象等。

圖1.3 Excel 2003應用程序對象模型示意圖
Application對象處于對象層級結構的最高層,代表了當前正在運行的Excel應用程序本身,其他對象都是該對象的子對象。
Workbook工作簿對象位于Application對象的下一層次。一個Workbook對象代表一個Excel文件,包括Worksheet對象、Range對象等。
Worksheet對象代表Excel工作簿中的工作表。通過該對象,可以在程序中完成對工作表的操作。
Range對象是一個單元格區域,該區域可以是一個單元格、某一行、某一列或任意單元格區域[4]。
理解了AutoCAD與Excel應用程序對象模型,就可以在客戶端應用程序VB中,遵循Automation通信標準,編寫程序以訪問服務器端應用程序AutoCAD、Excel開放對象適當的屬性和方法,從而代替人工快速高效地完成一些重復、繁瑣、耗時的工作。
本軟件目前具有下述功能:將Excel表格導入AutoCAD圖紙、將AutoCAD圖紙中的材料表導出至Excel、多個Excel表格數據匯總整理、在AutoCAD圖紙中繪制標準部件。
由于AutoCAD制表功能和文字處理功能不強,

圖2.1 將Excel表格導入至AutoCAD圖紙界面

圖2.2 將Excel表格導入至AutoCAD程序流程圖
工作中對AutoCAD圖紙中材料表格式的要求比較嚴格,如字高、線寬、對齊方式等,因此在AutoCAD中采用手工方式制作材料表是一項繁瑣、耗時的工作,占用了工程師很多寶貴的時間。
本功能實現了將Excel表格自動導入AutoCAD圖紙的指定位置,實現了用Excel強大制表功能及文字處理功能對AutoCAD功能的補充,簡化了AutoCAD制作材料表的過程,大大提高了工作效率,提高了材料表的質量[5]。
本功能具有字高、線寬、對齊方式、有無邊框、表格排布方式可定制等優點。由于采用“四點定位表格”方法,因此可以精確確定導入AutoCAD表格的插入點位置、導入表格的寬度及高度,完全能夠滿足實際工作的需求,具有很強的實用性。
本功能實現了將AutoCAD材料表、各種文字信息自動導出到Excel中,導出的表格格式及文字信息與原AutoCAD信息一致,并且操作簡單、實用。
本功能支持單個導出、批量導出功能,操作簡單,只需在AutoCAD選擇導出點,即可將導出點確定范圍內的材料表自動排序并導出到Excel中,導出材料表與AutoCAD原材料表格式保持一致。
本軟件支持容差處理功能,因為AutoCAD材料表的各行文字信息沒有嚴格對齊,一般都存在一定偏差,通過設置容差,可以增強軟件對不同圖紙的適應能力。

圖2.3 將AutoCAD圖紙中的材料表導出至Excel界面

圖2.4 將AutoCAD材料表導出至Excel程序流程圖
在日常工作中經常需要使用Excel對數據進行處理,處理過程中往往存在著很多重復、繁瑣、耗時的工作。本軟件實現了在VB中操縱Excel,從而實現自動化辦公,提高工作效率。
本功能用以將多個Excel表格中的數據進行匯總整理,能夠將多個Excel表格中名稱及規格等相同的散料匯總在一起,并能夠實現對匯總后的表格進行同類數量求和。
本功能支持多個關鍵字匯總整理,實現將多個關鍵字相同的散料匯總到一起。軟件具有批處理功能,可同時讀取并處理多個Excel文件,節省了工作時間、提高了工作效率。

圖2.5 多個Excel表格自動匯總整理主界面

圖2.6 多個Excel表格自動匯總整理程序流程圖
針對在AutoCAD繪圖中常用的、形式相同的標準部件,一個可行方法是將其做成參數化設備,當需要時只需輸入合適的尺寸數據,即可實現圖紙的自動1:1繪制,減少了繪制圖形的工作量,提高了工作效率。
對于圖2.7中所示的標準圖形部件,當需要繪制一個形式相同、尺寸不同的標準部件時,只需在參數表中輸入各個實際尺寸值,點擊“繪制圖形”按鈕,即可繪制出新圖形,避免了對原圖進行修改的繁瑣過程,提高了工作效率。

圖2.7 在AutoCAD圖紙中繪制標準部件界面
本文以AutoCAD2004和Excel2003為平臺,以Visual Basic為編程工具,成功應用Automation通信協議對AutoCAD和Excel進行了二次開發,所設計與開發的軟件極大地提高了生產效率,節約了勞動時間,降低了勞動強度,在實際工程應用中取得了很好的應用效果。
[1]王述云.利用ActiveX Automation技術實現工藝文件的輸出[J].組合機床與自動化加工技術,2004,1.
[2]肖啟敏,朱育林.基于VB二次開發AutoCAD的機械傳動CAD系統[J].機電產品開發與創新,2007,4.
[3]楊立軍,黨新安,夏田.基于VB的AutoCAD二次開發技術[J].現代制造工程,2004,3.
[4]姚文濤.Excel VBA應用開發經典案例[M].北京:清華大學出版社,2009,7.
[5]張帆,鄭立楷,等.AutoCAD VBA二次開發教程[M].北京:清華大學出版社,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—),男,江蘇漣水人,助理工程師,碩士研究生,主要研究方向為海洋平臺配管。
王默熙(1985—),男,吉林前郭人,助理工程師,學士,主要研究方向為海洋平臺配管。
鄭炳祥(1985—)男,安徽太和人,助理工程師,學士,主要研究方向為海洋平臺配管。
王玉偉(1987—),男,黑龍江寧安人,助理工程師,學士,主要研究方向為海洋平臺配管。
陳元元(1986—),男,湖南茶陵人,助理工程師,學士,主要研究方向為海洋平臺配管。
吳建章(1982—),男,河北石家莊人,助理工程師,碩士研究生,主要研究方向為海洋平臺儀表。
張慧]