摘要:介紹了AutoCAD的DXF文件(圖形交換文件)數據格式特點,利用DXF文件作為數據接口,為燃氣管網水力計算程序開發了管網拓撲結構圖自動導入功能。該方法可根據管道屬性導入管網圖,簡化管道數據輸入過程。通過實例進行了驗證。
關鍵詞:燃氣管網;水力計算;自動繪圖;管網拓撲結構圖;圖形交換文件
Development of Gas Network Hydraulic Calculation Program with Automatic Import of Network Topology Map
ZHANG Ning,XIE Donglai
Abstract:The data format of AutoCAD drawing exchange file(DXF)is introduced.Using DXF file as data interface,the automatic import function of network topology map is developed for hydraulic calculation program of gas network.The program can import the network topology map according to the pipeline attribute and simplify the data input process.It is verified by a case.
Key words:gas network;hydraulic calculation;automatic drawing;network topology map;drawing exchange file(DXF)
隨著我國能源結構的調整,越來越多的用戶開始使用清潔、高效的管輸天然氣。燃氣管網水力計算是進行管網設計和運行的理論基礎,是順利完成輸配任務的保證。計算機應用的普及促使水力計算程序替代了原始的手工平差計算[1]。目前,應用比較直觀、方便的程序是通過面向對象的語言(如VC)編寫,用戶可以在窗口利用鼠標點擊繪制管段,輸入計算參數,得到結果。但是,當管網規模越來越龐大時,這種輸入方法不僅費時、費力,還極易出錯,因此有必要在水力計算程序中開發管網拓撲結構圖自動導入功能。
1 水力計算程序功能
目前已有利用Visual C++開發的水力計算程序,可以在可視化界面中由用戶利用鼠標點擊繪制管網計算圖。在管段和節點附近的空間范圍內雙擊鼠標左鍵,彈出相應對話框,輸入管段和節點參數,實現管網和數據的緊密結合。同時程序具有管段刪除、截斷、改變顏色、流向等編輯功能,方便管網的新建和改建。并利用解節點方程組法對單氣源與多氣源、高中壓與低壓、環狀與枝狀管網進行快速、準確的水力計算,并可將結果自動標注在水力計算圖中[2]。本文在此程序基礎上開發管網拓撲結構圖的自動導入功能。
2 AutoCAD的DXF文件數據格式
2.1 DXF文件簡介
目前,燃氣管道圖大多用AutoCAD軟件繪制,其儲存格式有DWG、DWS、DWT、DXF四種。其中前三種文件格式為二進制形式,不便于數據內容的查看,只適合于AutoCAD程序本身的儲存使用。DXF是一種ASCⅡ文本文件,它包含對應的DWG文件的全部信息,可以利用文本編輯器來查看其數據內容,通過它可以很方便與第三方軟件形成良好的數據互讀。
2.2 DXF文件的數據格式
DXF文件的基本構造形式是由代碼和關聯值組成的數據對。代碼(通常稱為組碼)表明數值的類型,關聯值則表明具體數值的大小。每個組碼和關聯值在DXF文件中都單獨成行。
DXF文件由多個段組成,每個段以組碼“0”和字符串“SECTION”開頭,其后是組碼“2”和表示段名的字符串(如ENTITIES),段中間用定義其元素的組碼和關聯值組成,段尾使用組碼“0”和字符串“ENDSECT”結束。
DXF文件段完整結構包括以下7部分:
HEADER段:包含有關圖形的總體信息,它由AutoCAD數據庫版本號和一些系統變量組成。
CLASSES段:包含應用程序定義的類的信息,這些類的實例出現在數據庫的BLOCKS、ENTITLES和OBJECTS段中。
TABLES段:包含應用程序標志表、塊參照表、標注樣式表、圖層表、線型表、文字樣式表、用戶坐標系表、視圖表、視口配置表的定義。
BLOCKS段:包含構成圖形中每個塊的塊定義。
ENTITIES段:包含圖形中的繪圖實體。
OBJECTS段:包含圖形中的非圖形對象。除圖元、符號表記錄以及符號表以外的所有對象都儲存在此段。
THUMBNAILIMAGE段:包含圖形的預覽圖像數據[3~5]。
3 可自動導入管網拓撲結構圖的計算程序
3.1 DXF文件中管道數據的儲存
實現燃氣管網拓撲結構圖的自動導入,即通過線段的圖層、顏色、線型、線寬等屬性信息確定所選擇的管道,讀取它們的起點與終點坐標,然后在水力計算程序中繪制。其中最為關鍵的步驟是對管道的起點和終點坐標的準確查找。根據AutoCAD的繪圖原則,線段都是繪制于某一圖層上,當圖層中線段的顏色、線型、線寬等屬性信息與圖層自身預定義的圖形屬性相同(通常稱為隨圖層)時,線段的上述屬性數據沒有在用于儲存圖形對象信息的ENTITIES段的AcDbEntity子段中表達,而是作為圖層的一般屬性數據儲存在圖層所在的TABLES段。這時如果根據線段屬性數據對管道進行查找時,就需要首先在TABLES段中找到圖層自身預定義的線段屬性的組碼和關聯值,如果所需查找的管段顏色、線型、線寬的數據和圖層自身預定義的圖形屬性相符合,再在AcDbEntity段中找到此線段的起點和終點坐標;當圖層中線段的顏色、線型、線寬等屬性信息與圖層自身預定義的屬性信息不相同時,線段屬性數據的組碼和關聯值就儲存在AcDbEntity段中,可直接在此段中查找。根據管道屬性查找坐標時,為防止有效數據的遺漏,需要逐行讀取儲存的數據,根據線段屬性數據的儲存方式的不同,定位于TABLES或AcDbEntity段,再找到相應管道的起點和終點坐標。
3.2 自動導入管網圖功能的實現方法
在程序自動導入之前,首先要對繪制管道的AutoCAD文件進行前期處理。程序的查找范圍為圖1所示導入管網簡圖命令對話框中的管段屬性下拉列表中列出的圖層的名稱(導入管網圖層1、導入管網圖層2)、線段的顏色(紅色、藍色、白色)、線型(直線、虛線、點劃線)、線寬(0.mm、0.6mm1、0.9mm)。如果需要導入管道的屬性信息不在上述可選范圍內,需要在AutoCAD中對管道屬性進行前期修改,使得需要查找的管道屬性在上述可選范圍之內。然后把通用的DWG文件另存為DXF文件。
在燃氣水管網力計算程序中打開導入管網簡圖命令對話框,選擇導入線段的圖層、顏色、線型、線寬等屬性信息。其中圖層作為線段存在的基礎,為必選項;其他3項可以根據進一步由管道屬性精確查找的需要選擇其中1項。
圖2為管道的起點和終點坐標的查詢流程圖。程序首先打開儲存管網信息的DXF文件,調用VC的ReadString命令逐行讀取管網數據。當查詢到儲存線段信息的AcDbEntity段,找到線段的圖層名組碼,如果組碼的關聯值與導入管網簡圖命令對話框的選定值相同,接著判斷此圖層中線段是否全部導入,如果全部導入,定位于AcDbEntity段下的AcDbLine子段,讀取線段的起點和終點坐標;如果還需要根據圖層中線段的屬性信息進一步進行篩選,則首先需要判斷是根據線段的顏色、線型、線寬3個屬性中哪個屬性進行選擇。例如選擇的是顏色屬性,首先判斷線段的顏色是否隨圖層設置,如果隨圖層設置,在TABLES段中,尋找圖層名的組碼,確定組碼的關聯值與選定值相同的圖層,接著尋找此圖層名下線段的顏色的組碼,如果組碼的關聯值與選定值相同,在AcDbLine段中找到此線段,然后讀取起點和終點坐標;如果線段的顏色不隨圖層設置,則直接在AcDbLine段中根據管道顏色找到該線段的起點和終點坐標即可[6~7]。

所有查詢到的與導入管網簡圖命令對話框相關的管道的起、終點坐標儲存在一個文件中,燃氣管網水力計算程序讀取此文件中數據,利用VC的MoveTo( )函數定位于管道的起點,LineTo( )函數繪制直線連接到端點,同時在線段的中點繪制從起點指向終點的流向三角形。
3.3 管道長度的測量
如果管道在AutoCAD圖中按照實際長度繪制,程序可以根據管道的起點和終點坐標利用直角三角形的勾股定理自動計算管道的長度。當實際管長與繪制管長的比例系數不為1時,可在圖1所示對話框中輸入相應的比例系數轉化得到,管長作為計算參數自動輸入程序中供水力計算使用。
3.4 節點自動編號
由于水力計算節點方程組求解的需要,程序對節點自動進行編號。首先對第一條管段起點編號1,終點編號2。在進行此后管段節點編號時,計算當前管段前所有節點的最大編號,當前管段與之前管段的節點坐標依次進行比較,如果兩者相同,說明兩點重合,節點編號為坐標相同點的編號;如果不相同,節點編號為當前節點編號的最大值加1[8]。
4 自動導入管網圖實例
圖3為AutoCAD的DWG格式燃氣管網圖,實線為現有燃氣管道,虛線為需要擴建的管道。在導入管網圖之前,首先在AutoCAD程序中把管道所在的圖層名改為“導入管網圖層1”,然后用“Drawing”文件名把管網圖另存為DXF格式的文件,保存在電腦“桌面”。打開水力計算應用程序,點擊選單欄中的“導入管網”選項,打開如圖1所示對話框,在“選擇圖層”下拉選項中選取“導入管網圖層1”,然后點擊“確定”,則程序會按照電腦“桌面”上名為“Drawing”的DXF文件中“導入管網圖層1”圖層下的管道坐標自動繪制管網。全部管道導入計算程序并對管
道節點自動編號的示意圖見圖4。若只需要選擇性地導入圖3中實線管道,打開圖1所示對話框,在選擇圖層“導入管網圖層1”時,還需要選擇“線型”按鈕,并相應選取“實線”選項,管道選擇性導入計算程序并對管道節點自動編號的示意圖見圖5。
5 結語
利用AutoCAD的DXF數據格式為燃氣管網水力計算程序開發了管道的自動導入功能,該方法能夠準確、迅速地把管網拓撲結構圖移植到計算程序中,并自動計算管段長度,可以大大減輕輸入工作量,對于大型、特大型管網,效果更加明顯。
參考文獻:
[1] 姜東琪,杜建梅,崔建華,等.燃氣管網水力計算及水力計算圖的繪制[J].煤氣與熱力,2001,21(5):453-455.
[2] 張寧,解東來,田貫三,等.多氣源燃氣管網水力計算程序的開發[J].煤氣與熱力,2009,29(6):B05-B08.
[3] 梁雪春,宋德明.AutoCAD二次開發技術指南[M].北京:清華大學出版社,2001.
[4] 余承飛,方勇.AutoCAD二次開發技術[M].北京:人民郵電出版社,1999.
[5] 王子茹,任清波.基于VC++的DXF數據文件接口的研究[J].廈門理工學院學報,2007,15(1):26-30.
[6] 劉天立.基于DXF實現C語言與AutoCAD接口[J].哈爾濱理工大學學報,2001,6(4):60-62.
[7] 劉傳亮,陸建德.AutoCAD DXF文件格式與二次開發圖形軟件編程[J].微機發展,2004,14(9):101-104.
[8] 左麗麗,吳長春.燃氣管網水力計算節點及管段編號的探討[J].煤氣與熱力,2005,25(3):36-39.
(本文作者:張寧 解東來 華南理工大學 化學與化工學院 廣東廣州 510641)
贊 賞 分享
您可以選擇一種方式贊助本站
支付寶轉賬贊助
微信轉賬贊助

- 注解:本資料由會員及群友提供僅供閱讀交流學習,不得用于商業用途!