" />

色偷偷伊人-色偷偷综合-色无五月-色香蕉影院-色亚洲影院

非圖形擴展數據技術在地下管線測繪中的應用

所屬欄目:智能科學技術論文 發布日期:2011-07-20 08:12 熱度:

  摘要:隨著計算機技術的飛速發展和廣泛應用,在測繪行業,圖形的信息化、三維化、圖形和數據庫的互相轉換等技術已逐漸得到應用。筆者運用VisualLisp和DCL語言開發了繪制二維信息管線、二維信息管線與數據庫互相轉換、二維管線自動轉成三維管線的系統。
  關鍵詞:非圖形數據:圖形與數據的轉換:二維轉成三維
  0引言
  管線數據庫和三維管線是在二維信息管線的基礎上形成的。所謂二維信息管線就是在CAD中,用三維多段線畫線,加入管線信息,例如:管線類型、管線材質、管徑等。這些信息附加在多段線屬性列表的后面,也叫非圖形擴展數據。這樣,這條線既有CAD的幾何信息,又有用戶附加的個人信息。在程序運行中,這些信息可以根據需要檢索出來,以備形成數據庫和三維圖形使用。
  1二維信息管線
  建立和使用非圖形數據庫,*.DWG文件是AutoCAD在圖形生成和編輯中使用的數據庫,它存放的主要內容是所生成圖形的幾何信息和其他相關信息。DWG這種數據庫相當別致,數據的結構允許用戶建立自己的、許多種可能結構的“非圖形信息”數據。比如管線類型、管線材質、管徑等信息。
  AutoCAD實質上是一個優秀的數據庫軟件,對于非圖形數據的處理也具有許多優秀的性能。例如:雖然有高速讀取的特性,可是體積卻不大。數據值寫多長,DWG就記下多長。再如:檢索的方法多,可用圖形對象塊名色號、層名……作為索引,甚至用上述方法的組合。
  在指定對象中建立和加入擴展的對象數據庫的主要步驟:
  (1) 找到指定的目標對象名
  (While(Not(SetQen(EntSel"指定一個實體:")))(Alert"沒選中任何實體..."))
  (2)找到指定應用名(這是搜尋擴展對象數據庫的主要索引項)
  (Regapp"PIPEM")
  (3)加入擴展數據庫的開頭項,建立完整的擴展數據表
  (setqnew_ext_list(list-3(list"PIPEM"
  (cons1000data_ptype);管線類型
  (cons1000data_pmat);管線材料
  ……
  )))
  (4)組建后擴展數據庫的內容(這些內容附加在實體屬性列表的后面。)
  (("PIPEM"(1000."排水")(1000."水泥管")(1070.1000)(1070.0)(1040.0.0)(1040.0.0)(1000."")(1000."")(1000."")(1000."")(1070.0)(1000."")(1000."")(1070.0)(1000."")(1000."")))
  具體操作是在CAD環境下,選擇指定的目標對象,(三維多段線畫的線,)出現圖1的對話框,按外業調查的信息填入對話框,就建立了二維信息管線。
  
  圖1
  2二維管線轉成三維管線
  三維管線是在二維管線的基礎上用程序自動生成的,程序運行時,把生成三維管線所需要的幾何信息和附加信息檢索出來賦給設定的變量,經過畫線、拉伸、抽芯等步驟就自動生成三維管線。部分代碼如下:
  (Setqold_ext_list(assoc-3endata));取得非圖形數據庫列表
   (Setqptype(cdr(assoc1000(cdrold_ext_list))));管線類型
  (Setqpmat(cdr(assoc1000(cdrold_ext_list))));管線材料
  (Setqpdia(cdr(assoc1070(cdrold_ext_list))));管徑
  (Setqvla-pline(vlax-ename->vla-objecten));取得第一個點的坐標信息(vlax-dump-objectvla-pline)(SetqCoordinates(vla-get-Coordinatesvla-pline))
  (Setqval_list(safearray-value(vlax-variant-valueCoordinates)))
  (SetqX(carval_list))(SetqY(cadrval_list))(SetqH(-(caddrval_list)(/pdia2000.0)))
  (command"3dpoly"(listxyh));根據坐標信息畫線
  根據畫好的線變換坐標系,根據管線半徑畫圓,再經過拉伸抽芯就生成三維管線。部分代碼如下:
  (command"ucs""za"(listx0y0h0)(listx1y1h1)"");轉換坐標系
  (command"circle"'(000)(/pdia2000.0)"");根據管線半徑畫圓
  (command"extrude"bb2"""p"en1);根據圓拉伸
  (command"subtract"aa2""aa3"");抽芯
  畫好的三維管線效果圖如2:
  
  圖2
  有了這個程序,只要會操作CAD的技術人員,都會畫三維管線。
  3信息管線圖與數據庫的相互換
  信息管線圖轉到數據庫就是在程序運行時,把管線的幾何信息和附加信息檢索出來,按一條管線一個信息源寫到數據庫里。反之,把數據庫里的數據轉成CAD圖形就是在程序運行時,打開數據庫把數據(幾何信息和附加信息)讀出來,按這些信息在CAD中畫線、附加信息,再生成信息管線。部分代碼如下:
  (1) 信息管線轉到數據庫
  檢索管線的附加信息:
  (setqold_ext_list(assoc-3endata))
  (setqptype(cdr(assoc1000(cdrold_ext_list))));管線類型
   (setqpmat(cdr(assoc1000(cdrold_ext_list))));管線材料
   (setqpdia(cdr(assoc1070(cdrold_ext_list))));管徑
  檢索管線的幾何信息:
  (setqvla-pline(vlax-ename->vla-objecten))(vlax-dump-objectvla-pline);取得每個端點的信息
  (vlax-dump-objectvla-pline)(setqx(carval_list))(setqy(cadrval_list))(setqh(caddrval_list))
  (setqObjectID(vla-get-ObjectIDvla-pline));取得取得實體的ID碼
  (setqLengt(vla-get-Lengthvla-pline));取得取得實體的長度
  把這些信息寫入數據庫
  (2) 數據庫轉成CAD圖形
  從數據庫里讀出信息:
  (setqptype(substrs1(setqj(-i1))));管線類型
  (setqpmat(substrsji));管線材料
  (setqpdia(substrsji));管徑
  (setqx(substrsji))(setqy(substrsji))(setqh0(substrsji));三維坐標

  (command"3dpoly"(list(atofx)(atofy)(atofh)))
  根據這些信息畫圖:
  (setqnew_ext_list(list-3(list"PIPEM"(cons1000ptype)
  (cons1000pmat)(cons1070(atoipdia));加入附加信息
  4結束語
  線劃圖形向信息圖形轉換、二維圖形向三維圖形轉換是今后發展的趨勢,也給用戶提供更多的服務功能。筆者在這方面研究的成果還非常浮淺,很多問題還需要深入學習,使之更加完善。
  
  參考文獻:
  [1]人民郵電出版社,陳伯雄、馮偉編著的VisualLISP程序設計與技巧。
  [2]中國鐵道出版社,吳永進、林美櫻編著的AutoLISP&DCL基礎篇。
  [3]人民郵電出版社,吳永進、林美櫻編著的AutoCAD2007中文版實用教程(3D應用篇)。

文章標題:非圖形擴展數據技術在地下管線測繪中的應用

轉載請注明來自:http://www.anghan.cn/fblw/dianxin/zhineng/9757.html

相關問題解答

SCI服務

搜論文知識網 冀ICP備15021333號-3

主站蜘蛛池模板: 欧美性色黄大片一级毛片视频 | 久久精品国产精品亚洲 | 青草视频免费观看在线观看 | 欧美日韩综合网在线观看 | 亚洲成人黄色 | 日韩一区二区三区精品 | 免费特黄视频 | 在线免费观看亚洲视频 | 大毛片| 欧美一级毛片激情 | 久久一区二区精品 | 国产上床视频 | 亚洲欧美黄色片 | 99视频在线观看视频一区 | 全免费午夜真人毛片视频 | 国产亚洲美女精品久久久2020 | 国产精品欧美亚洲区 | 亚洲精品专区 | 欧美在线一区二区三区欧美 | 亚洲天堂视频网 | 特一级黄 | 毛片高清一区二区三区 | 亚洲精品欧美在线 | 玖玖玖精品视频免费播放 | 欧美成人免费全部色播 | 国产精品久久久久无码av | 黄色免费在线观看 | 欧美日韩中文字幕在线 | 一级做a爱 一区 | 国产精品13页| 久久久久久综合对白国产 | 在线观看的黄色 | 国产一区二区视频在线观看 | 免费三级黄 | 亚洲 欧美 日韩 在线 | 亚洲色图激情 | 最新在线精品国自拍视频 | 午夜在线亚洲 | 久久五月婷 | 国产精品亚洲高清一区二区 | 日本特黄特色大片免费视频 |