




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于AutoCAD15 的等值線圖的自動繪制方法石油軟件 2008-11-11 11:58:51 閱讀246 評論0 字號:大中小 訂閱 張冬明,芮小平,付長晶,楊永國(中國礦業(yè)大學(xué)資源與地球科學(xué)學(xué)院,江蘇徐州221008)摘要:在AutoCAD15 的環(huán)境下利用VBA(Visual Basic Application) 宏語言編程實現(xiàn)等值線圖自動繪制是一個嶄新的課題。分析了該課題的意義,介紹了等值線繪制的原理以及方法和過程,并給出了由程序自動繪制的等值線實例。實例表明,該方法能夠獲得高質(zhì)量的等值線圖。關(guān)鍵詞:AutoCAD;VBA;等值線圖中圖分類號:TP3
2、91172 文獻標(biāo)識碼:A1 引言 在許多專業(yè)領(lǐng)域,如地質(zhì)、海洋、環(huán)保、水文等等,等值線圖都是一種十分有用的圖件。傳統(tǒng)的等值線圖形是用手工進行繪制的,十分費時,隨著計算機的發(fā)展出現(xiàn)了一批十分優(yōu)秀的制圖類軟件,其中一些專業(yè)性較強的軟件(比如,美國Golden 軟件公司的Surface Mapping System) 提供了等值線圖的自動繪制功能,才使得這一現(xiàn)象有所改觀。但是,這類軟件的專業(yè)性較強,需要較長的時間才能掌握使用,同時這些軟件的價格也比較昂貴,這些都大大限制了它們的使用范圍。
3、160; VBA(Visual Basic for Application) 是新一代標(biāo)準(zhǔn)宏語言1 。它是基于Visual Basic for Windows 發(fā)展而來的。它與傳統(tǒng)的宏語言不同,傳統(tǒng)的宏語言不具有高級語言的特征,沒有面向?qū)ο蟮某绦蛟O(shè)計概念和方法; 而VBA 提供了面向?qū)ο蟮某绦蛟O(shè)計方法,并提供了相當(dāng)完整的程序設(shè)計語言。VBA 易于掌握,尤其是對于VB 用戶而言。 AutoCAD 是一種非常流行且普及程度較高的圖形軟件2 ,由美國Autodesk 公司研制開發(fā)。隨著它版本的升高,其二次開發(fā)的功能也越來越強大,特別是自Au
4、toCAD14 開始,因為嵌入了VBA 技術(shù),使得AutoCAD 的二次開發(fā)對于非CAD 開發(fā)人員也變得非常簡單。 為此,本文提出: 利用VBA 宏語言對AutoCAD繪圖軟件進行二次開發(fā),編程實現(xiàn)等值線的自動繪制。本文介紹了這種思路的具體實現(xiàn)過程,并給出了等值線繪制的實例。2 等值線繪制的原理和實現(xiàn)方法2. 1 計算等值點 等值線繪制的方法有多種,其中使用最廣泛的兩種是矩形網(wǎng)格法繪制等值線和三角網(wǎng)繪制等值線。這兩類方法的根本區(qū)別在于連網(wǎng)方式不同:矩形網(wǎng)格法是假設(shè)一個矩形區(qū)域
5、,使得它包含待繪制等值線區(qū)域,將矩形區(qū)域分為若干個相等的小矩形,然后根據(jù)離散數(shù)據(jù)插值計算各個網(wǎng)格節(jié)點的等值線值;三角網(wǎng)法則是對離散數(shù)據(jù)結(jié)合,按照一定的原則連成一系列的三角形,在這種情況下,三角網(wǎng)的節(jié)點坐標(biāo)仍為原始數(shù)據(jù)。本文選取矩形網(wǎng)格法。 矩形網(wǎng)格法繪制等值線圖中,可以采用多種方法插值計算網(wǎng)格結(jié)點的坐標(biāo)值,比如,曲面樣條函數(shù)法、克里格法、多重二次曲面插值法等多種,本文的實例中采用曲面樣條函數(shù)法3 進行矩形網(wǎng)格節(jié)點的插值計算,從而完成對離散數(shù)據(jù)的柵格化。 連網(wǎng)之后,就形成了繪圖
6、區(qū)的格網(wǎng)數(shù)據(jù)文件。根據(jù)格網(wǎng)數(shù)據(jù),我們可以計算獲得等值點在各網(wǎng)格邊上的分布情況,具體說來,首先確定等值線與網(wǎng)格邊是否有交點,在確定有交點存在時,進一步計算等值點在每一條邊上的位置。計算等值點的位置一般采用線性內(nèi)插。在計算等值點時,有時會遇到網(wǎng)格點值與高程值W 相等,此時等值線通過網(wǎng)格點,而該網(wǎng)格點同時又是四個相鄰網(wǎng)格的公正交點。為了能夠使用統(tǒng)一的算法計算等值點,我們決定對網(wǎng)格點加上一個足夠小的數(shù)值給予修正。 等值線圖繪制中最重要的算法是等值點追蹤算法。計算出全部等值點之后,必須有次序地將它們逐點連成等值線,這就是等值點的追蹤問題。要解決
7、這個問題,分下列二個方面進行:確定等值線進入到網(wǎng)格時的大致走向:等值線進入網(wǎng)格時只有四種情況,即自下而上、自左向右、自上而下和自右向左。圖1 顯示了等值線的不同的走向。確定等值線進入網(wǎng)格后哪一邊出去。等值線進入網(wǎng)格后,可以往網(wǎng)格的另外三邊方向出去。如果不在算法上給予處理,就會出現(xiàn)等值線的交叉和不確定等現(xiàn)象,如,當(dāng)網(wǎng)格四條邊上均有等值點存在時,就有三種連接情況(圖2) 。前兩種情況時,等值線不確定;最后一種情況出現(xiàn)了交叉,這些都是不允許的。手工繪制等值線圖碰到這些情況時,往往需要繪圖者憑借自身的實踐經(jīng)驗和等值線的實地走向來確定;而用計算機繪制等值線時,則需要一個合適的算法:根據(jù)當(dāng)前等值線的走向和
8、后一個等值點與當(dāng)前等值點的遠近來綜合判定。2. 2 對繪制的等值線進行光滑 在獲得每條等值線的全部等值點追蹤排列之后,還必須對其光滑連接。關(guān)于平面上離散點光滑連接的方法有許多成熟的算法,比如分段三次多項式插值、二次多項式平均加權(quán)法和張力樣條函數(shù)插值法等等,其中,張力樣條函數(shù)插值法是最常用的、同時也是十分有效的一種曲線光滑算法。對等值點進行光滑處理后,就可以將它們連接成光滑的曲線了,光滑的方法可以采用張力樣條函數(shù)法4 。在VBA 中連接成線的方法與VB 中有所不同。簡要介紹如下:Dim startpoint (1 to 3) as double連線
9、的起點坐標(biāo)Dim endpoint (1 to 3) as double連線的終點坐標(biāo)Dim aline as AcadLine聲明一個AutoCAD 的線對象Dim i as integerFor i = 1 to n - 1n 為一條等值線上的控制點數(shù)startpoint (1) = x(i)startpoint (2) = y(i)startpoint (3) = heightheight 為該條等值線的高程值endpoint (1) = x(i + 1)endpoint (2) = y(i + 1)endpoint (3) = heightSet aline = ThisDrawing
10、. ModelSpace. AddLine(startpoint ,endpoint) 在當(dāng)前的圖形中設(shè)置一條直線aline.Update 添加設(shè)置好的直線Next i 在上面的程序中,我們將直線的起點和終點坐標(biāo)分別用一個三維數(shù)組來記錄,而且數(shù)據(jù)類型應(yīng)為雙精度型,這都是AutoCAD 對數(shù)據(jù)的要求。 然而,我們有更好的方法,可以直接使用Auto2CAD 向我們提供的樣條函數(shù)對給定的一個系列的點進行光滑處理5 ,6 。這樣,不必編程,也能夠獲得較好的效果。AutoCAD 的樣條
11、函數(shù)是非均勻B 樣條函數(shù)。它的具體使用方法如下: 首先聲明一個Auto2CAD 的樣條對象,接著聲明兩個數(shù)組以確定當(dāng)前樣條的起始斜率和終止斜率的值。Dim aspline As AcadSplineDim stangent (0 To 2) As DoubleDim etangent (0 To 2) As DoubleDim pointsarray(0 to 200) As Doublestangent (0) = 015stangent (1) = 015stangent (2) = 0etangent (0) = 015etangent (1) = 015etangent (2) = 0
12、Set aspline = ThisDrawing. ModelSpace. AddSpline(pointsarray() ,stangent () , etangent () )aspline. UpdateSet aspline = Nothing另外,數(shù)組pointsarray ( ) 是一個一維數(shù)組,它代表欲進行樣條化的原始點,數(shù)組的起始下標(biāo)為0。從數(shù)組的第一個元素開始,每三個分別表示一個點的X、Y、Z 的值。 這樣,AutoCAD 中繪制等值線圖的步驟可以歸納為以下幾個步驟:對已知的離散數(shù)據(jù)點進行連網(wǎng);計算各條等值線與形成
13、的數(shù)據(jù)格網(wǎng)的所有交點的坐標(biāo),并確定該等值線的起始點和終止點;將獲得的等值點連成光滑曲線3 應(yīng)用實例 按照以上思路,利用VBA 和AutoCAD15 中完成了以下等值線圖的繪制,在該例中采用矩形網(wǎng)格法繪制等值線。其中,圖3 是采用張力樣條函數(shù)光滑后的等值線圖,圖4 則是采用AutoCAD15 中的B 樣條函數(shù)進行光滑的等值線圖。 可以看出,所獲得的等值線圖具有較高的質(zhì)量,說明采用本方法效果良好。比較而言,圖4 的光滑性更好。但是經(jīng)B 樣條函數(shù)光滑后的曲線不經(jīng)過原插值點,從而造成
14、一些誤差,不過在地質(zhì)等領(lǐng)域,這種誤差是允許的。4 結(jié)語 VBA 運行于AutoCAD 內(nèi)部,因而為AutoCAD 提供了更智能化和更快捷的編程環(huán)境。VBA 的使用也便于和眾多應(yīng)用程序(如Microsoft Word、Excel 等)進行集成,可以共享其他應(yīng)用程序的庫,并對其他應(yīng)用程序進行操作。 將AutoCAD 與VBA 結(jié)合使用具有以下幾點好處:Visual Basic 編程環(huán)境比較容易學(xué)習(xí),軟件開發(fā)周期短;VBA 運行于AutoCAD 內(nèi)部,編譯效
15、率更高;所建立的工程可以單獨或內(nèi)嵌于圖形中,使用戶能夠?qū)σ验_發(fā)的工程進行靈活應(yīng)用;由于它所繪制的圖形文件采用DXF 格式,而DXF 格式文件具有廣泛支持領(lǐng)域,因此它能夠方便快速地為其他軟件所兼容;可以在AutoCAD 中對所繪制的圖形進行進一步編輯,比如添加相應(yīng)的標(biāo)注說明,縮放查看等。 AutoCAD 具有強大的圖形編輯功能,將VBA 與AutoCAD 結(jié)合,充分發(fā)揮它的這一優(yōu)勢,就可能將它應(yīng)用于特定的專業(yè)領(lǐng)域,這為解決一些現(xiàn)實的專業(yè)問題提供了一個新思路。參考文獻:1 康博創(chuàng)作室. AutoCAD2000 (中文版) 新功能M . 北京:清華大學(xué)出版社,1999.2 郭朝勇,黃建波. AutoCAD 的定制和開發(fā)M . 北京:人民郵電出版社,1998
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人參購銷合同范例
- 出租防水設(shè)備合同范例
- 公司間合作合同范例
- 數(shù)據(jù)要素對產(chǎn)業(yè)鏈與創(chuàng)新鏈融合的影響機制研究
- 業(yè)主租賃車位合同范例
- 隧道爆炸施工方案
- 加盟店品牌授權(quán)合同范例
- 乙方終止房屋合同范例
- 基于多視角的人體三維重建及動作識別算法研究
- 水稻種子低溫萌發(fā)的QTL定位
- 關(guān)愛留守兒童培訓(xùn)
- 品牌服飾行業(yè)快速消費品庫存管理優(yōu)化方案
- 金融數(shù)學(xué)布朗運動
- 第三單元名著閱讀《經(jīng)典常談》課件 2023-2024學(xué)年統(tǒng)編版語文八年級下冊11.22
- 江西省上饒市余干縣沙港中學(xué)2024-2025學(xué)年八年級上學(xué)期競賽生物學(xué)試卷(無答案)
- 2024年《認(rèn)證基礎(chǔ)》真題及答案
- 淤地壩應(yīng)急處置
- 神經(jīng)外科主要治病
- 農(nóng)資打假監(jiān)管培訓(xùn)
- 鸚鵡介紹課件教學(xué)課件
- 汽車檢測技術(shù)課件 任務(wù)一 認(rèn)識汽車檢測站
評論
0/150
提交評論