" />

久久色av_国产特级毛片aaaaaa毛片_成人一级黄色大片_操她视频网站_亚洲毛片_91精品国产日韩91久久久久久

基于AutoCAD的無屬性的高程圖形數(shù)據(jù)的處理

所屬欄目:計算機信息管理論文 發(fā)布日期:2011-06-07 17:32 熱度:

  摘要:在傳統(tǒng)的測繪方式中,由于受成圖方式和制圖軟件的限制,一些數(shù)字化成果的高程數(shù)據(jù)沒有屬性,給數(shù)據(jù)處理和利用造成了一定的麻煩。本文通過利用計算機程序解決了這一問題,在實際應(yīng)用中效果較好。
  關(guān)鍵詞:高程;屬性;程序;地形圖
  0、引言
  目前,測繪生產(chǎn)部門大多采用AutoCAD來生成和管理地形圖數(shù)據(jù),在CAD中,數(shù)據(jù)一般是按照地形要素分層存放的。因為各單位繪圖軟件的不同,在生成*.DWG圖時高程點的圖層和點的屬性也不同,有些單位因為軟件的限制,一般把高程注記只是按注記文本在CAD中進行組織和管理。在這種組織方式下,圖形和屬性之間的聯(lián)系僅體現(xiàn)在平面位置上的靠近,這就割裂了圖形和屬性之間的關(guān)聯(lián),造成了高程數(shù)據(jù)無法直接讀取和屬性提取。主要缺陷在于:(1)在更換圖的比例尺時候很難根據(jù)實際情況均勻的刪除高程注記。(2)很難自動提取異常高程。(3)這種高程數(shù)據(jù)做不了數(shù)字高程模型(DEM)。(4)做不了GIS的屬性數(shù)據(jù)。(5)在做土方量計算的時候,這種高程數(shù)據(jù)計算起來相當(dāng)麻煩。
  在分析了不同時期用不同軟件做出的數(shù)字化地形圖之后,我找到了一種好的方法,可以自動刪除多余的高程注記,使高程點根據(jù)實際情況均勻分布,可以根據(jù)用戶的輸入條件自動刪除異常高程點,可以把沒有屬性的高程點加入屬性,方便做土方量計算和數(shù)字高程模型,可以生成GIS需要的三維高程數(shù)據(jù)文本文件。
  1、實現(xiàn)原理
  首先獲取高程點所在的圖層名稱,其次獲取高程點的屬性,一般為POINT,LWPOLYLINE,CIRCLE,BLOCK等,根據(jù)高程點的平面坐標(biāo)位置獲取離此高程點最近的數(shù)字文本注記,判斷是否是高程值,建立文本文件,依次寫入點號、X坐標(biāo)、Y坐標(biāo)、Z坐標(biāo)(也就是離此高程點最近的數(shù)字文本注記)。然后刪除所有的高程點,等待用戶輸入:(1)高程點之間的最小距離、(2)用戶認為異常高程點的范圍值,重新繪制帶有屬性的三維高程點,程序流程見圖一。
  
  
  
  圖一:程序框圖
  
  2、程序的實現(xiàn)
  開發(fā)CAD的語言有很多,常用的有VLISP、VBA、ARX等,可以根據(jù)程序要求選擇一種適合的語言,本程序并不復(fù)雜,而且考慮到安全問題,所以選用VLISP語言進行開發(fā),為了減少篇幅,只給出關(guān)鍵部分的代碼,如下所述。
  (1)獲取地形圖上的高程點,這里只給出簡單代碼:
  (setqss1(ssget'((-4."<OR")
  (-4."<AND")
  (0."LWPOLYLINE")
  (40.0.125)
  (-4."AND>")
  (-4."<AND")
  (0."INSERT")
  (8."GCD")
  (-4."AND>")
  (-4."OR>")
  …
  …
  )
  )
  )
  (2)根據(jù)選擇集中的高程點屬性的不同,分別建立區(qū)域選擇集,根據(jù)地形圖比例尺的不同,建立的區(qū)域選擇集也不同,簡單的語句為:
  (ssget"W"(list…)(list…)'((0."TEXT")))
  (3)寫入文件的語句為
  (write-line(strcat…))
  (4)建立完高程數(shù)據(jù)文件,就要根據(jù)用戶的輸入重新繪制高程點了,這里是本程序的核心部門,主要思路是:首先等待用戶輸入要繪制高程點間的最小距離和異常值的范圍,然后從剛生成的文件里提取高程數(shù)據(jù),判斷是不是異常高程,如果不是則在CAD窗口里繪制該高程點,讀下一行數(shù)據(jù),如果該數(shù)據(jù)離剛剛繪制的高程點的距離滿足用戶要求而且不是異常高,則繪制。讀下一行,如果該數(shù)據(jù)離前面已經(jīng)繪制的兩個高程點的距離滿足用戶要求而且不是異常高,則繪制,依次例推…。
  主要代碼為:
  (setqpf(open"d:\文件夾\txz.txt""r"))
  (setqi0)
  (setqreco(read-linepf))
  (whilereco
   (setqsxb(flzreco))
   (setqpt(list(atof(nth1sxb))(atof(nth2sxb))(atof(nth3sxb))))
   (set(read(strcat"NUM["(rtosi)"]"))pt)
   (setqreco(read-linepf))
   (setqi(+1i)))
  (closepf)
  (setqi(-i1))
  (setq j0
   t0
   m0
   a0)
  (set(read(strcat"NUM1["(rtos0)"]"))(eval(read(strcat"NUM["(rtos0)"]"))))
  (while(<ji)
  (while(<tm)
  (if(>(distance(list(car(eval(read(strcat"NUM["(rtosj)"]"))))(cadr(eval(read(strcat"NUM["(rtosj)"]")))))(eval(read(strcat"NUM1["(rtost)"]"))))del_dist)
  (setqa(1+a)))
  (setqt(1+t)))
  (if(=am)
   (progn
   (set(read(strcat"NUM1["(rtosm)"]"))(eval(read(strcat"NUM["(rtosj)"]"))))
   (setqm(1+m))))
  (setqa0t0)
  (setqj(1+j)))
  (setqi0)
  (while(<im)
  (command"insert""500"(eval(read(strcat"NUM1["(rtosi)"]")))blcblc"")
  (command"text"(polar(eval(read(strcat"NUM1["(rtosi)"]")))0blc)blc0(rtos(caddr(eval(read(strcat"NUM1["(rtosi)"]"))))2xsd)"")
  (setqi(1+i)))))
  (princ))
  其中flz是一個分解字符串生成表的函數(shù),由于節(jié)省篇幅,這里沒有給出具體代碼。
  3、關(guān)于程序的一些說明
  不同的地形圖的高程點的屬性可能不同,應(yīng)根據(jù)實際情況,判斷高程點的平面坐標(biāo)和高程坐標(biāo),有的時候判斷高程坐標(biāo)的時候不能只根據(jù)高程點的平面坐標(biāo)到文字的距離進行簡單的判斷,而且在處理數(shù)據(jù)量比較大的地形圖時,要考慮程序的優(yōu)化問題,使它占用計算機內(nèi)存最小,而且隨時的釋放占用的內(nèi)存,以達到程序運行穩(wěn)定,處理速度快,出錯率低。
  參考文獻:
  [1]劉國鈞,陳紹業(yè),王鳳翥.圖書館目錄[M].北京:高等教育出版社,1957 

文章標(biāo)題:基于AutoCAD的無屬性的高程圖形數(shù)據(jù)的處理

轉(zhuǎn)載請注明來自:http://www.wangshangbanli.cn/fblw/dianxin/xinxiguanli/9316.html

相關(guān)問題解答

SCI服務(wù)

搜論文知識網(wǎng) 冀ICP備15021333號-3

主站蜘蛛池模板: 亚洲精品视频免费在线观看 | 一级毛片视频免费 | 欧美亚洲第一页 | 国产高清美女一级a毛片久久 | 韩国精品一区二区 | 图片亚洲va欧美va国产综合 | 久久激情综合网 | 伊人精品视频在线观看 | 日韩 亚洲 欧美 中文 高清 | 国产精品激情综合久久 | 国产一区二区三区在线视频 | 成人a毛片久久免费播放 | 亚洲一二三区在线观看 | 欧美日本一道本 | 久国产精品视频 | 国产精品不卡在线观看 | 日韩免费一区 | 精品一区 二区三区免费毛片 | 久久久久久国产精品免费 | 久久亚洲不卡一区二区 | 国产精品久久久久精 | 久久精品国产欧美日韩99热 | 天天做夜夜做久久做狠狠 | 日韩三级一区二区 | 免费看黄色毛片 | 国产亚洲人成a在线v网站 | 欧美在线一区二区三区 | 国产高清一区二区三区 | 久久精品一区二区三区不卡牛牛 | 亚洲网站免费观看 | 欧美2区| 国产成人高清亚洲一区久久 | 黄色一级a毛片 | h片免费在线观看 | 国产只有精品 | 国产精品视频久久久久 | 国产精欧美一区二区三区 | 日韩欧| 国产毛片高清 | 欧美色图另类 | 国产免费一区二区三区免费视频 |