趙萬為
(上海市測繪院浦東分院,上海200120)
關于三維碰撞分析的研究由來已久,它伴隨著計算機圖形學的發(fā)展不斷取得新的成果,如今,三維技術已融入各個領域,空間建模、虛擬現(xiàn)實、工業(yè)制造等都離不開三維技術的發(fā)展。然而,管線三維建模相對發(fā)展不成熟,關于管線三維碰撞的研究較少,如何有效地查找撞管點,得出處理撞管的有效方法,是目前面臨的重要問題,本文以上海市浦東新區(qū)內(nèi)環(huán)道路區(qū)域內(nèi)地下管線普查項目為依托,介紹了利用AutoCAD VBA進行管線撞管點查找的方法,并對撞管統(tǒng)計結果進行分析,提出處理撞管的相關建議。
受浦東新區(qū)規(guī)劃和土地管理局的委托,我院承接了浦東新區(qū)內(nèi)環(huán)道路區(qū)域內(nèi)地下管線普查項目的普查任務。
普查成果在三維平臺發(fā)布時,發(fā)現(xiàn)管線有撞管的現(xiàn)象,本文以浦東內(nèi)環(huán)04、05測區(qū)的地下管線為研究對象,利用軟件對撞管現(xiàn)象進行查找、輸出,并對其進行分析。04、05測區(qū)普查范圍為:羅山路—錦繡路—民生路—源深路—張楊路—東方路—龍陽路,兩測區(qū)以錦繡路為分界,管線總長度約1017 km。
根據(jù)判斷方式的不同,管線撞管的定義也不同,從設計出發(fā),管線之間最短距離小于設計要求便產(chǎn)生撞管,本文中的管線撞管是指在同一時刻,三維顯示環(huán)境下兩條或兩條以上的管線占有的空間位置發(fā)生重疊。
隨著地下管線信息技術的發(fā)展,三維管線信息系統(tǒng)由于可以直觀描述管線的三維特征及其空間位置,已成為當前研究的重點,然而目前的管線三維信息系統(tǒng)不能全面地查找撞管點,一般僅能對兩條管線進行管線碰撞的判斷,制約了對撞管現(xiàn)象的全面理解,缺少客觀規(guī)律性的認識,對撞管點的處理多以主觀判斷為主,因此不同地區(qū)撞管處理的方案各異,有的按管種處理,有的按區(qū)域處理,未形成處理撞管較統(tǒng)一的解決方案。
VBA的全稱是Visual Basic for Application,是微軟開發(fā)的新一代標準宏語言,它可以內(nèi)嵌在Auto-CAD中,通過AutoCAD ActiveX Automation接口建立與AutoCAD對象的聯(lián)系。ActiveX是建立在COM對象模型之上允許對象通過接口相互通信的標準通信協(xié)議,ActiveX為AutoCAD提供了外控編程機制,通過AutoCAD對象,實現(xiàn)對AutoCAD的操作。
普查成果數(shù)據(jù)庫采用*.mdb格式,以測區(qū)為單位建立入庫數(shù)據(jù),同一個測區(qū)內(nèi)的各類地下管線數(shù)據(jù)存放在一個MDB文件中,每一類管線由點表、線表和面表組成,點表記錄了管線點的點號、坐標、井底深度、空間位置來源等信息,線表記錄了管線段的起點點號、終點點號、起點埋深、終點埋深、管徑、材質、管種等信息,面表記錄了附屬設施的編號、種類、形狀等信息。
ADO(ActiveX Data Objects)對象模型提供了一個全面控制數(shù)據(jù)庫的完整編程接口,在VBA中,通過ADO對象可以建立與管線MDB數(shù)據(jù)庫的連接,根據(jù)需求查找相應管線的信息,并對管線進行撞管判斷,輸出撞管信息到撞管MDB數(shù)據(jù)庫,同時,通過AutoCAD ActiveX Automation接口,將撞管點展示在AutoCAD中,如圖1所示。
圖1 軟件處理流程
通過對上海市浦東新區(qū)內(nèi)環(huán)普查成果的撞管研究發(fā)現(xiàn)在實際工作中通常有3類方式選擇要分析管線,如圖2所示。
圖2 選擇需要分析的管線
(1)按測區(qū)進行選擇
當對一個測區(qū)內(nèi)的管線進行撞管分析時,按測區(qū)進行選擇,選擇的對象包括了一個測區(qū)內(nèi)所有的管線。
(2)按圖幅號進行選擇
當需要對某幾張綜合地下管線圖內(nèi)的管線進行撞管分析,并已知圖幅號時,按圖幅號進行選擇。
(3)在CAD圖中進行選擇
當僅需要對CAD圖中某一范圍內(nèi)的管線進行撞管分析時,從CAD圖中進行框選,選擇需要分析的管線。
選擇要分析的管線之后,下一步就是對管線進行撞管判斷,然而有時并不需要對所有的管種進行分析,例如,想要知道一個測區(qū)內(nèi)燃氣、給水、雨水、污水管線的撞管情況,則在判斷之前需要篩選出燃氣、給水、雨水、污水管線(圖3),接下來遍歷選中的管線信息,進行撞管判斷。
圖3 管種篩選
進行撞管判斷后,對撞管情況有了初步的了解(圖4),得出了撞管點的位置和對應管線的信息,并存儲在撞管MDB數(shù)據(jù)庫中,將撞管點的坐標展示在CAD圖中,以“序號撞管深度”的格式進行標注(圖5),直觀展現(xiàn)了撞管點的分布和密度,同時,撞管MDB數(shù)據(jù)庫存儲了撞管點的序號(與CAD圖中的對應),撞管管線的管徑,撞管管線起點、終點的點號和埋深(表1),為接下來外業(yè)復測提供原始數(shù)據(jù),方面核實。
圖4 撞管概況
圖5 撞管點標注
表1 撞管輸出表
利用軟件分別對04和05測區(qū)所有的管線進行了撞管查找與輸出,涉及電力、通信、給水、排水、燃氣和長輸管線。04測區(qū)總計管線長512 km,查找各類撞管點4109處,平均撞管密度8.1個/km,平均撞管深度15 cm;05測區(qū)總計管線長505 km,查找各類撞管點4391處,平均撞管密度8.9個/km,平均撞管深度16 cm。
在地下管線三維建模中,相鄰兩點之間的管線默認為直線,撞管處管線的空間位置是根據(jù)管線兩端的探測數(shù)據(jù),利用內(nèi)插的方法得的,當撞管處內(nèi)插的兩條管線空間位置發(fā)生重疊時,便產(chǎn)生了撞管。
假設管線兩端探測點的誤差為零,通過內(nèi)插建立管線模型后,在管線相交處,兩條管線垂直方向最小距離為H0,當引入管線兩端探測點誤差后,H0發(fā)生變化,變化量為h,此時,在管線相交處,兩條管線垂直方向最小距離H1=H0+h,當H1小于零時,則發(fā)生撞管??梢缘贸?,三維模型中管線是否發(fā)生撞管現(xiàn)象與H0和h有關,換句話說,管線是否發(fā)生撞管現(xiàn)象與兩方面有關,一是兩條管線兩端探測點的誤差,這部分誤差決定了h的大小,包括隱蔽點探測誤差、特征點測量誤差(平面誤差、高程誤差和管徑誤差),二是當探測點誤差為零時,建模管線之間的最小距離,即H0。
在探測點誤差中,相對于平面、高程和管徑測量,管線隱蔽點探測產(chǎn)生的誤差最大,假設隱蔽點探測誤差是產(chǎn)生撞管現(xiàn)象的主要原因,管線埋深越大,探測的誤差也就越大,產(chǎn)生的撞管程度應該越嚴重。取兩條管線兩端探測深度的平均值作為撞管點探測的平均管線深度,過濾掉與明顯管線有關的撞管點,對04和05測區(qū)剩余的撞管點做“探測深度—撞管程度”散點圖(圖6),可以看出探測深度與撞管程度的相關性很差,相關系數(shù)僅為0.006和0.092,說明探測誤差并非是產(chǎn)生撞管現(xiàn)象的主要誤差來源,即h的大小對撞管是否發(fā)生影響很小,因此H0在很大程度上決定了撞管現(xiàn)象是否出現(xiàn)。
建模管線之間的最小距離H0是在管線為直線的前提下求得的,而在管線實際鋪設時,管線發(fā)生了彎曲起伏,在兩條管線相交處,管線實際的最小距離可能與H0相差較多,這部分誤差是撞管現(xiàn)象出現(xiàn)的主要原因,即管線起伏是造成撞管的主要原因。
圖6 04、05測區(qū)撞管點統(tǒng)計圖
綜上所述,筆者認為:
1)撞管程度與探測精度關系不大,撞管程度較大的管線,探測精度不一定差,不能僅依據(jù)撞管程度的大小來處理撞管現(xiàn)象,可以對撞管程度很大的管線復測核實,例如30 cm或40 cm以上的撞管現(xiàn)象;
2)管線的彎曲起伏是造成撞管的主要原因,在現(xiàn)有的普查規(guī)范和技術條件下,提高探測點的密度可以減小探測點之間管線起伏的變化,減小撞管現(xiàn)象的發(fā)生。
受現(xiàn)有探測技術的限制,管線模型不能模擬實地管線的起伏,造成模型中兩條管線相交處的最小距離與實際距離有差異,產(chǎn)生撞管現(xiàn)象,可以認為根據(jù)普查成果建立的三維管線模型中,撞管現(xiàn)象的產(chǎn)生是普遍的、不可避免的,不能因為撞管現(xiàn)象的存在而否定普查成果的可靠性,建議從以下幾個方面處理撞管現(xiàn)象:
1)在普查作業(yè)中,適當增加管線交叉處探測點的密度;
2)不能僅依據(jù)撞管程度的大小分類處理撞管現(xiàn)象,可以對撞管程度很大的管線復測核實,例如30 cm或40 cm以上的撞管現(xiàn)象;
3)在普查成果精度滿足設計要求的前提下,允許撞管現(xiàn)象的存在,可以根據(jù)項目周期,優(yōu)先處理危險管線的撞管點。
[1] 北京市測繪設計研究院.CJJ 61-2003城市地下管線探測技術規(guī)程[S].北京:中華建筑工業(yè)出版社,2003.