CAD中炸開(kāi)符號(hào)的自動(dòng)識(shí)別和生成.doc_第1頁(yè)
CAD中炸開(kāi)符號(hào)的自動(dòng)識(shí)別和生成.doc_第2頁(yè)
CAD中炸開(kāi)符號(hào)的自動(dòng)識(shí)別和生成.doc_第3頁(yè)
CAD中炸開(kāi)符號(hào)的自動(dòng)識(shí)別和生成.doc_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

CAD中炸開(kāi)符號(hào)的自動(dòng)識(shí)別和生成趙振東(遼寧省地理信息院,遼寧 沈陽(yáng) 110034)摘 要:在測(cè)繪生產(chǎn)中,有時(shí)由于歷史原因,我們要處理的cad數(shù)據(jù)是碎線,即符號(hào)等全被炸開(kāi)成一段一段的了,這時(shí),我們除了用它做底圖重新采集外,似乎是沒(méi)有什么辦法了,眼瞅著現(xiàn)有數(shù)據(jù)卻不能直接用,還得重畫(huà),真的很郁悶。其實(shí),通過(guò)分析各個(gè)符號(hào)的幾何特征,利用autolisp二次開(kāi)發(fā)還是有辦法的。本文就是以一幅cad圖中植被符號(hào)為例來(lái)解決這種碎線提取的問(wèn)題。關(guān)鍵詞:CAD autolisp 符號(hào)識(shí)別 特征 植被符號(hào)1 以直線為特征的符號(hào)提取(1)CAD數(shù)據(jù)現(xiàn)狀我們所看到的是一幅全要素CAD圖,包括居民地、道路、植被等。所有植被符號(hào)都在L層,以碎線形式存在。L層各種符號(hào)樣子如下:L層對(duì)象情況:1)所有對(duì)象共有13種。2)所有對(duì)象同一圖層和顏色。3)碎線符號(hào)之間間距大于150。4)各個(gè)符號(hào)線劃集中在40x40的小矩形范圍內(nèi)。(2)針對(duì)以上特征,以針闊混交林為例,因其最下面水平線超長(zhǎng)為29,具有唯一性,設(shè)計(jì)其提取流程:N選擇所有在L層的直線放到選擇集SSOLD中順序獲取SSOLD中一條直線直線角度=180 長(zhǎng)度28依此直線生成40x40選區(qū)區(qū)直線中點(diǎn)為符號(hào)插入點(diǎn)選中的碎線移到tmp層插入針闊混交林符號(hào)到newL層Y(3)實(shí)現(xiàn)前期工作:1、新建tmp層,在此層存放提取的線劃。 2、新建newL層,在此層插入標(biāo)準(zhǔn)符號(hào)。Lisp代碼實(shí)現(xiàn)部分:(setq ssold (ssget X (0 . LINE)(8 . L)(setq ssnew nil)(setq n1 (sslength ssold)(setq i 0 num1 0 num2 0 flag 0)(command .zoom e )(while ( i n1) (setq en (ssname ssold i) (setq ed (entget en) (setq pt1 (cdr (assoc 10 ed) (setq pt2 (cdr (assoc 11 ed) (setq ang (angle pt1 pt2)(setq dis (distance pt1 pt2) (if (and (equal dis 26 0.001) ( equal ang 0 0.001) ) (progn (setq pt3 (polar pt2 (/ pi 2) 25) (setq ss1 (ssget c pt1 pt3 (8 . L) (if (= ( sslength ss1) 6) (progn (command change ss1 p la tmp ) (setq pt1 (polar pt1 0 13) (command .insert f118 pt1 10 10 ) ) ) ) ) (setq i (+ i 1) )(4)各種以線為特征線的符號(hào)比較:特征線長(zhǎng)度角度符號(hào)插入點(diǎn)找到對(duì)象個(gè)數(shù)針闊混交林最底線290中點(diǎn)5針葉林中間線2590下端點(diǎn)3稻田中間線2090中點(diǎn)1草地左邊線1090中點(diǎn)1,直線旱地最底線200中點(diǎn)2,直線疏林最底線100左端點(diǎn)1,圓經(jīng)濟(jì)林最上線890下端點(diǎn)1,圓闊葉林最底線5.80左端點(diǎn)2表中其它符號(hào)的提取同針闊混交林。2 以圓為特征的符號(hào)提取(1)以圓為特征的同線的稍有不同,以成林符號(hào)為例,設(shè)計(jì)提取流程如下:YN選擇所有在L層的圓放到選擇集SSOLD中順序獲取SSOLD中一個(gè)圓圓半徑=6圓心為符號(hào)插入點(diǎn)插入成林符號(hào)到newL層Y選區(qū)圓=1選中圓移到tmp層依此圓心生成40x40選區(qū)(2)Lisp代碼實(shí)現(xiàn)部分:(setq ssour (ssget X (0 . ARC)(8 . L)(-4 . =)(setq n1 (sslength ssour)(setq i 0 num2 0 )(command .zoom e )(while ( i n1) (setq en (ssname ssour i) (setq ed (entget en) (setq pt (cdr (assoc 10 ed) (setq pt1 (polar pt (* pi 0.25) 9) (setq pt2 (polar pt (* pi 1.25) 9) (setq len1 0) (setq ss1 (ssget _C pt1 pt2 ( (8 . L) ) (if ss1 (setq len1 (sslength ss1) (setq pt3 (polar pt (* pi 0.25) 15) (setq pt4 (polar pt (* pi 1.25) 15) (setq ss2 nil) (setq ss2 (ssget _C pt3 pt4 (0 . ARC) (8 . L)(-4 . =)(40 . 3.99) (if (and (= len1 1) (not ss2) (progn (setq ess (ssadd en) (command .change ess p la tmp ) (command .insert f118 pt 10 10 ) ) (setq i (1+ i)(3)各種以圓為特征的符號(hào)比較:半徑符號(hào)插入點(diǎn)找到的其它圓個(gè)數(shù)成林6圓心0小樹(shù)林6圓心1幼林4圓心0稀灌4圓心9密灌4圓心12表中其它符號(hào)的提取同成林符號(hào)。(4)檢驗(yàn):所有對(duì)象提取完后,在L層應(yīng)不再有任何對(duì)象了。3 結(jié)束語(yǔ)本程序的完成,把在

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論