劉軍,劉全海,楊志惠,王華
(常州市測繪院,江蘇常州 213002)
武進市政部件普查數(shù)據(jù)采集軟件開發(fā)
劉軍?,劉全海,楊志惠,王華
(常州市測繪院,江蘇常州 213002)
主要介紹武進市政部件普查數(shù)據(jù)采集軟件各功能模塊的特色,并詳細介紹了各功能模塊開發(fā)思路,并給出了程序的主要代碼。
AutoCAD二次開發(fā);市政部件;功能模塊;XDATA擴展屬性;Access數(shù)據(jù)庫;程序源碼
“電子政務”在現(xiàn)代化城市管理中,對全面提升城市市政公用設施安全保障和服務管理能力,具有重要意義。武進區(qū)“市政設施信息系統(tǒng)”建設項目于2009年8月份啟動。常州市測繪院負責數(shù)據(jù)采集與整理建庫等工作,廣州城信所負責管理系統(tǒng)的開發(fā)與數(shù)據(jù)標準制定等工作。根據(jù)廣州城信所提供的數(shù)據(jù)標準與要求,我院自主研發(fā)了“武進市政部件普查數(shù)據(jù)采集軟件系統(tǒng)”。
根據(jù)武進市政部件數(shù)據(jù)的標準與要求、作業(yè)人員的工作特點以及整個項目實施流程,設計了整個軟件系統(tǒng)的8個功能模塊。軟件的主要功能包括外業(yè)數(shù)據(jù)采集坐標計算、部件成圖、部件的繪制、部件屬性查詢與修改、面狀與線狀部件屬性值的批量修改、部件屬性批量處理、部件屬性輸出與部件數(shù)據(jù)監(jiān)理等。
整個系統(tǒng)涵蓋了AutoCAD VBA二次開發(fā)技術、文件存取技術、數(shù)據(jù)庫技術與COM技術。各功能模塊如圖1所示。

圖1 武進市政部件普查數(shù)據(jù)采集軟件功能模塊
(1)外業(yè)數(shù)據(jù)采集坐標計算功能
處理外業(yè)人員利用儀器采集回來的市政部件數(shù)據(jù)格式是以“點號、水平角、豎直角、斜距、棱鏡高”存儲的,所以,需根據(jù)設站點與后視點的坐標計算出各碎步的坐標。計算成果輸出為文本文件與Excel文件兩種格式,在AutoCAD上展點成圖可以使用任意一種數(shù)據(jù)格式。碎步點坐標計算模塊界面如圖2所示。

圖2 外業(yè)數(shù)據(jù)采集坐標計算
(2)部件成圖
部件成圖功能,即把部件的坐標數(shù)據(jù)展繪到Auto-CAD中,用符號化的方法表示出部件的具體位置與部件的性質。需要說明的是在數(shù)據(jù)采集過程中我們已經對各類部件進行編碼,點號中包含了部件的編碼,故成圖軟件根據(jù)唯一的編碼在Access表中的對應塊名展繪出相應的符號,如107HF即代表的是郵電井蓋、方形。根據(jù)甲方提供相關部件屬性數(shù)據(jù)在部件的展繪時一并添加到其對應位置的XDATA附加屬性中,以備數(shù)據(jù)入庫使用。這樣大大降低了作業(yè)人員的勞動量,提高了生產效率。如圖3所示為展繪的帶有編號的點位。

圖3 部件成圖
(3)部件的繪制
部件的繪制功能提供外業(yè)人員調查到的部件人工展繪到AutoCAD中,在AutoCAD屏幕菜單中顯示各類部件,作業(yè)人員根據(jù)類別打開屏幕菜單,找到所需的部件點并使用鼠標左鍵單擊,程序會彈出其屬性對話框,作業(yè)人員輸入其屬性值完畢即可在AutoCAD工作區(qū)繪制部件符號,如圖4所示。

圖4 部件的繪制與其屬性數(shù)據(jù)輸入

圖5 部件屬性查詢與修改
(4)部件屬性查詢與修改
部件屬性查詢與修改功能模塊為作業(yè)人員提供逐一查看、增加、修改、刪除等編輯部件屬性值功能。點選一個部件時,程序將彈出此部件的屬性對話框,作業(yè)人員可以在此對話框中編輯部件的屬性值,如圖5所示。
(5)面狀與線狀部件屬性值的批量修改
對于綠地在市政部件中采用面狀符號表示,其屬性值含有面積值字段,地面管線是以線狀符號表示,其屬性值中含有長度值字段,考慮到兩類數(shù)據(jù)的特殊性,單獨編寫“面狀與線狀部件屬性值的批量修改”功能模塊處理此類數(shù)據(jù),起到事半功倍的效果。此類屬性數(shù)據(jù)一般在數(shù)據(jù)檢查完畢確保面狀地物閉合再進行批量處理面積與長度屬性值。框選所有的市政部件,該功能將自動把面狀與線狀部件的面積值與長度值自動添加到其擴展屬性中。
(6)部件屬性批量處理
部件屬性批量處理為作業(yè)人員提供同類部件相同屬性的批量處理工具,因為市政部件的屬性很多,一般的同名部件的屬性值基本相同,所以此模塊在市政部件屬性數(shù)據(jù)處理中發(fā)揮了極大作用,解決了手工逐一處理部件屬性的缺點。首先使用pline線繪制需要批量處理屬性部件的范圍,選擇此條線,程序彈出圖6所示的對話框。作業(yè)人員選擇需要批量處理屬性值的部件,根據(jù)界面提示輸入相應的屬性值點擊確定即可。程序自動處理線范圍內指定的部件屬性值。

圖6 部件屬性批量處理
(7)部件屬性輸出
部件屬性輸出即把AutoCAD中部件的擴展屬性值輸出到Excel表中,表格中有對應的字段名稱,供作業(yè)人員檢查各部件的屬性數(shù)據(jù)的錯漏問題,根據(jù)錯漏部件的唯一標識句柄在AutoCAD中查找到對應的部件,使用部件查詢與修改模塊工具修改其屬性值。部件屬性輸出數(shù)據(jù)樣式如圖7所示。

圖7 部件屬性輸出數(shù)據(jù)樣式
(8)部件數(shù)據(jù)監(jiān)理
部件數(shù)據(jù)監(jiān)理檢查市政部件的邏輯錯誤,如代碼與塊符號、屬性的匹配情況以及面狀地物的封閉與否、部件所在的圖層是否正確等。數(shù)據(jù)入庫前必須經過此模塊檢查,確保數(shù)據(jù)無邏輯錯誤,否則將給后繼工作帶來不便。
(1)軟件開發(fā)整體構思
軟件開發(fā)涉及AutoCAD繪圖軟件與數(shù)據(jù)庫管理應用程序Microsoft Office Access 2003。首先把每一市政部件的基本信息存儲到Access數(shù)據(jù)庫文件中,在繪制部件與部件檢查等操作時程序查詢此數(shù)據(jù)庫文件中的部件屬性數(shù)據(jù),通過程序把部件的屬性與數(shù)據(jù)庫聯(lián)系起來,在AutoCAD中實現(xiàn)市政部件繪圖、數(shù)據(jù)檢查等功能。如根據(jù)部件的唯一國標碼確定市政部件所在的圖層、市政部件的符號名稱、市政部件的XDATA附加屬性個數(shù)以及部件是否閉合等等,因此對數(shù)據(jù)庫的查詢顯得尤為重要。市政部件屬性數(shù)據(jù)庫文件樣式如圖8所示。

圖8 市政部件屬性庫文件樣式
(2)程序主要代碼
本軟件采用DAO連接數(shù)據(jù)庫模式,在使用DAO對象之前,需要在AutoCAD的VBA集成開發(fā)環(huán)境中,選擇【工具/引用】菜單項,從彈出的對話框中選中【Microsoft DAO 3.6 Object Library】選項,引用DAO的對象模型。

武進市政部件普查數(shù)據(jù)采集軟件在設計與開發(fā)過程中所采用的技術,針對此類復雜數(shù)據(jù)的處理過程,取得了很好的效果;提供了自動展點繪制部件與批量處理屬性數(shù)據(jù)的工具;在屬性輸入與查詢對話框中采用了控件數(shù)組,節(jié)約了控件資源;繪圖軟件與數(shù)據(jù)庫相結合,實現(xiàn)了軟件方便管理,結構緊湊等優(yōu)點;程序運行穩(wěn)定,功能強大,靈活的功能定制,有效地提高了生產效率,得到了作業(yè)人員的好評。
[1] 李鳳華.AutoCAD 2002/2000 VBA開發(fā)指南[M].北京:清華大學出版社,2001
[2] 張帆,鄭立楷等.AutoCAD VBA開發(fā)精彩實例教程[M].北京:清華大學出版社,2004
Software Development of Wujin Municipal Components Collection
Liu Jun,Liu QuanHai,Yang ZhiHui,Wang Hua
(Changzhou Serveying and Mapping Institute,Changzhou 213002,China)
This paper details Wujin municipal components collection software features of each functional module;And details the development of ideas of each functional module.The main code of this programme is given.
AutoCAD development;Municipal components;Functional module、XDATA Additional Properties;Access database;program code
1672-8262(2010)06-43-04
P208
B
2010—01—07
劉軍(1978—),男,工程師,主要從事測繪軟件研發(fā)與測繪質量管理工作。