(從化市測(cè)繪隊(duì) 廣東從化 510900)
數(shù)字化測(cè)繪產(chǎn)品的出現(xiàn),替代了以往常規(guī)的測(cè)繪產(chǎn)品。從數(shù)據(jù)的輸入、處理、輸出等方面,都有著傳統(tǒng)測(cè)繪無(wú)法比擬的優(yōu)越性。數(shù)字化測(cè)繪產(chǎn)品相比常規(guī)的測(cè)繪產(chǎn)品,具有數(shù)據(jù)量大、數(shù)據(jù)精度高、數(shù)據(jù)具有特定的結(jié)構(gòu)和隱含的屬性等特點(diǎn)。在數(shù)字化測(cè)繪產(chǎn)品的檢查過(guò)程中,檢查數(shù)據(jù)的結(jié)構(gòu)、屬性、平面和高程精度是一項(xiàng)非常重要的內(nèi)容。這些檢查工作如果完全依賴(lài)人工,效率就非常低下。因此利用程序進(jìn)行數(shù)據(jù)檢查就成了數(shù)據(jù)質(zhì)量檢查的重要手段。本文介紹通過(guò)利用AutoCAD VBA 語(yǔ)言編程開(kāi)發(fā)的程序,進(jìn)行數(shù)字化地形圖平面精度自動(dòng)快速檢查的方法。
數(shù)字化地形圖平面精度檢查,一般是利用全站儀或者GPS 在野外實(shí)測(cè)地物點(diǎn)的平面坐標(biāo)記錄下來(lái),展繪到電子圖來(lái)進(jìn)行比對(duì)檢查。如果用人工的方法進(jìn)行檢查,不僅費(fèi)時(shí)費(fèi)力,而且也容易疏漏。利用AutoCAD VBA 語(yǔ)言編程,進(jìn)行檢查,在軟件中直接調(diào)入外業(yè)記錄的檢查數(shù)據(jù),程序讀取檢查數(shù)據(jù),自動(dòng)在A(yíng)utoCAD 圖形上尋找相匹配的點(diǎn)位進(jìn)行計(jì)算和檢查。自動(dòng)進(jìn)行精度計(jì)算,并輸出美觀(guān)的檢查表格,快速、準(zhǔn)確和美觀(guān),大大節(jié)省了人力物力,提高了勞動(dòng)效率。利用AutoCAD VBA 編程檢查數(shù)字化地形圖平面精度的流程,參見(jiàn)圖1。
圖1 數(shù)字化地形圖平面精度自動(dòng)檢查流程圖
AutoCAD VBA工程是由內(nèi)嵌的程序模塊、類(lèi)模塊和窗體組成的集合,運(yùn)行它們即可完成設(shè)計(jì)的功能。VBA 工程保存于A(yíng)utoCAD 圖形文件內(nèi)部,稱(chēng)為內(nèi)嵌VBA 工程;也可保存為為全局VBA 工程,是以*.dvb 文件格式保存。在A(yíng)utoCAD中實(shí)現(xiàn)VBA 有四大優(yōu)點(diǎn):
(1)Visual Basic 編程環(huán)境易學(xué)易用。
(2)VBA 與AutoCAD 在同一進(jìn)程空間中運(yùn)行,使程序執(zhí)行得很快。
(3)對(duì)話(huà)框的構(gòu)造快速而有效。這使開(kāi)發(fā)人員可以構(gòu)造原型應(yīng)用程序并迅速收到設(shè)計(jì)的反饋。
(4)工程可以是獨(dú)立的,也可以嵌入到圖形中,用戶(hù)可以實(shí)現(xiàn)圖形與程序的交互使用。開(kāi)發(fā)人員可以靈活的方式來(lái)發(fā)布他們的應(yīng)用程序。新工程會(huì)被創(chuàng)建為未保存的全局工程。創(chuàng)建完成后,可以將它嵌入到圖形中或保存到工程文件中。
地形圖平面精度自動(dòng)檢查程序是利用地物點(diǎn)的屬性,提取地物點(diǎn)的坐標(biāo)值,在設(shè)定范圍內(nèi)按條件建立選擇集并進(jìn)行過(guò)濾,提取出與檢查點(diǎn)相匹配的點(diǎn)的坐標(biāo)值。與野外采集的檢查點(diǎn)坐標(biāo)自動(dòng)進(jìn)行比較,自動(dòng)計(jì)算檢查點(diǎn)與被檢查點(diǎn)之間的點(diǎn)位誤差,自動(dòng)完成檢查精度計(jì)算并輸出美觀(guān)的檢查統(tǒng)計(jì)表格。程序編程的主要思路及主要檢查過(guò)程如下:
(1)設(shè)定過(guò)濾條件,為程序搜索和匹配檢查點(diǎn)設(shè)定范圍和條件。
(2)讀入野外采集的碎部數(shù)據(jù)。后期綁定。
(3)利用選擇集過(guò)濾器,按設(shè)定的條件進(jìn)行選擇。
(4)取出被選中的點(diǎn)的坐標(biāo)值,并計(jì)算點(diǎn)位精度。
(5)輸出精度檢查數(shù)據(jù)。
程序軟件采用Auto CAD VBA 語(yǔ)言編程開(kāi)發(fā),由于可以實(shí)現(xiàn)大批量的外業(yè)測(cè)量數(shù)據(jù)自動(dòng)處理和檢查,既減少人工干預(yù)作業(yè)的過(guò)程、降低勞動(dòng)強(qiáng)度、縮短工作時(shí)間,又避免了人工錯(cuò)誤、確保數(shù)據(jù)精度,從而大大的提高了效率。程序運(yùn)行步驟如下。
①加載并程序,顯示程序主界面如下圖。
②雙擊“打開(kāi)打點(diǎn)文件”調(diào)入野外采集的碎部數(shù)據(jù)。程序會(huì)自動(dòng)生成保存目錄,并在界面框內(nèi)輸入相應(yīng)的限差和搜索范圍,按需要選擇“地籍/地形/高程”按鈕。如下圖。
③點(diǎn)擊“匹配”按鈕,程序開(kāi)始自動(dòng)搜索并進(jìn)行點(diǎn)位匹配。
③click on the "match" button,the program to automatically search and point matching.
Automatic pick up point inspection process diagram.
自動(dòng)取點(diǎn)檢查過(guò)程圖
取點(diǎn)結(jié)束在窗口顯示檢查點(diǎn)的坐標(biāo)和點(diǎn)位誤差,如上圖。
檢查完畢,可以用鼠標(biāo)點(diǎn)擊程序視窗內(nèi)的數(shù)據(jù),在A(yíng)uto CAD 圖形界面內(nèi)交互查看檢查點(diǎn)的情況,既方便有快速。
④生成美觀(guān)的精度檢查統(tǒng)計(jì)表格,并對(duì)超限的數(shù)據(jù)做了標(biāo)示,非常直觀(guān)。如下截圖所示。
利用Auto CAD VBA 語(yǔ)言編程,通過(guò)Auto CAD 圖形的圖層、屬性等特點(diǎn),用VBA 語(yǔ)言實(shí)現(xiàn)程序的自動(dòng)選擇和過(guò)濾。作為該程序開(kāi)發(fā)的基本思路,本程序經(jīng)過(guò)周密測(cè)試,已成功應(yīng)用于測(cè)區(qū)數(shù)字化地形圖的平面精度檢查,軟件效率高,運(yùn)行速度快,差錯(cuò)率小,使用簡(jiǎn)便明了。由此可以解決數(shù)字化地形圖生產(chǎn)檢查中的一些問(wèn)題,縮短了檢查時(shí)間,提高生產(chǎn)效率。
[1]高春燕,李俊民,劉彬彬.Visual Basic 程序開(kāi)發(fā)范例寶典[M].北京:人民郵電出版社,2006-07.
[2]賽奎春,李俊民.Visual Basic 函數(shù)參考大全[M].北京:人民郵電出版社,2006-12.
[3]秦永樂(lè).Visual Basic 測(cè)繪程序設(shè)計(jì)[M].鄭州:黃河水利出版社,2005-08.
[4]張凡.AutoCAD VBA 二次開(kāi)發(fā)教程[M].北京:清華大學(xué)出版社,2006-01.
[5]曾洪飛,張凡,盧擇臨.AutoCAD VBA &VB.NET 開(kāi)發(fā)基礎(chǔ)與實(shí)例教程[M].北京:中國(guó)電力出版社,2008-02.
[6]李士雨.工程數(shù)學(xué)基礎(chǔ)-數(shù)據(jù)處理與數(shù)值計(jì)算[M].北京:化學(xué)工業(yè)出版社,2005-05.
[7]佟彪.VB 語(yǔ)言與測(cè)量程序設(shè)計(jì)[M].北京:中國(guó)電力出版社,2007.
[8]孔祥元,郭際明.控制測(cè)量學(xué)[M].武漢:武漢大學(xué)出版社,2006-10.