基于AutoCAD的燃?xì)夤芫W(wǎng)水力計(jì)算軟件開發(fā)

摘 要

以AutoCAD為平臺(tái),采用AutoCAD Object ARX二次開發(fā)技術(shù)實(shí)現(xiàn)對(duì)燃?xì)夤芫W(wǎng)水力計(jì)算的數(shù)據(jù)自動(dòng)化處理,包括建立管網(wǎng)節(jié)點(diǎn)和管段的拓?fù)潢P(guān)系、讀取Excel表中的管網(wǎng)數(shù)據(jù)并顯示到圖中,以獲得管網(wǎng)的可視化;采用C#語言,編制了中低壓燃?xì)夤芫W(wǎng)水力計(jì)算軟件。

摘要:以AutoCAD為平臺(tái),采用AutoCAD Object ARX二次開發(fā)技術(shù)實(shí)現(xiàn)對(duì)燃?xì)夤芫W(wǎng)水力計(jì)算的數(shù)據(jù)自動(dòng)化處理,包括建立管網(wǎng)節(jié)點(diǎn)和管段的拓?fù)潢P(guān)系、讀取Excel表中的管網(wǎng)數(shù)據(jù)并顯示到圖中,以獲得管網(wǎng)的可視化;采用C#語言,編制了中低壓燃?xì)夤芫W(wǎng)水力計(jì)算軟件。
關(guān)鍵詞:AutoCAD;Object ARX;水力計(jì)算;水力計(jì)算圖
Development of Hydraulic Calculation Software for Gas Network Based on AutoCAD
LI Danhua,GAO Huawei,NIE Tingzhe,ZHANG Xingmei,MIAO Yanshu
AbstractBased on AutoCAD,the automatic processing of hydraulic calculation data of gas network is realized by the Object ARX secondary development technology that includes establishing the topological relation between nodes and segments of the network,reading the network data in Excel spreadsheet and displaying them on an AutoCAD drawing to implement visualization of the network.The hydraulic calculation software for medium and low pressure gas network is programmed by C# language.
Key wordsAutoCAD;Object ARX;hydraulic calculation;hydraulic calculation drawing
    隨著天然氣的大力推廣應(yīng)用,城市燃?xì)夤芫W(wǎng)的規(guī)模越來越大,在進(jìn)行規(guī)劃、設(shè)計(jì)和管網(wǎng)運(yùn)行時(shí),水力計(jì)算需要處理的數(shù)據(jù)越來越多。準(zhǔn)確、快速地生成水力計(jì)算圖,實(shí)現(xiàn)水力計(jì)算與管網(wǎng)AutoCAD圖形的無縫結(jié)合成為提高燃?xì)夤芫W(wǎng)水力計(jì)算效率的重要途徑[1~4]。為準(zhǔn)確、快速地生成水力計(jì)算圖及進(jìn)行水力計(jì)算,本文開發(fā)了中低壓燃?xì)夤芫W(wǎng)水力計(jì)算軟件GPA。軟件包含了兩個(gè)模塊,即以AutoCAD為平臺(tái),采用0bject ARX二次開發(fā)技術(shù)開發(fā)的模塊一(ARX模塊)和采用C#語言開發(fā)的模塊二(水力計(jì)算模塊)。
1 燃?xì)夤芫W(wǎng)圖的0bject ARX二次開發(fā)
   在編制城市中壓燃?xì)夤芫W(wǎng)規(guī)劃、初步設(shè)計(jì)和進(jìn)行調(diào)度運(yùn)行時(shí),水力計(jì)算是在燃?xì)夤芫W(wǎng)AutoCAD圖的基礎(chǔ)上進(jìn)行的,水力計(jì)算圖是以燃?xì)夤芫W(wǎng)Aut0CAD圖為藍(lán)本的。以此為出發(fā)點(diǎn),本文針對(duì)Aut0CAD進(jìn)行二次開發(fā),目的是開發(fā)一個(gè)ARX模塊,當(dāng)AutoCAD載入該模塊后,僅需人工輸入管網(wǎng)圖上所有節(jié)點(diǎn)的節(jié)點(diǎn)號(hào),即可實(shí)現(xiàn)對(duì)燃?xì)夤芫W(wǎng)圖的數(shù)據(jù)自動(dòng)化處理。
    考慮到程序的實(shí)用性、可靠度和效率,采用Object ARX技術(shù)對(duì)AutoCAD進(jìn)行二次開發(fā),以實(shí)現(xiàn)燃?xì)夤芫W(wǎng)水力計(jì)算圖與數(shù)據(jù)的自動(dòng)化處理。
   Object ARX是Autodesk公司針對(duì)AutoCAD平臺(tái)上的二次開發(fā)而推出的一個(gè)開發(fā)軟件包,能快速地訪問AutoCAD圖形數(shù)據(jù)庫。與以往的AutoCAD二次開發(fā)工具不同,ARX應(yīng)用程序是一個(gè)動(dòng)態(tài)鏈接庫(DLL),共享AutoCAD的地址空間,對(duì)AutoCAD進(jìn)行直接函數(shù)調(diào)用。因此,使用0bject ARX編程的函數(shù)的執(zhí)行速度得以大大提高[5]。
    開發(fā)出的ARX模塊具體算法如下:
    ① 管網(wǎng)節(jié)點(diǎn)數(shù)據(jù)的處理
    ARX模塊功能需求:對(duì)于水力計(jì)算圖中的管網(wǎng)節(jié)點(diǎn),一般有3個(gè)信息需要在圖中顯示:節(jié)點(diǎn)號(hào)、節(jié)點(diǎn)流量和節(jié)點(diǎn)壓力。將這些節(jié)點(diǎn)信息保存在一個(gè)Excel表中,通過ARX模塊可把Excel表中的節(jié)點(diǎn)信息顯示到管網(wǎng)圖中相應(yīng)的節(jié)點(diǎn)上。
    算法:打開管網(wǎng)圖后,運(yùn)行MLeader命令對(duì)管網(wǎng)圖上的節(jié)點(diǎn)進(jìn)行標(biāo)注,添加相應(yīng)的節(jié)點(diǎn)號(hào)。
    提取管網(wǎng)圖中每個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)號(hào),判斷是否有重復(fù)的節(jié)點(diǎn)號(hào)或漏標(biāo)的號(hào)(導(dǎo)致節(jié)點(diǎn)號(hào)之間不連續(xù)),若有,則報(bào)錯(cuò),提醒操作人員修改;若無,則讀取Excel表中的節(jié)點(diǎn)信息,并依次繪制到管網(wǎng)圖中的相應(yīng)節(jié)點(diǎn)上。
    ② 管網(wǎng)管段數(shù)據(jù)的處理
    ARX模塊功能需求:對(duì)于水力計(jì)算圖中的管網(wǎng)管段,一般有6個(gè)信息需要在圖中顯示:管段號(hào)、管材、管徑、管段長度、管段流量和管段壓力降。將這些信息保存在Excel表中,通過ARX模塊可把Excel表中的管段信息顯示到圖中相應(yīng)的管段上。
    算法:為方便管段數(shù)據(jù)的處理,ARX模塊要為圖中所有的節(jié)點(diǎn)和管段建立拓?fù)潢P(guān)系。a.找到圖中所有的節(jié)點(diǎn)和管段,為每個(gè)節(jié)點(diǎn)找到與其相連接的管段,并保存信息。b.為每個(gè)管段找到與其連接的管段,并保存信息。c.給定任意兩個(gè)節(jié)點(diǎn),查找其相連的路徑,如果此路徑上的管段路線上還有其他的節(jié)點(diǎn),則這兩個(gè)節(jié)點(diǎn)之間定義為沒有相連管段;否則,此路徑上的管段定義為相連管段。
    ARX模塊可實(shí)現(xiàn)的功能:遍歷管網(wǎng)圖中所有節(jié)點(diǎn),找出所有節(jié)點(diǎn)之間的相連管段并編制管段號(hào);記錄連接管段的兩個(gè)節(jié)點(diǎn)號(hào)和自動(dòng)測(cè)量管段長度;將管網(wǎng)的管段號(hào)、管段長度、管段起點(diǎn)號(hào)及管段終點(diǎn)號(hào)等數(shù)據(jù)保存到Excel表中,以備水力計(jì)算軟件調(diào)用;將水力計(jì)算軟件生成的Excel表中的數(shù)據(jù)繪制到管網(wǎng)圖的相應(yīng)管段上,以生成水力計(jì)算圖。
    本文采用的這種水力計(jì)算圖的計(jì)算機(jī)生成方法,不局限于管段是垂直和水平的情況,它能依管段的傾斜而以相同角度的傾斜度標(biāo)注數(shù)據(jù)、文字說明及管段流向。
2 水力計(jì)算模塊的開發(fā)
    水力計(jì)算模塊是在.NET平臺(tái)上,采用C#語言開發(fā)設(shè)計(jì),算法基于節(jié)點(diǎn)方程法[8]編制,由參數(shù)編輯、參數(shù)輸入、預(yù)估節(jié)點(diǎn)流量、管網(wǎng)計(jì)算及結(jié)果輸出子模塊組成。水力計(jì)算模塊的特點(diǎn)如下:
    ① 數(shù)據(jù)可直接調(diào)用ARX模塊生成的數(shù)據(jù)文件進(jìn)行計(jì)算;
    ② 水力計(jì)算公式采用規(guī)范[6]推薦的公式,算法是基于節(jié)點(diǎn)方程法編制的,計(jì)算穩(wěn)定,收斂速度快,精度高[7~12];
    ③ 采用.NET技術(shù)開發(fā),使用.NET技術(shù)開發(fā)的系統(tǒng)與Windows操作系統(tǒng)具有很好的兼容性,有微軟的強(qiáng)大技術(shù)支持,能夠很順利地完成系統(tǒng)的移植;
    ④ 以商業(yè)應(yīng)用為目標(biāo),提供良好的人機(jī)對(duì)話界面和個(gè)性化界面設(shè)置,操作方便,采用統(tǒng)一的單一版本,通用性強(qiáng)。
3 水力計(jì)算軟件操作說明
    在進(jìn)行水力計(jì)算時(shí),首先打開管網(wǎng)AutoCAD圖,在節(jié)點(diǎn)處人工標(biāo)注節(jié)點(diǎn)號(hào)后載入ARX模塊,調(diào)用ARX模塊的Draft命令生成管網(wǎng)數(shù)據(jù)Excel表格文件,文件包含管段號(hào)、管段起點(diǎn)號(hào)、管段終點(diǎn)號(hào)及管段長度;在生成的文件基礎(chǔ)上,對(duì)應(yīng)管段添加相應(yīng)的管材和管徑數(shù)據(jù),形成新的Excel表格文件,調(diào)用ARX模塊的Redraft命令將文件數(shù)據(jù)載入到管網(wǎng)AutoCAD圖上;在管網(wǎng)AutoCAD圖上,修改添加的管段信息數(shù)據(jù),如管材和管徑數(shù)據(jù)等,再調(diào)用ARX模塊的Result命令將調(diào)整后符合要求的管段數(shù)據(jù)輸出到Excel表格中,以備水力計(jì)算模塊調(diào)用。
    水力計(jì)算模塊調(diào)用ARX模塊生成的管網(wǎng)數(shù)據(jù)Excel表格文件,再輸入燃?xì)馕镄詤?shù)、預(yù)估的節(jié)點(diǎn)流量、氣源點(diǎn)壓力及其他已知參數(shù),即可進(jìn)行水力計(jì)算。水力計(jì)算結(jié)果文件包括管段壓力降結(jié)果文件、節(jié)點(diǎn)壓力結(jié)果文件及管材管長統(tǒng)計(jì)結(jié)果文件,均為Excel表格文件。
    在打開的管網(wǎng)AutoCAD圖上,調(diào)用ARX模塊的Pipe和Node命令,可將管段壓力降結(jié)果文件和節(jié)點(diǎn)壓力結(jié)果文件繪制到管網(wǎng)AutoCAD圖上,即可生成滿足要求的水力計(jì)算圖。
    利用GPA軟件進(jìn)行水力計(jì)算,操作人員僅需熟悉AutoCAD與Excel的操作命令即可,簡便易懂。利用GPA軟件進(jìn)行水力計(jì)算的詳細(xì)操作步驟見圖1。
 

4 結(jié)語
   ① 運(yùn)用Object ARX二次開發(fā)技術(shù)開發(fā)的ARX模塊實(shí)現(xiàn)了AutoCAD與Excel表格數(shù)據(jù)之間的自動(dòng)化輸入輸出。
    ② 該軟件實(shí)現(xiàn)了計(jì)算結(jié)果的Excel、AutoCAD輸出,減少了水力計(jì)算的工作量,提高了燃?xì)夤芫W(wǎng)水力計(jì)算的效率。
軟件可用于工程設(shè)計(jì)及運(yùn)營調(diào)度人員選取管網(wǎng)結(jié)構(gòu)方案和參數(shù)方案,還可對(duì)中壓燃?xì)夤芫W(wǎng)實(shí)際運(yùn)行中的參數(shù)進(jìn)行模擬,為日常運(yùn)營調(diào)度的分析提供準(zhǔn)確的數(shù)據(jù),輔助調(diào)度工程師作出調(diào)度決策。
參考文獻(xiàn):
[1] 丁國玉,田貫三,安俊卿,等.城市燃?xì)夤芫W(wǎng)水力計(jì)算軟件的開發(fā)[J].煤氣與熱力,2010,30(4):A31-A33.
[2] 彭繼軍,田貫三,劉燕.燃?xì)夤芫W(wǎng)水力計(jì)算圖的計(jì)算機(jī)生成[J].山東建筑工程學(xué)院學(xué)報(bào),2003,18(1):58-62
[3] 魯國文,馮良.基于AutoCAD的燃?xì)夤芫W(wǎng)水力計(jì)算和自動(dòng)繪圖系統(tǒng)的研究[J].上海煤氣,2006(1):26-29.
[4] 嚴(yán)銘卿.城市燃?xì)夤芫W(wǎng)的計(jì)算機(jī)輔助設(shè)計(jì)[J].煤氣與熱力,1998,18(1):16-19.
[5] 李長勛.AutoCAD Object ARX程序開發(fā)技術(shù)[M].北京:國防工業(yè)出版社,2005:8-12.
[6] 中國市政工程華北設(shè)計(jì)研究院.GB 50028—2006城鎮(zhèn)燃?xì)庠O(shè)計(jì)規(guī)范[S].北京:中國建筑工業(yè)出版社,2006.
[7] 譚昌厚.節(jié)點(diǎn)法一些具體問題的處理[J].煤氣與熱力,1993,13(5):22-25.
[8] 謝偉光.牛頓法在燃?xì)夤芫W(wǎng)節(jié)點(diǎn)壓力計(jì)算中的應(yīng)用[J].煤氣與熱力,1998,18(6):24-25、33.
[9] 潘大為,劉文俊.燃?xì)夤芫W(wǎng)水力計(jì)算與實(shí)測(cè)數(shù)據(jù)的擬合[J].煤氣與熱力,2005,25(10):33-35.
[10] 姜東琪,杜建梅,崔建華,等.燃?xì)夤芫W(wǎng)水力計(jì)算及水力計(jì)算圖的繪制[J].煤氣與熱力,2001,21(5):453-455.
[11] 嚴(yán)銘卿.燃?xì)廨斉涔こ谭治鯷M].北京:石油工業(yè)出版社,2007:109-124.
[12] 薛世達(dá),李永威.燃?xì)夤芫W(wǎng)平差計(jì)算中若干問題的探討[J].煤氣與熱力,1991,11(4):24-28.
 
(本文作者:李丹華1 高華偉2 聶廷哲2 張興梅3 苗艷姝3 1.哈爾濱市燃?xì)夤こ淘O(shè)計(jì)研究院 黑龍江哈爾濱 150016;2.深圳中燃哈工大燃?xì)饧夹g(shù)研究院有限公司 廣東深圳 518033;3.哈爾濱工業(yè)大學(xué)市政環(huán)境工程學(xué)院 黑龍江哈爾濱 150090)