国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

地形圖點(diǎn)狀符號遮擋地物自動刪除的程序開發(fā)

2012-06-29 07:26張福利丁亞南何立新
城市勘測 2012年4期
關(guān)鍵詞:程序運(yùn)行點(diǎn)狀代碼

張福利,丁亞南,何立新

(河南省中緯測繪規(guī)劃信息工程有限公司,河南焦作 454000)

1 引言

AutoCAD具有開放的體系結(jié)構(gòu),允許用戶和開發(fā)者采用高級編程語言對其進(jìn)行擴(kuò)充和修改,能最大限度地滿足用戶的特殊要求。目前國內(nèi)許多地形圖成圖軟件均基于AutoCAD平臺開發(fā)而成,在地形測繪的過程中使用了大量的獨(dú)立地物符號、行樹行灌木和面狀填充等點(diǎn)狀符號,在地形圖整飾或編繪專題地形圖時往往遇到這些點(diǎn)狀符號遮擋其他地物,手工刪除這些符號費(fèi)工費(fèi)時。本文詳細(xì)論述了使用VBA快速刪除遮擋符號的程序思路和代碼組織編寫,在生產(chǎn)實(shí)踐中取得了良好的效果。在地形圖自動化整飾領(lǐng)域進(jìn)行了有益的探索,符合數(shù)字測繪產(chǎn)品程序化、自動化和智能化的發(fā)展方向。

2 刪除點(diǎn)狀符號的可行性分析

VBA即Mcrosoft Office中的Visual Basic for Applications,自2000版本開始它便集成到了AutoCAD中。VBA為用戶訪問AutoCAD中豐富的技術(shù)框架打開了一條新的通道,它利用AutoCAD強(qiáng)大的ActiveX自動化對象模型,代表了一種新型的定制AutoCAD的模式構(gòu)架。通過VBA我們可以操作AutoCAD幾乎所有的內(nèi)部功能,控制ActiveX使之相互之間發(fā)生互動,為自動刪除AutoCAD中的各類實(shí)體提供了強(qiáng)大的技術(shù)支持。

地形圖上的符號一般由點(diǎn)、線、面、文字符號組成,若按符號與地物的比例關(guān)系分類,點(diǎn)狀符號又稱為不依比例符號。點(diǎn)狀符號按定位情況分為G兩類:

①定位性符號:它在地形圖上具有確定的位置,一般不能任意移動,如煙囪、水塔、檢修井等,它們可以根據(jù)符號的位置,確定其所代表的地物及實(shí)地位置。

②說明性符號:它在地形圖上一般是為了說明地物的質(zhì)量和數(shù)量特征而附加的符號,它們依附于定位范圍或定位線而存在,如旱地、林地符號配置于地類界范圍內(nèi),行樹依附定位線而存在,一般呈規(guī)則或不規(guī)則狀排列,但無定位意義。對于無實(shí)際定位意義的點(diǎn)狀符號或?qū)n}地圖上無需表示的點(diǎn)狀符號若遮擋了重要地物,在地形圖內(nèi)業(yè)整飾時,一般為保持圖面整潔要刪除這些符號。

3 程序設(shè)計(jì)的理論基礎(chǔ)和思路

地形圖上的點(diǎn)狀符號一般以圖塊的形式存在于DWG文件的圖形空間中,每種符號(圖塊)均具有特定的內(nèi)部名稱(塊名),在特定的比例尺下,符號有特定的比例因子和大小,每個符號插入點(diǎn)的三維坐標(biāo)是固定不變的。AutoCAD中的快速選擇功能可以方便的選擇某類實(shí)體對象并添加到選擇集中,用VBA代碼建立選擇集時可以同時設(shè)定選擇過濾器的多個條件,從而更精確、快速的選擇到所需的實(shí)體對象,進(jìn)而用代碼控制選中實(shí)體的移動、復(fù)制、刪除等操作。建立選擇集的方法很多,有“屏幕”選擇集,“封閉區(qū)域”選擇集、擴(kuò)展屬性選擇集等,本文用到的主要是“封閉區(qū)域”選擇集,如圖1所示。

程序能自動刪除遮擋地物的點(diǎn)狀符號主要是基于AutoCAD選擇集的操作進(jìn)行的。設(shè)想存在一個點(diǎn)狀符號,無論其形狀如何,總能有一個平行于坐標(biāo)軸的最小矩形框可以將符號完整包圍(如圖1所示)。如果以這個矩形框?yàn)檫x擇集的邊界,如果這個“封閉區(qū)域”內(nèi)不包含其他實(shí)體,那么選擇集選中的就是點(diǎn)狀符號自身,實(shí)體的數(shù)量為1個。如果這個封閉區(qū)域內(nèi)有其他符號、文字存在或有多段線、直線穿越,那么“封閉區(qū)域”內(nèi)就包括了多個實(shí)體,如圖2中的選擇集1包含了2個實(shí)體,實(shí)體數(shù)量為2。圖2中的選擇集2包含了3個實(shí)體,實(shí)體數(shù)量為3。

分析可知:通過點(diǎn)狀符號最小矩形包圍框建立的選擇集所選中的實(shí)體數(shù)量,如果數(shù)量大于1,那么可以判定該符號壓蓋了其他的地物,就可以將自身刪除掉。

圖1 封閉區(qū)域選擇集示意圖

圖2 包含多個實(shí)體的選擇集

4 程序代碼編寫要點(diǎn)

①建立一個維數(shù)固定的靜態(tài)數(shù)組用于存儲需要刪除的點(diǎn)狀符號的基本信息,如塊名稱及基于插入點(diǎn)的左高度、右高度、左寬度和右寬度等信息;

②在代碼中提供人機(jī)對話,便于用戶在CAD命令行輸入選擇集過濾條件,如符號所在的圖層等;

③依據(jù)輸入的過濾條件對整個圖形建立一個全局選擇集,例如選擇“ZBTZ”層上的所有點(diǎn)狀符號;

④循環(huán)讀取全局選擇集中的每個符號的塊名稱并和數(shù)組中存儲的符號信息進(jìn)行字符比較,確定該符號是否為程序確定刪除的符號;

⑤以每個點(diǎn)狀符號的插入點(diǎn)為基點(diǎn),以數(shù)組中存儲該符號的長度信息構(gòu)建一個矩形選擇區(qū)域,建立一個局部選擇集;

⑥對局部選擇集內(nèi)的實(shí)體數(shù)量進(jìn)行判斷,如果數(shù)量等于1則保留符號,否則便刪除符號自身。

5 程序關(guān)鍵代碼

6 程序運(yùn)行前后的對比

在圖3的地形圖中,陡坎線、文字和高程注記均不同程度地被旱地填充符號壓蓋,圖面質(zhì)量較差,程序運(yùn)行后壓蓋地物的旱地符號均自動的被刪除了,圖面效果明顯得到改善,如圖4的處理前后對比。

圖3 程序運(yùn)行前的地形圖

圖4 程序運(yùn)行后的地形圖

7 結(jié)語

程序投入使用后,在大面積的大比例尺地形圖內(nèi)業(yè)整飾中,短短幾分鐘的時間便可完成獨(dú)立符號遮蓋地物的刪除工作,相比傳統(tǒng)的人工查找刪除,效率大大的提高,節(jié)約了人力資源的投入。限于篇幅,文中僅論述了程序的設(shè)計(jì)理論基礎(chǔ)、開發(fā)思路和關(guān)鍵代碼的編寫過程。

[1]張帆,鄭立楷,王華杰等.AutoCAD VBA開發(fā)精彩實(shí)例教程[M].北京:清華大學(xué)出版社,2004.

[2]張曜,張青,李丁.Visual Basic函數(shù)實(shí)用手冊[M].北京:冶金工業(yè)出版社,2002.

[3]CJJ8-99.城市測量規(guī)范[S].

[4]GB/T 7929-1995.1∶500 1∶1000 1∶2000地形圖圖式[S].

[5]鄭殿軍,付翔等.地圖制圖[M].哈爾濱:哈爾濱地圖出版社,2001.

[6]CASS 7.0成圖軟件參考手冊[R].

猜你喜歡
程序運(yùn)行點(diǎn)狀代碼
Ⅰ型肢根型點(diǎn)狀軟骨發(fā)育不良家系的遺傳學(xué)分析
某住宅樓的混凝土點(diǎn)狀爆裂原因分析
行政公益訴訟訴前程序運(yùn)行檢視
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
淺談地理事物空間分布特點(diǎn)的描述
論刑事錯案的成因
皮損點(diǎn)狀切除聯(lián)合中藥熏洗治療肛門瘙癢癥43例