楊秀杰
(中國大唐集團科技工程有限公司北京100097)
吸收塔壁板展開圖管口自動定位繪圖軟件開發(fā)
楊秀杰
(中國大唐集團科技工程有限公司北京100097)
本文利用VB.NET對計算機繪圖軟件AutoCAD進行二次開發(fā),編寫完成了方便適用的自動定位繪圖軟件。該軟件應用十分方便快捷,使用時設(shè)計人員只需將相關(guān)數(shù)據(jù)輸入Excel表格,軟件自動讀入數(shù)據(jù)后立即可得到壁板展開圖管口定位分布,減輕了設(shè)計人員人工輸入的繁雜工作,可大大提高工作效率,降低勞動強度,節(jié)約設(shè)計時間。
吸收塔;VB;AutoCAD;二次開發(fā)
吸收塔是濕法脫硫(WFGD)工藝的核心設(shè)備,其結(jié)構(gòu)形式為大型薄壁結(jié)構(gòu),在設(shè)計中需要考慮焊接工藝等問題較多,其中壁板排板設(shè)計是保證塔體設(shè)計安全的前提。
吸收塔壁板排板圖繪制過程中,首先需要設(shè)計人員把所有管口在展開圖中定位繪制出來,然后再布置板寬及板長以最大限度地避免管口開在焊縫位置。脫硫吸收塔開孔接管非常多,在展開圖中定位繪圖相當耗時。本文將介紹管口自動定位繪圖軟件的開發(fā),該軟件將由管口表格作為輸入數(shù)據(jù),程序自動根據(jù)管口表的數(shù)據(jù)在展開圖中完成管口定位繪圖,十分方便快捷,可大大提高設(shè)計工作效率。
吸收塔設(shè)計中施工圖的繪制一般都使用AutoCAD軟件完成。AutoCAD是目前世界上廣泛應用于各種工程制圖等有關(guān)領(lǐng)域的功能強大的計算機輔助繪圖軟件。但由于其通用性較強,造成在專業(yè)性較強的領(lǐng)域的功能削弱。雖然其建模繪圖功能強大,但真正具有工程實際意義的圖形拓撲結(jié)構(gòu)信息和參數(shù)約束信息在軟件中不能反映。因此,在工程項目設(shè)計中需要結(jié)合企業(yè)的實際情況,開發(fā)出針對某一特定產(chǎn)品的AutoCAD應用軟件,實現(xiàn)依靠單一Au to-CAD軟件不能或不易達到的功能,解決實際工程問題。應用VB開發(fā)工具進行AutoCAD二次開發(fā)具有很大的優(yōu)勢。VB是一種面向?qū)ο蟮目梢暬幊坦ぞ?,擁有快速的開發(fā)環(huán)境,具有界面清晰、語法簡單、功能強大的特點,同時還能夠彌補AutoCAD軟件在其他方面的不足。Autodesk在Auto-CAD R14以后版本中設(shè)置了VB開發(fā)工具接口,使用戶可以在VB語言環(huán)境下對AutoCAD進行二次開發(fā)。VB.NET是微軟最新推出的VB開發(fā)平臺,具有眾多優(yōu)點。基于.NET框架平臺對AutoCAD進行二次開發(fā),可充分利用.NET的各種技術(shù)優(yōu)勢,在保證功能強大的前提下,大大提高軟件開發(fā)速度。
NET是微軟大型分布式軟件系統(tǒng)開發(fā)戰(zhàn)略,其核心組成部分是.NET框架,即一個用于Internet的組件模型。NET框架中所有其他功能得以實現(xiàn)的基礎(chǔ)是. NET Framework類庫,其是一個與公共語言運行庫緊密集成的可重復使用的類型集合。.NET框架中的“類”為開發(fā)人員提供了一個統(tǒng)一的、面向?qū)ο蟮?、層次化的、可擴展的類庫集。組件模型可以使軟件的每個組成部分使用不同的編程語言編寫,最后組合成一個可以運行的軟件系統(tǒng)。NET框架不僅代表了軟件界復用、重組、互操作研究的發(fā)展方向,也給制造業(yè)等相關(guān)軟件應用開發(fā)和集成帶來了巨大影響。Microsoft NET框架為開發(fā)人員提供了一個非常方便的開發(fā)環(huán)境,從而大大簡化了其網(wǎng)絡(luò)服務的建立、部署及發(fā)展。在AutoCAD軟件中,對象是分層次的,這個分層結(jié)構(gòu)是用戶應用程序能夠操作的對象模型,其中對對象的操作都是依據(jù)對象模型的分層關(guān)系來逐級操作的。
本繪圖軟件采用VB.NET開發(fā)人機交互界面,使用Microsoft Excel作為原始數(shù)據(jù)文件。首先利用VB. NET對Microsoft Excel的數(shù)據(jù)讀取完成設(shè)計數(shù)據(jù)導入,然后主繪圖程序采用VB.NET對計算機繪圖軟件AutoCAD進行二次開發(fā),編寫方便適用的自動定位繪圖軟件。
ActiveX Automation是微軟公司推出的一個技術(shù)標準,它適用于OLE對象和ActiveX對象,它可以準許一個應用程序操縱另一個應用程序中實現(xiàn)的對象,通過兩個程序間安排對話的方法達到一個程序控制另一個程序的目的。這兩個程序在操作系統(tǒng)進程中是不平等的,一個是客戶程序,另一個是服務程序??蛻舫绦蚴遣倏v和控制者,服務程序是被控制者。本繪圖軟件開發(fā)中VB.NET就是客戶程序,而AutoCAD是服務程序。應用VB.NET開發(fā)AutoCAD軟件應用程序的一般步驟是:先連接AutoCAD,然后定義AutoCAD對象模型,最后編寫AutoCAD應用程序。
由于VB.NET與AutoCAD運行在不同的內(nèi)存空間,所以進行二次開發(fā)時必須先將其與AutoCAD進行連接,即引用AutoCAD中的對象、屬性和方法的庫文件,該庫文件并不保存對象本身,只保存創(chuàng)建該對象的相關(guān)信息。AutoCAD應用程序?qū)ν庹故镜膶ο蟀礃錉罱Y(jié)構(gòu)按層次展開,它們依次為Application對象、Document對象、Model Space對象和Paper Space等深層次對象。其中,頂層對象為AutoCAD Application,是引用其他對象的基礎(chǔ)。軟件開發(fā)時,創(chuàng)建VisualBasic.NET項目后,打開項目菜單選擇添加引用,然后選擇COM,再復選AutoCAD Type Library,最后編寫VB程序代碼,創(chuàng)建AutoCAD對象,啟動運行Auto-CAD。
采用VB.NET開發(fā)人機交互界面,主繪圖程序?qū)τ嬎銠C繪圖軟件AutoCAD進行二次開發(fā),編寫吸收塔管口自動定位繪圖軟件,程序過程如下圖1所示:
圖1 程序結(jié)構(gòu)圖
使用軟件直接輸入吸收塔直徑等基本設(shè)計參數(shù)數(shù)據(jù),然后使用Excel文件讀入開孔數(shù)據(jù)未見,主繪圖程序自動判斷AutoCAD是否運行,如未運行,程序自動啟動AutoCAD程序,然后程序打開底圖文件,完成展開圖管口定位繪制。
5軟件開發(fā)實例
軟件開發(fā)的啟動AutoCAD部分代碼如下所示:
Dim acadapp As AutoCAD.AcadApplication
Dim acaddoc As AutoCAD.AcadDocument
Dim acadobj As AutoCAD.AcadObject
Try
acadapp=GetObject(,"AutoCAD.Application")
Catch ex As Exception
acadapp=CreateObject("AutoCAD.Application")
End Try
軟件開發(fā)完成的界面如下圖2所示,界面中需要輸入吸收塔直徑、高度、地腳螺栓以及是否有變徑等數(shù)據(jù),然后點擊“導入開孔數(shù)據(jù)”按鈕即可選擇Excel文件讀入開孔數(shù)據(jù)。
圖2 軟件界面
軟件界面中基本參數(shù)數(shù)據(jù)及開孔數(shù)據(jù)導入完成后,點擊“繪圖”按鈕即可完成吸收塔壁板展開管口自動定位圖,如圖3所示。
圖3 自動生成的圖紙
本文利用VB.NET對計算機繪圖軟件AutoCAD進行二次開發(fā),編寫完成了方便適用的自動定位繪圖軟件。該軟件針對吸收塔管口表可完成在壁板展開圖中自動定位繪制管口,為設(shè)計人員對壁板排板圖設(shè)計提供準備工作。
[1]曾洪飛,張帆,盧擇臨.AutoCAD VBA&VB.NET開發(fā)基礎(chǔ)與實例教程,中國電力出版社,2008年第一版
[2]陳立新,趙紅梅.基于VB.NET的AutoCAD二次開發(fā),計算機應用,2006(6),13-15