郝埃俊,賀軍政
(深圳市勘察測繪院有限公司,廣東深圳 518028)
城市地下管線不僅是城市重要的基礎設施,還是城市生存與發展的生命線。目前全國大部分城市都在進行地下管線普查和地下管線修補測工作,并建設了地下管線地理信息系統,且具備三維可視化功能。但地下管線信息系統三維場景的建立大都基于ArcGIS、SkyLine等地理信息系統軟件,要求具有一個標準的完善的數據庫數據。在城市地下管線普查和修補測實施過程中,國內大多生產單位都采用AutCAD進行地下管線探測的圖形數據處理。深圳市是全國最早實現地下管線普查的城市之一,我們經過多年的普查經驗,摸索總結了一種基于ObjectARX技術的三維地下管線的實現方法,能快速進行三維地下管線建模,并可以在AutoCAD環境直接瀏覽地下管線空間關系,方便生產單位的作業人員,借用三維建模成果進行檢查并修改,可幫助生產單位提高數據質量。
ObjectARX是AutoDesk公司針對AutoCAD平臺上的二次開發而推出的一個開發軟件包,它提供了以C++為基礎的面向對象的開發環境及應用程序接口,能真正快速的訪問AutoCAD圖形數據庫。與以往的AutuCAD二次開發工具AutoLISP和ADS不同,ObjectARX應用程序是一個DLL(動態鏈接庫),共享AutoCAD的地址空間,對AutoCAD進行直接函數調用。所以,使用ARX編程的函數的執行速度得以大大提高。ARX類庫采用了標準的C++類庫的封裝形式,這也大大提高了程序員編程的可靠度和效率。運用ObjectARX進行二次開發,目前常用的開發環境是Microsoft Visual C++6.0 、Microsoft visual studio 2005、Microsoft visual studio 2008。
地下管線數據內容多、數據量大、邏輯性和專業性強,但有規律性。地下管線數據主要分為屬性數據和空間數據,管線屬性數據主要包括點號、連接點號(方向號)、材質、管徑或斷面尺寸、埋設方式、點特征、附屬物、埋深、備注等;管線空間數據主要是管點和管線的空間坐標(X,Y,H)。基于ObjectARX技術的三維地下管線具體實現思路如下:
(1)采用C#對AutoCAD進行二次開發;
(2)利用 AutoCAD三維要素中 Autodesk.Auto-CAD.DatabaseServices.Solid3d的Box和Frustum構建三維管點和管線;
(3)采用數學模型將管點和管線旋轉移動到相應位置;
(4)采用AutoCAD三維場景渲染。
地下管線數據分為屬性數據和空間數據,他們分別存儲在管點調查表和管線調查表,管點調查表包括點號、特征、附屬物等屬性數據和坐標、高程空間數據;管線調查表包括起始點、終止點、管徑、起始埋深、終止埋深等屬性數據。

圖1 管點、管線表
在讀取管點、管線數據構建三維模型時,可利用C#數據庫開發功能,采用SQL語句實現快速讀取相關數據,包括從兩個數據表關聯讀取。如下代碼:

AutoCAD三維要素通常包括曲面、柱、方形、球形等要素,但沒有專門的管點、管線要素。在AutoCAD環境中,構建管點、管線要素可以采用ObjectARX技術借用柱、方形來實現,Autodesk.AutoCAD.DatabaseServices.Solid3d類包括CreateBox和CreateFrustum兩個函數,作用分別創建一個方形和柱形,讀取地下管線數據庫管徑、管線長度、井徑、埋深,作為函數參數可以創建不同大小、長度的方形和柱形。實現代碼簡略如下:

在AutoCAD環境中,采用ObjectARX技術構建管點、管線要素即方形或柱形,受ObjectARX技術的限制,每段管線和井均是在坐標原點(0,0,0)創建,且垂直于XY平面,而實際地下管線位于不同位置,起止坐標都有固定的三維坐標,且管線坡度不一。因此需將創建的管線、管點要素進行旋轉移動等一系列的三維幾何變換,達到地下管線的實際位置布局。
三維幾何變換主要運用平移變換和旋轉變換,三維旋轉滿足右手定則,各坐標軸旋轉方向如圖2所示。

圖2 旋轉變換的角度方向
旋轉變換矩陣如下:
繞Z軸旋轉

繞X軸旋轉

繞Y軸旋轉

平移變換矩陣如下:

簡略代碼如下:


通過以上技術設計思路,采用C#語言基于Object-ARX技術對AutoCAD進行二次開發得到三維地下管線快速建模功能,運行此功能命令,然后在AutoCAD環境中,視覺樣式設置為“真實”模式,并將邊模式屬性設置為無,即可以得到如圖3效果。

圖3 三維效果圖
在AutoCAD環境實現三維地下管線快速建模功能,經過我們多年從事地下管線探測總結,歸納其發揮的作用有如下幾點:
(1)平臺通用,操作簡單,上手容易,方便生產單位作業。地下管線生產人員及審核人員大都熟悉AutoCAD,在AutoCAD環境實現三維地下管線建模讓用戶可輕松操作,可在此環境中進行三維地下管線瀏覽和進行檢查工作。
(2)成果數據復制轉移方便。在AutoCAD環境的三維地下管線數據可以單獨存儲一個文件,復制或轉移給另一用戶,并可在任意一臺裝有CAD的計算機中像瀏覽DWG文件一樣進行瀏覽,不像ArcGIS那樣需裝載大型數據庫。
(3)豐富了檢查功能,幫助用戶提高數據質量。在二維平面數據處理過程中,無論采用交叉分析、縱橫斷面等分析手段,對管線空間三維布局都無法全面而形象的表達出來。故在CAD平臺中實現三維地下管線建模功能,可以全面反映地下管線空間布局情況,檢查和排查出交叉管線、管徑異常管線等問題管線。借用此方法進行檢查并給予修改,可幫助生產單位提高數據質量。
通過多年地下管線探測經驗,采用ObjectARX技術實現三維地下管線快速建模方法,在AutoCAD環境中對地下管線普查數據進行三維建模,大大方便了用戶于通用平臺操作、瀏覽、檢查地下管線數據,有效幫助生產單位提高生產效率。
[1]CJJ61-2003.城市地下管線探測技術規程[S].
[2]杜四春,銀紅霞,蔡立軍.C#程序設計[M].北京:中國水利水電出版社,2006.
[3]溫志勇.基于ObjectARX技術的巷道三維建模與開發研究[D].太原理工大學;2005.
[4]李長勛.AutoCAD ObjectARX程序開發技術[M].北京:國防工業出版社2005.
[5]徐莉.三維地質建模中的CAD圖形I/O接口研究[D].成都理工大學;2008.
[6]魏占營,王寶山,李青元.地下巷道的三維建模及C++實現[J].武漢大學學報·信息科學版,2005,30(7).
[7]鞠建榮,武小軍,張鳳梅.AutoCAD數據到ArcSDE的轉換方法研究[J].城市勘測,2010(z1).