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