楊小兵
(黃山市城市測繪院,安徽黃山 245000)
利用ObjectARX開發(fā)小型地下管線信息管理系統(tǒng)
楊小兵?
(黃山市城市測繪院,安徽黃山 245000)
著重闡述了地下管線信息管理系統(tǒng)的開發(fā)技巧與關(guān)鍵技術(shù),為小城鎮(zhèn)或開發(fā)區(qū)內(nèi)實現(xiàn)地下管線信息系統(tǒng)管理,提供了一個經(jīng)濟實惠的解決方案,也為單獨開發(fā)軟件提供了個案與思路。
AutoCAD;ObjectARX;VC++;組詞典;擴展數(shù)據(jù)XData;實體;窨井;地理信息系統(tǒng)
本文將要闡述的一個問題就是如何利用Object-ARX工具包在VC++平臺下開發(fā)一個基于AutoCAD軟件的小型地下管線信息管理系統(tǒng)。為什么說只能在小城鎮(zhèn)區(qū)域內(nèi)呢,因為此次開發(fā)的軟件數(shù)據(jù)庫是基于AutoCAD圖形數(shù)據(jù)庫的,它與Oracle、SQL Server、Access數(shù)據(jù)庫不能比,前者只是硬性將窨井屬性數(shù)據(jù)寫入CAD圖形實體中,缺乏對數(shù)據(jù)的有效組織與管理,而后者本身就可以對數(shù)據(jù)進行有效的組織與管理,比如表格合并、排序、索引與篩選等;但Oracle、SQL Server、Access數(shù)據(jù)庫對軟硬件系統(tǒng)要求都比較高,安裝、使用、開發(fā)對操作者來講都不是一件容易的事,專業(yè)性要求特別強,對一般用戶來講不經(jīng)濟實惠。而如果使用AutoCAD連接到其他數(shù)據(jù)庫比如Access,當(dāng)然這樣可以減小DWG文件的容量,但要學(xué)會Access數(shù)據(jù)庫編程也不是一件簡單容易的事,對一般用戶而言要設(shè)置外部數(shù)據(jù)連接也不是一件簡單容易的事。而Auto-CAD已經(jīng)是大眾化軟件,可以說只要有一點AutoCAD的使用經(jīng)驗就可以操作和維護這個數(shù)據(jù)庫管理軟件,并且成本低,為小城鎮(zhèn)提供了一個既可以解決急需問題、又不必花太多人力財力的方案。
地下管線信息管理系統(tǒng),其實就是一個關(guān)于地下管線的地理信息管理系統(tǒng),總的說來就是專業(yè)數(shù)據(jù)庫管理系統(tǒng),因此,不外乎要實現(xiàn)管線點屬性數(shù)據(jù)的輸入、修改、查詢、輸出這幾個功能。本系統(tǒng)實現(xiàn)的基本原理是,利用ObjectARX開發(fā)基于AutoCAD平臺本身的數(shù)據(jù)庫管理軟件。眾所周知,AutoCAD每個圖形實體本身帶有擴展數(shù)據(jù)XData,我們只要將管線點的屬性寫入XData中就可以實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的輸入工作,而通過讀取管線點的XData數(shù)據(jù)即可實現(xiàn)查詢功能。查詢與寫入的反向操作則完成了數(shù)據(jù)庫的修改與維護工作。通過查詢結(jié)果生成管線屬性信息表和文檔及縱斷面圖等,就可以實現(xiàn)管線信息的顯示與輸出工作。
實現(xiàn)本軟件各功能模塊的關(guān)鍵技術(shù)有:VC++面向?qū)ο缶幊獭υ捒蛟O(shè)計編程、XData數(shù)據(jù)存儲與讀取、圖形實體組詞典操作技術(shù)、基本二進制或ASCII碼文件寫入與讀取操作,當(dāng)然還要熟練掌握VC++語言與ObjectARX開發(fā)工具包。下面將對軟件各模塊編程進行詳細解釋。
2.1 建立符合窨井屬性信息的數(shù)據(jù)結(jié)構(gòu)
首先利用面向?qū)ο笳Z言VC++新建一個窨井信息類,利用這個類來存取窨井屬性信息,那么窨井一般具有:名稱、序號、井深、井蓋高程、平面位置(X、Y)、材質(zhì)、流向井(序號、口徑)、所在道路、所屬部門、建設(shè)年份等等,這些屬性中只有井深、井蓋高程和平面位置是數(shù)字形式,而其他屬性都可以字符形式表示,即這個屬性信息類只要有字符串型CString與浮點型Double變量就可以對窨井屬性信息進行操作,下面是示例。
2.2 窨井屬性信息讀取與修改操作接口
對視窗Windows操作系統(tǒng)來說,輸入和修改窨井屬性數(shù)據(jù)的接口,當(dāng)然要利用這種所見即所得編程理念,就是設(shè)計一個對話框來與用戶交流。本系統(tǒng)設(shè)計了一個樣式(如圖1),基本上都涵蓋了屬性信息的輸入要求,如果還有其他信息,只需在對話框上增加所需控件即可。將對話框各控件與新建的wellinfo類的相應(yīng)變量對應(yīng),就可以實現(xiàn)控件與類變量的數(shù)據(jù)交換。
圖1 窨井屬性信息輸入界面
2.3 窨井屬性信息讀取與修改
實現(xiàn)了輸入與修改接口后,應(yīng)當(dāng)就是解決如何將這些信息存儲在窨井圖形實體中。眾所周知,CAD的獨立符號,像窨井、電桿、水井、路燈等等,可采用塊參照來管理和存儲的,只需要對窨井符號實體進行操作。下面示例說明如何從實體的擴展數(shù)據(jù)XData中讀取窨井屬性數(shù)據(jù)和將窨井屬性數(shù)據(jù)寫入到實體的擴展數(shù)據(jù)XData中。
2.4 查詢與居中顯示
本系統(tǒng)所用的查詢工作,即是遍歷當(dāng)前圖形數(shù)據(jù)庫中的所有圖形元素,查詢條件是用戶通過對話框(如圖2)給定的。
圖2 查詢條件設(shè)置
圖3 查詢結(jié)果顯示圖
通過讀出窨井符號中應(yīng)用程序“wyarx“的擴展數(shù)據(jù),與用戶所給條件一一對比,如果存在,則將所查找到的窨井居中顯示(如圖3)。
2.5 顯示
本系統(tǒng)顯示只是常規(guī)屬性顯示,比如窨井名稱、序號、井蓋高程、井底高程,這樣給管線查詢與設(shè)計者一個一目了然的讀圖方式。如圖3這些常規(guī)屬性顯示圖形采用了AutoCAD組詞典管理,將這些顯示屬性的圖形元素都編在一個組里。
2.6 輸出
本系統(tǒng)使用ASCII文件作為輸出形式,當(dāng)然也可以表格形式或直接輸出成Word文檔及其他數(shù)據(jù)庫中,如表1所示。
系統(tǒng)輸出表格 表1
本文所闡述的關(guān)于小型地下管線信息系統(tǒng)管理軟件涵蓋了一般地理信息系統(tǒng)軟件的共性,只是當(dāng)前是用于地下管線這一塊,限于篇幅所列舉的實現(xiàn)原理與原代碼有限,但都是實現(xiàn)本系統(tǒng)的關(guān)鍵算法與方法,可以通過示例,舉一反三,更好地完善本系統(tǒng)的其他專業(yè)模塊,使其能更好完成其他部門的工作,比如給水公司,電信公司,電力公司,當(dāng)?shù)亟ㄔO(shè)規(guī)劃部門等等。當(dāng)然,在顯示與輸出這一塊,還可以加進三維圖形顯示,輸出到更高級數(shù)據(jù)庫以及加入版本信息,為以后升數(shù)據(jù)結(jié)構(gòu)類作準(zhǔn)備,實現(xiàn)更好的、更全面的地理信息管理。
[1]孫江宏,丁立偉,米潔.AutoCAD ObjectARX開發(fā)工具及應(yīng)用[M].北京:清華大學(xué)出版社,1999
[2]二代龍震工作室.AutoCAD ARX函數(shù)庫查詢辭典[M].北京:中國鐵道出版社,2003
[3]地下管線普查技術(shù)規(guī)程(試行稿).2007
[4]陳述彭,魯學(xué)軍,周成虎編.地理信息系統(tǒng)導(dǎo)論.北京:科學(xué)出版社,2000
Using ObjectARX Developing Minitype Underground Pipeline Information Management System
Yang XiaoBing
(Huangshan Urban Surveying and Mapping Institude,Huangshan 245000,China)
Only knows the VC++and ObjectARX development tools for developing this system,and learning or using this system is so easy,and does not need other administrators,So this case is cheaper to achievement of the undergroup pipeline information management system for a minitype town or urban.This file illuminates the key technology and key skills for developing this system,and providing ideas and a case for individual development software.
AutoCAD;ObjectARX;VC++;Group Dictionary;Extended Data;Entity;Well;GIS
1672-8262(2010)04-74-03
P208
B
2009—11—30
楊小兵(1977—),男,工程師,主要從事城市測繪、城市GIS建設(shè)與管理、數(shù)字化航攝及GIS應(yīng)用軟件編程等工作。