天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

當(dāng)前位置:主頁 > 科技論文 > 自動(dòng)化論文 >

基于VB.Net的ActiveX技術(shù)在地質(zhì)繪圖中的應(yīng)用

發(fā)布時(shí)間:2016-10-18 02:53

  本文關(guān)鍵詞:用VB控制CorelDraw和Excel實(shí)現(xiàn)地質(zhì)繪圖的自動(dòng)化,由筆耕文化傳播整理發(fā)布。


論文導(dǎo)讀:作為目前廣為流行的Windows操作系統(tǒng)下的軟件開發(fā)環(huán)境,VisualBasic中的ActiveX自動(dòng)化技術(shù)為其基于其他應(yīng)用程序的二次開發(fā)提供了快速、高效的途徑。同時(shí),目前很多繪圖軟件都對(duì)開發(fā)人員提供了可供二次開發(fā)的對(duì)象庫,如CorelDraw9.0及以后版本、AutoCADR14及以后版本、Grapher3.0及以后版本等。這充分說明了ActiveX技術(shù)在地質(zhì)繪圖中的廣泛適用。
關(guān)鍵詞:VB.Net,ActiveX,地質(zhì)繪圖,CorelDraw

  1 引言
  當(dāng)前的地質(zhì)工作中,繪圖(如區(qū)域地質(zhì)圖、巖性柱狀圖、等值線圖)占據(jù)了很大比例,且常常面臨數(shù)據(jù)量大、精度要求高等問題,人工繪圖耗時(shí)耗力,且容易出錯(cuò),因此,可以考慮對(duì)繪圖軟件進(jìn)行二次開發(fā)以提高工作效率。
  作為目前廣為流行的Windows操作系統(tǒng)下的軟件開發(fā)環(huán)境,Visual Basic中的ActiveX自動(dòng)化技術(shù)為其基于其他應(yīng)用程序的二次開發(fā)提供了快速、高效的途徑。同時(shí),目前很多繪圖軟件都對(duì)開發(fā)人員提供了可供二次開發(fā)的對(duì)象庫,如CorelDraw9.0及以后版本、AutoCAD R14及以后版本、Grapher3.0及以后版本等。ActiveX Automation技術(shù)使用戶可以在VB環(huán)境下調(diào)用相應(yīng)繪圖軟件中的層次化對(duì)象和子對(duì)象,從而實(shí)現(xiàn)特定對(duì)象的訪問,最終完成圖件的自動(dòng)繪制。因此本文根據(jù)實(shí)際工作中遇到的問題,在CorelDraw 12的基礎(chǔ)上引用ActiveX技術(shù)實(shí)現(xiàn)了背景圖下的井坐標(biāo)自動(dòng)定位,提高了工作效率。
  2ActiveX技術(shù)簡(jiǎn)介
  ActiveX Automation是面向?qū)ο蟮慕忉屝烷_發(fā)工具,,在廣義上是指微軟公司的整個(gè)COM(Component Object Model,組件對(duì)象模型)架構(gòu),但是現(xiàn)在通常用來稱呼基于標(biāo)準(zhǔn)COM接口來實(shí)現(xiàn)對(duì)象連接與嵌入的ActiveX控件。論文參考網(wǎng)。該技術(shù)通過應(yīng)用程序?qū)ν饨缣峁┟嫦蚰骋惶囟ㄈ蝿?wù)并提供完成該任務(wù)的完整功能的Automation對(duì)象實(shí)現(xiàn)應(yīng)用程序間的對(duì)象共享。由于ActiveX不依賴于語言,所以傳統(tǒng)的開發(fā)工具基本上都能構(gòu)筑、配備ActiveX控件,最常用的有Delphi、Po werBuilder以及Visual Basic、Visual C++、Visual J++等,而VB因其簡(jiǎn)單易學(xué),功能強(qiáng)大,成為目前眾多開發(fā)者的第一選擇。
  3 CorelDraw中的可編程對(duì)象模型
   CorelDraw是Corel公司推出的在圖形制作和處理領(lǐng)域廣泛應(yīng)用的很出色的專業(yè)繪圖軟件,自從CorelDraw9.0起,已經(jīng)加入了對(duì)可編程對(duì)象模型的支持,并逐漸廢棄了其原來的腳本語言(Corel Script),這使得軟件開發(fā)人員更容易利用其對(duì)象庫在其他編程環(huán)境中(如VB、VC、Delphi等)進(jìn)行二次開發(fā)!1】
  應(yīng)用程序通過引用封裝了CorelDraw的各種功能的ActiveX對(duì)象實(shí)現(xiàn)對(duì)的調(diào)用。依據(jù)具體功能的不同,CorelDraw的對(duì)象可以分為以下幾類【2】:
 。1)應(yīng)用程序(Application)類對(duì)象,如CorelDraw應(yīng)用程序本身;
 。2)文檔(Document)類對(duì)象,如一個(gè)CorelDraw文檔文件;
 。3)組織結(jié)構(gòu)(Organizing)類對(duì)象,如圖層(Layer);
 。4)圖元(Entity)類對(duì)象,如Shape(形狀);
  CorelDraw的對(duì)象模型結(jié)構(gòu)為層次性結(jié)構(gòu),如圖1.
  利用VB對(duì)CorelDraw對(duì)象進(jìn)行調(diào)用的具體過程為:
 。1)應(yīng)用CorelDraw對(duì)象模型。具體方法是在VB中選擇“工程-引用”,在對(duì)話框中選擇CorelDraw類庫(Library).
 。2)聲明CorelDraw的Application對(duì)象。注意聲明時(shí)候用應(yīng)用程序的名稱限定對(duì)象的。
 。3)調(diào)用CorelDraw對(duì)象屬性和方法,實(shí)現(xiàn)繪圖功能
 。4)交回控制句柄。
  圖1. CorelDraw的對(duì)象模型結(jié)構(gòu)
   另外,目前應(yīng)用較多的其他繪圖工具,如Grapher、PAutoCAD、Petrel等均支持ActiveX對(duì)象技術(shù)。VB環(huán)境下對(duì)Grapher和AutoCAD的ActiveX對(duì)象調(diào)用方法和CorelDraw對(duì)象調(diào)用相似。繪圖人員在繪制不同要求的圖件時(shí)可以依據(jù)具體工作內(nèi)容做出適當(dāng)選擇。
  4Excel中的可編程對(duì)象模型
  Excel是一個(gè)功能強(qiáng)大的電子表格軟件。地質(zhì)工作中野外測(cè)量或者室內(nèi)處理獲得的大量數(shù)據(jù)多以Excel文件(cls文件)保存作為繪圖基礎(chǔ)。Excel提供內(nèi)置的ActiveX對(duì)象供其他軟件調(diào)用。其對(duì)象模型結(jié)構(gòu)圖如圖2.
  圖2. Excel的對(duì)象模型結(jié)構(gòu)
  其中,Application對(duì)象代表Excel本身;Workbook對(duì)象是指Excel中的工作簿,即是說Excel文件;Worksheet中包括單元格(Cell),(Range)代表范圍對(duì)象,是指一個(gè)或者多個(gè)單元格;Chart對(duì)象指Excel中的圖表。
  VB環(huán)境下對(duì)Excel的ActiveX對(duì)象調(diào)用方法和CorelDraw對(duì)象調(diào)用相似。
  5 應(yīng)用實(shí)例- VB控制CorelDraw實(shí)現(xiàn)背景圖下的井坐標(biāo)定位
   測(cè)井資料是儲(chǔ)層評(píng)價(jià)工作中不可缺少的重要依據(jù),在進(jìn)行區(qū)域測(cè)井資料解釋處理時(shí),常常需要根據(jù)大量數(shù)據(jù)繪制相關(guān)工作圖件(如區(qū)域井坐標(biāo)位置圖和井巖性柱狀圖等),采用原始的繪圖方法在繪圖軟件中進(jìn)行圖件制作,耗時(shí)耗力。因此,我們采用了ActiveX技術(shù)實(shí)現(xiàn)了井坐標(biāo)定位的繪圖自動(dòng)化。論文參考網(wǎng)。
     5.1 井?dāng)?shù)據(jù)格式
  圖3. 數(shù)據(jù)表格格式
  首先定義數(shù)據(jù)表格格式,如圖3。其中井況分為完鉆(0)、未穿(△)、遇斷層(※)。當(dāng)井況不為完鉆時(shí),就將自動(dòng)在數(shù)字后面加上相應(yīng)的井況符號(hào),提示此數(shù)據(jù)僅做為參考數(shù)值。
  5.2 創(chuàng)建ActiveX對(duì)象
  首先聲明對(duì)象以及數(shù)據(jù)類型,引用CorelDraw和Excel的對(duì)象變量。論文參考網(wǎng)。代碼如下:
  Dim exApp AsExcel.ApplicationClass
  Dim exBook As Excel.Workbook
  Dim exSheet As Excel.Worksheet
  exApp = NewExcel.Application
  exBook = exApp.Workbooks.Open(Excelfilename)
  exSheet = exBook.Sheets.Item(1)
  exSheet.Activate()
  其中,前三個(gè)句分別為Excel應(yīng)用程序,工作薄和工作表類型變量的聲明,用以存取或引用相應(yīng)的Excel對(duì)象。而后三句分別創(chuàng)建了Excel應(yīng)用程序?qū)ο、工作薄?duì)象和工作表對(duì)象。最后一句為將第一個(gè)工作表設(shè)置為工作狀態(tài)。
  下面是CorelDraw對(duì)象的創(chuàng)建:
  Dim cdrApp As CorelDRAW.Application
  Dim cdrDoc As CorelDRAW.Document
  cdrApp = New CorelDRAW.Application
  cdrDoc = cdrApp.OpenDocument(CorelDRAW filename)
  cdrApp.ActiveDocument.ReferencePoint = cdrCenter
  '設(shè)置圖形中心點(diǎn)為定位參考點(diǎn)
  cdrApp.Unit() = cdrMillimeter
  '設(shè)置單位為毫米
  cdrApp.Visible() = 1
  '程序可見
  其中,前兩句分別聲明了CorelDraw應(yīng)用程序和工作薄變量的聲明,用以存取或引用相應(yīng)的CorelDraw對(duì)象。而后兩句分別創(chuàng)建了CorelDraw應(yīng)用程序?qū)ο蠛凸ぷ鞅?duì)象。最后三句對(duì)CorelDraw應(yīng)用程序?qū)ο筮M(jìn)行了參數(shù)的設(shè)定,分別是參考點(diǎn)位置,單位和應(yīng)用程序工作狀態(tài),參數(shù)設(shè)置詳見相關(guān)開發(fā)文檔。
  5.3 程序?qū)崿F(xiàn)
  定義對(duì)象與變量
  Dim WName, Font As String
  Dim Size As Single
  Dim Count, LocX, LocY, posX, posY As Double
  Dim Status, Stratathick, Sandthick, Sandrate As String
  Dim ConnectStr, sqlStr As String
  Dim I As Integer
  Dim MyConn As ADODB.Connection
  Dim rest, text As ADODB.Recordset
  Dim Left,Bottom As Double
  Dim sh_name, sh_data As CorelDRAW.Shape
  我們預(yù)先設(shè)置了一個(gè)包括了底圖和圖例的標(biāo)準(zhǔn)模板,其添加的層位都是在這個(gè)模板文件的基礎(chǔ)上添加的。當(dāng)數(shù)據(jù)輸入完畢,程序會(huì)將修改后的文件自動(dòng)按照設(shè)定的文件名另存一個(gè)文件。
  Count =TextBox3.Text'輸入井?dāng)?shù)據(jù)個(gè)數(shù)=行數(shù)-1
  '--------------------------------------創(chuàng)建圖層
  cdrDoc.ActivePage.CreateLayer("井位")
  ……
  '---------------------------------------輸入井位
  For I = 1 To Count
  cdrDoc.ActivePage.Layers("圖例").Activate()
  cdrDoc.ActiveLayer.Shapes.All.Copy()
  cdrDoc.ActivePage.Layers("井位").Activate()
  cdrDoc.ActiveLayer.Paste()
  Next I
  將井符號(hào)按照輸入井?dāng)?shù)據(jù)的個(gè)數(shù)復(fù)制到以“井位”命名的層位;
  cdrDoc.ActiveLayer.Shapes.All()
  For I = 2 To Count + 1
  LocX = exSheet.Cells(I, 3).Value
  LocY = exSheet.Cells(I, 4).Value
  '輸入井位
  '繪圖坐標(biāo)原點(diǎn)(183.83,181.81)
  cdrDoc.ActiveLayer.Shapes(I - 1).SetPosition(posX, posY)
  Next I
  '---------------------------------------輸入井名
   將上面輸入井位的代碼稍作修改就可以將井名標(biāo)在井位的正下方,代碼如下:
  For I = 2 To Count + 1
  cdrDoc.ActivePage.Layers("井名").Activate()
  WName = exSheet.Cells(I, 2).Value
  輸入井名
  ……
  Left = 0
  Bottom = 0
   sh_name= cdrDoc.ActiveLayer.CreateArtisticText(Left, Bottom,_ WName, Font = "宋體", Size = 8)
   sh_name.SetPosition(posX,posY)
  Next I
  而數(shù)據(jù)的數(shù)據(jù)與輸入井名一樣,根據(jù)輸入的數(shù)據(jù)名對(duì)應(yīng)到相應(yīng)的層位即可,然后將
  改為
  即可將統(tǒng)計(jì)的井位數(shù)據(jù)標(biāo)在井符號(hào)的正上方。
  以上程序均在WindowsXP操作系統(tǒng)、Vb.net2003、CorelDraw12環(huán)境下運(yùn)行通過。根據(jù)測(cè)試400多口井?dāng)?shù)據(jù)的輸入在配置為賽揚(yáng)1.6G,1G DDRⅡ內(nèi)存,60GB HDD的PC機(jī)上運(yùn)行的時(shí)間為5分鐘,而之前人工輸入至少需要1天的時(shí)間,且容易出錯(cuò)。因此本程序簡(jiǎn)化了數(shù)據(jù)處理工作,提高了繪圖工作效率。運(yùn)行效果如圖4,5。
  圖4. 程序操作界面
  (a)運(yùn)行前(b)運(yùn)行后
  圖5. 運(yùn)行結(jié)果對(duì)比
   文獻(xiàn)[3]中胡正旺等介紹了VB環(huán)境下調(diào)用Grapher軟件的Automation功能實(shí)現(xiàn)巖性柱狀圖的繪制;文獻(xiàn)[4]中王艷慧等介紹了VB環(huán)境下調(diào)用AutoCAD軟件的Automation功能的幾種方法。這充分說明了ActiveX技術(shù)在地質(zhì)繪圖中的廣泛適用。
  6結(jié)語
  基于繪圖軟件的對(duì)象模型結(jié)構(gòu),可以在VB中應(yīng)用ActiveX技術(shù)通過調(diào)用模型對(duì)象,充分利用CorelDraw在繪圖方面和Excel在簡(jiǎn)單數(shù)據(jù)儲(chǔ)存和處理的強(qiáng)大功能,便可簡(jiǎn)便快捷地完成特定的繪圖工作,實(shí)現(xiàn)地質(zhì)繪圖的自動(dòng)化和批量化,能夠把地質(zhì)研究人員從繁瑣、機(jī)械的繪圖工作中解放出來,提高繪圖的效率。
  
參考文獻(xiàn)
[1] 陳果,彭軍,蔡天含. 用VB控制CorelDraw和Excel實(shí)現(xiàn)地質(zhì)繪圖的自動(dòng)化. Computer application ofPetroleum.2004,Vol1.12.
[2] 楊穗,易捷.應(yīng)用VB或VBA對(duì)Coreldraw進(jìn)行二次開發(fā). 電腦學(xué)習(xí). 2004年2月第一期
[3] 胡正旺,胡祥云,封小明.基于Grapher軟件Automation功能的巖性柱狀圖繪制程序.工程地球物理學(xué)報(bào).2007,10.Vol.4,No5.
[4] 王艷慧,曹紅杰,張學(xué)莊.基于VB的AutoCAD二次開發(fā).四川測(cè)繪.
[5] 于大光.Visual Basic編程實(shí)例與技巧[M].北京:科學(xué)出版社,2003.
 


基于VB的ADO數(shù)據(jù)庫訪問技術(shù)
基于UG的三維標(biāo)準(zhǔn)庫的開發(fā)


  本文關(guān)鍵詞:用VB控制CorelDraw和Excel實(shí)現(xiàn)地質(zhì)繪圖的自動(dòng)化,由筆耕文化傳播整理發(fā)布。



本文編號(hào):143903

資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/kejilunwen/zidonghuakongzhilunwen/143903.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶c7dc0***提供,本站僅收錄摘要或目錄,作者需要?jiǎng)h除請(qǐng)E-mail郵箱bigeng88@qq.com
亚洲中文字幕在线观看黑人| 午夜精品一区免费视频| 色一情一乱一区二区三区码| 欧洲亚洲精品自拍偷拍| 国产精品国产亚洲区久久| 亚洲少妇一区二区三区懂色| 激情五月天深爱丁香婷婷| 亚洲国产成人爱av在线播放下载| 少妇人妻精品一区二区三区| 黄片三级免费在线观看| 青青久久亚洲婷婷中文网| 天堂网中文字幕在线观看| 国产不卡在线免费观看视频| 日本一本不卡免费视频| 真实偷拍一区二区免费视频| 麻豆最新出品国产精品| 午夜精品久久久免费视频| 久久福利视频视频一区二区 | 亚洲中文字幕三区四区| 免费观看一区二区三区黄片| 精品高清美女精品国产区| 国产一区在线免费国产一区| 精品人妻一区二区三区免费| 国产精品美女午夜视频| 精品老司机视频在线观看| 日韩成人动作片在线观看| 午夜国产精品国自产拍av| 在线观看免费视频你懂的| 成人精品欧美一级乱黄| 麻豆最新出品国产精品| 尹人大香蕉一级片免费看| 中文字幕在线区中文色| 中国黄色色片色哟哟哟哟哟哟 | 日本福利写真在线观看| 懂色一区二区三区四区| 日本熟妇熟女久久综合| 久久精品视频就在久久| 人妻内射在线二区一区| 夜夜躁狠狠躁日日躁视频黑人| 中文字幕乱子论一区二区三区| 日韩欧美二区中文字幕|