" />
所屬欄目:智能科學技術論文 發布日期: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
攝影藝術領域AHCI期刊推薦《Phot...關注:106
Nature旗下多學科子刊Nature Com...關注:152
中小學教師值得了解,這些教育學...關注:47
2025年寫管理學論文可以用的19個...關注:192
測繪領域科技核心期刊選擇 輕松拿...關注:64
及時開論文檢索證明很重要關注:52
中國水產科學期刊是核心期刊嗎關注:54
國際出書需要了解的問題解答關注:58
合著出書能否評職稱?關注:48
電信學有哪些可投稿的SCI期刊,值...關注:66
通信工程行業論文選題關注:73
SCIE、ESCI、SSCI和AHCI期刊目錄...關注:121
評職稱發論文好還是出書好關注:68
復印報刊資料重要轉載來源期刊(...關注:51
英文期刊審稿常見的論文狀態及其...關注:69
電子信息論文范文
智能科學技術論文 廣播電視論文 光電技術論文 計算機信息管理論文 計算機網絡論文 計算機應用論文 通信論文 信息安全論文 微電子應用論文 電子技術論文 生物醫學工程論文 軟件開發論文
SCI期刊分析
copyright © www.anghan.cn, All Rights Reserved
搜論文知識網 冀ICP備15021333號-3