- 相關(guān)推薦
試談基于CASS的DWG數(shù)據(jù)快速分層方法論文
1 前 言
AutoCAD 是一種以二維制圖為主,具有部分三維功能的工程設(shè)計軟件。友好的界面設(shè)置,鼠標(biāo)與命令相結(jié)合的操作模式,強大的工程設(shè)計功能及豐富的二次開發(fā)接口,使其在工程測繪制圖上應(yīng)用廣泛,成為地形圖矢量制圖與數(shù)據(jù)整理的首要軟件之一。CASS 碼是南方數(shù)碼公司結(jié)合地理信息分類碼編制的一套適用于AutoCAD 地形圖制圖的地類分類碼,包括所有常見的地理要素。CASS 碼依托于AutoCAD 的DWG 圖形數(shù)據(jù)庫,以擴展屬性的方式為DWG 數(shù)據(jù)圖元數(shù)據(jù)追加CASS 屬性,用以區(qū)分各種不同地物要素,實現(xiàn)一個地物或圖元對應(yīng)一條數(shù)據(jù)記錄。VBA 是AutoCAD 自帶的一種二次開發(fā)環(huán)境,采用VB 語法,能夠編程實現(xiàn)對AutoCAD 圖元要素的各種復(fù)雜操作。
CAD 數(shù)據(jù)對象有個很大的不足之處,就是對象可以很容易的移動到其他圖層,基本沒有限制,方便數(shù)據(jù)編輯的同時,也因為誤操作導(dǎo)致數(shù)據(jù)分層極易出錯。本文嘗試避開人工操作實體對象,通過編制分層文件和計算機程序,以CASS 碼為檢索目標(biāo),實現(xiàn)對測繪數(shù)據(jù)的快速分層,滿足各種定制需求。
2 AutoCAD 擴展屬性與CASS 碼
AutoCAD 擴展屬性(XDATA)是向AutoCAD 中的幾何實體添加自定義數(shù)據(jù),可以處理包括字符串、實數(shù)、整數(shù)和實體句柄等許多信息,但要求的數(shù)據(jù)量不超過16K。AutoCAD 可以與管理基本幾何實體數(shù)據(jù)一樣管理XDATA,但必須采用程序操作。擴展的對象數(shù)據(jù)是在對象數(shù)據(jù)記錄中以標(biāo)示碼為前導(dǎo)的一個項。在一個圖元中,可以加入擴展數(shù)據(jù)大小為: 16 383 字節(jié)。
南方CASS 是一種在地形圖繪制中應(yīng)用廣泛的制圖軟件,其通過編制一整套的CASS 碼,以擴展屬性的方式添加到CAD 圖形中,實現(xiàn)地形要素的編碼與制圖。每個圖元由唯一CASS 碼標(biāo)示,在一個圖形要素中,每一行擴展屬性包括兩部分內(nèi)容。以一個建筑要素為例,其CASS 碼包括三個部分:第一行是標(biāo)示字符,表明這個是南方CASS 擴展屬性,如“1001:SOUTH”;第二行標(biāo)示要素類,也就是要素分類碼,標(biāo)示此要素的具體分類,如磚房屋“1000:141111”;第三行為補充性字段,如樓層數(shù)“1040:7”。本文通過檢索CASS 碼中的地類碼,來實現(xiàn)對圖形要素的快速分層
3 技術(shù)流程
為了能夠重復(fù)利用已經(jīng)編制好的數(shù)據(jù)分層規(guī)則,本文以數(shù)據(jù)庫的形式存儲基于CASS 碼的數(shù)據(jù)分層規(guī)則。程序遍歷圖中所有圖元,讀取CASS 碼,或者將已公開的CASS 碼提前錄入數(shù)據(jù)庫中。然后按照分層要求,建立對應(yīng)的圖層,將所屬的CASS 碼歸入對應(yīng)的圖層規(guī)則中,完成數(shù)據(jù)分層規(guī)則的初步編制。分層規(guī)則編制完成后,由程序遍歷所有圖形要素,讀取CASS碼,檢索分層規(guī)則確定其對應(yīng)圖層,將地形要素移入對應(yīng)圖層中。對未按照規(guī)則分層,遺漏的圖形要素,檢測CASS 碼,確定是規(guī)則遺漏還是其他原因,修正分層規(guī)則,重新分層,以達到將所需要的地物要素完全按照需要進行分層定制,得到目標(biāo)AutoCAD 文件,技術(shù)流程
4 程序?qū)崿F(xiàn)
本文所述數(shù)據(jù)分層方法用數(shù)據(jù)庫存儲分層規(guī)則,以CAD 擴展工具欄的方式實現(xiàn)相關(guān)操作命令。數(shù)據(jù)庫采用Access 的mdb 數(shù)據(jù)庫, 包括存儲CASS 碼和分層規(guī)則兩大部分,其中存儲CASS 碼的數(shù)據(jù)表在前期用Access 定制,存儲分層規(guī)則的數(shù)據(jù)表用程序?qū)崿F(xiàn)。
CAD 擴展工具欄通過在CAD 命令行數(shù)據(jù)“cui”命令,打開“自定義用戶界面”,通過建立自定義的菜單欄和菜單項,實現(xiàn)本文所需工具欄的定制,并設(shè)置相應(yīng)的程序入口。自定義lh. cui 為自定義菜單文件,其“圖層管理”工具欄中的“分層設(shè)置”用來對分層規(guī)則的編制,“數(shù)據(jù)分層” 用來實現(xiàn)數(shù)據(jù)分層命令。選中單個菜單項,可對相關(guān)命令內(nèi)容進行設(shè)置。上述分層規(guī)則數(shù)據(jù)表的創(chuàng)建及其他數(shù)據(jù)分層的實現(xiàn),采用VBA 程序設(shè)計工具,編寫相應(yīng)的程序代碼與工具欄命令相對應(yīng)。首先,采用ADO 數(shù)據(jù)庫方法,與存儲數(shù)據(jù)庫建立連接,實現(xiàn)數(shù)據(jù)表的建立,并將編制的分層規(guī)則存入對應(yīng)的數(shù)據(jù)表中。然后采用CAD 二次開發(fā)中的GetXData 方法,讀取地物要素的CASS 碼,并按分層規(guī)則將要素歸入對應(yīng)圖層中。
程序開發(fā)完成后,CAD 命令行輸入“menuload”加載定制的工具欄文件(cui 文件),輸入命令“appload”加載程序文件(DVB 文件),完成相關(guān)程序集的加載。設(shè)置好后,CAD 每次啟動將自動加載cui 和dvb 程序文件。新奧燃氣的分層規(guī)則如圖4 所示,共5 個圖層:道路、建筑、圖框、植被和水系,每個圖層包括制定的CASS 碼。通過檢索DWG 中實體對象CASS 碼,快速完成分層規(guī)則的編制。項目覆蓋面積約200 km2,從定制分層規(guī)則到分層完成,用時僅約30 min,且分層無錯漏,并剔除了多余數(shù)據(jù)。
5 結(jié) 論
本文闡述的數(shù)據(jù)分層方法,通過在新奧燃氣制圖等多個項目中使用,相比人工分層明顯提高了工作效率,且避免了人工分層時的要素遺漏與錯層等常見錯誤。以數(shù)據(jù)庫存儲分層規(guī)則,實現(xiàn)了一次定制分層規(guī)則,多次應(yīng)用,節(jié)省了前期所需時間。采用cui 文件與DVB 文件相結(jié)合的方式,既解決了DVB 文件無法編譯,每次應(yīng)用需加載的問題,又實現(xiàn)了菜單制作與程序分離,易于后續(xù)的修改與維護。本程序在實現(xiàn)分層的同時,亦可實現(xiàn)對特定地物要素的提取,只需將需要的地物要素按照圖層設(shè)置好,就可將相關(guān)要素提取到對應(yīng)圖層中。但是在編制分層規(guī)則上,有些不足,效率上有待提高。
【試談基于CASS的DWG數(shù)據(jù)快速分層方法論文】相關(guān)文章:
下分層快速掘進的研究論文04-30
基于南方CASS5.1的基礎(chǔ)空間數(shù)據(jù)整理04-27
基于南方CASS的全要素地形圖數(shù)據(jù)入庫整理04-29
基于MODIS數(shù)據(jù)的積雪提取方法04-27
探析基于大數(shù)據(jù)環(huán)境下的數(shù)據(jù)安全論文07-26
基于ENVI的MODIS數(shù)據(jù)預(yù)處理方法04-28
試談建筑工程管理的影響因素與應(yīng)對方法分析論文05-02
基于CATIA的機床夾具元件快速造型方法05-02
試談濱水城的景觀設(shè)計論文05-01