范香香
(蚌埠市勘測設(shè)計研究院,安徽蚌埠 233000)
基于AutoCAD管線流向檢查的程序?qū)崿F(xiàn)
范香香?
(蚌埠市勘測設(shè)計研究院,安徽蚌埠 233000)
地下管線探測工作是一項非常重要的工作,它的正確與否影響到其他建設(shè)工程的開展。本文主要論述利用微軟的.NET軟件Visual Studio結(jié)合AutoCAD的二次開發(fā)接口.NETAPI進行程序定制,此程序可以檢查出管線流向的缺失、方向不一致問題,并自動修正箭頭錯誤,還可以檢查出整個管網(wǎng)水流的連續(xù)性,列出詳細的錯誤提示。
地下管線;流向檢查;特征碼
由于近年來,受城市內(nèi)澇的困擾,越來越多的城市開始了大范圍的管線普查工作,主要是污水和雨水管線的普查。管線探測工作非常繁重,不僅外業(yè)工作量大,內(nèi)業(yè)的數(shù)據(jù)處理工作也是很大,這樣就造成了在數(shù)據(jù)處理時,容易出現(xiàn)一些不容易察覺的錯誤,如不小心刪除了流向箭頭、隨意的挪動了圖形等,在流向問題中,由于管線調(diào)查中出現(xiàn)了錯誤,導(dǎo)致管線有同出、同進的現(xiàn)象,使得污水或雨水的方向在管網(wǎng)中相互矛盾,水流無法排出,如圖1所示。
圖1 管線流向
在多達幾萬條數(shù)據(jù)中,利用人工去查找這些錯誤是相當困難的,而且費時費力。為了提高工作效率,提交合格的產(chǎn)品給委托單位,筆者開發(fā)了一套程序可以自動對圖形中流向箭頭進行檢查,可以找出不合格的情況并進行處理,同時可以對整個管網(wǎng)進行水流檢查,確保水流整體走向的正確性。
把管線節(jié)點中流進方向表示為1,流出方向為0 (圖2)。這樣可以在整個管網(wǎng)中檢查管線節(jié)點是否同時具有1和0這兩個標識符,如果同時具備條件,則說明此節(jié)點是連續(xù)走向的,沒有此條件的則標記為可疑點,可以到實地重新查看情況并進行改正,詳細步驟如圖3所示。
圖2 管線節(jié)點標識
圖3 流向檢查流程圖
由于現(xiàn)在在各項工程中,AutoCAD的應(yīng)用比較廣泛,不乏有許多優(yōu)秀的二次開發(fā)軟件,如測量中的南方CASS、建筑設(shè)計的天正軟件等,所以本程序是基于AutoCAD來開發(fā)的。而在開發(fā)語言的選擇中,采用了微軟的.NET軟件Visual Studio結(jié)合[1]AutoCAD的.NET API[2]進行開發(fā),其程序運行的速度可以和C++的ObjectARX相媲美,而且Visual Studio中包含了VB、C#、J #等語言,開發(fā)者可以根據(jù)自己的喜好來選擇,其中的VB.NET是最簡單易學(xué),適合非專業(yè)的開發(fā)人員。
(1)檢查管線示向箭頭[3,4]。從圖形中遍歷每條管線,以每條管線的端點作為選擇集中矩形窗口選擇的角點進行選擇,如果選擇集中有多個流向箭頭,則計算流向箭頭到管線的距離。如果距離都不為零,那么該管線沒有示向箭頭,給出錯誤提示。如果超過一個的距離為零,則示向箭頭有重復(fù)。若每條管線對應(yīng)一個流向,那么就檢查箭頭的方向和管線的方向是否一致,檢查方法是根據(jù)角度來判斷,如果不一致則根據(jù)線段的角度來調(diào)整箭頭旋轉(zhuǎn)角度,以達到自動修正的目的,如圖4所示。
圖4 窗口自動選擇和錯誤提示以及示向箭頭檢查
(2)給每個管線節(jié)點賦特征碼[5]。在生成管線時,如果節(jié)點作為起點,則賦予節(jié)點擴展數(shù)據(jù)為0,如果節(jié)點作為終點,則賦予節(jié)點擴展數(shù)據(jù)為1。如圖5所示,管線點的特征碼為1010,當然0和1的位置和順序無關(guān)。
圖5 節(jié)點特征碼
主要代碼如下[6]:
'給節(jié)點賦特征碼
Public Sub addXdataForEntity(ByVal gxLines As List(Of Line),ByVal gxPoint As BlockReference)
'存儲特征碼
Dim strXdata As String="" '遍歷和節(jié)點有聯(lián)系的管線
For Each gxline As Line In gxLines '如果管線起點的坐標和節(jié)點坐標一致If gxline.StartPoint=gxPoint.Position Then
strXdata&=0 Else
strXdata&=1 End If
Next
Dim db As Database=HostApplicationServices.Working-Database
'開始事務(wù)處理
Using trans As Transaction=db.TransactionManager.StartTransaction
Dim Reg As RegAppTable=trans.GetObject(db.RegAppT-ableId,OpenMode.ForWrite)
If Reg.Has("GX")=False Then
Dim app As New RegAppTableRecord app.Name="GX" Reg.Add(app) trans.AddNewlyCreatedDBObject(app,True) End If
'加入擴展數(shù)據(jù)
Dim rb As New ResultBuffer(New TypedValue(DxfCode. ExtendedDataRegAppName,"GX"),_
New TypedValue(DxfCode.ExtendedDataAsciiString,strXdata))
gxPoint.XData=rb trans.Commit()
End Using End Sub
(3)檢查同一個管線節(jié)點中,是否有大管徑的水流向小管徑的情況。主要是通過在圖形中檢查經(jīng)過此點的管線,并通過提取管線的擴展數(shù)據(jù)來實現(xiàn)。
(4)檢查每個管線節(jié)點的特征碼。如果特征碼有1和0,說明此管線時連續(xù)的,如果只有1或0,則管線是可疑點,需查明情況。錯誤報告如圖6所示。
圖6 錯誤提示報告
近年來,管線測量的工作越來越多,利用AutoCAD的二次開發(fā),定制一些符合當?shù)毓芫€數(shù)據(jù)格式的程序,可以方便我們在處理數(shù)據(jù)時的工作。同時,減少了一些在實地調(diào)查中和數(shù)據(jù)錄入時出現(xiàn)的錯誤,從而提高了工作效率,為單位節(jié)省了人力和物力,也為工程質(zhì)量提供了保障。
[1] Thearon Willis Bryan Newsome.Visual Basic 2008入門經(jīng)典[M].北京:清華大學(xué)出版社,2009.
[2] 秦洪現(xiàn),崔惠嵐,孫劍等.Autodesk系列產(chǎn)品開發(fā)培訓(xùn)教程[M].北京:化學(xué)工業(yè)出版社,2008.
[3] 張鳳瑞.基于AutoCAD的管線數(shù)據(jù)采集系統(tǒng)的研究[J].城市勘測,2011(6).
[4] 李志剛.地下管線自動編號方法的研究與實現(xiàn)[J].城市勘測,2012(1):104~106.
[5] 錢業(yè)宏,花向紅.AutoCAD擴展數(shù)據(jù)在地形圖建庫中的應(yīng)用[J].城市勘測,2008(1):118~119.
[6] 趙向陽,牛守明,劉清麗.基于ObjectARX的城市地下管線數(shù)據(jù)建庫方法探討[J].城市勘測,2009(5):42~45.
The Realization of the Program to Check out the Pipeline Flow Based on AutoCAD
Fan Xiangxiang
(Bengbu Geotechnical Engineering and Survering Institute,Bengbu 233000,China)
It’s a very importantwork to carry out the underground pipeline detection that its correctness will affect other construction projects.Therefore,to ensure the correctness of pipeline data is requisite.This article is starting from here,about the program customization based on Microsoft's.NET software Visual Studio combined with AutoCAD secondary development interface.NET API.This program can check out the lack of the pipeline flow and the inconsistency of direction.Besides,it also can automatically correct the arrow error and check out the continuance of entire pipe network flow so as to set out the detail errormessages.
underground pipelines;the check of flow;signature
1672-8262(2013)03-152-03
P209
B
2013—03—02
范香香(1986—),女,助理工程師,主要從事城市測量工作。