• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于C#的地質(zhì)多剖面繪制程序開發(fā)*

      2014-03-22 01:21:32陳向平王斌武王順國
      采礦技術(shù) 2014年3期
      關(guān)鍵詞:圖件二次開發(fā)繪制

      陳向平 ,王斌武 ,王順國

      (1.華北地質(zhì)勘查局綜合普查大隊, 河北 三河市 065201;2.中南大學(xué)地球科學(xué)與信息物理學(xué)院, 湖南 長沙 410083 )

      0 前 言

      在地質(zhì)勘查成果中,一幅圖件包含有多條剖面曲線是常見的圖形,比如物探中的剖面平面圖、化探中各元素分布剖面圖等。但是目前常用軟件包括AutoCAD,Surfer,MapGis,Grapher等并不支持一次性多條繪制,往往需要分條繪制,這樣既浪費時間,也可能因為坐標定位不準而產(chǎn)生錯誤[1-2]。ModelVision、Magpic等數(shù)據(jù)處理軟件,雖然能方便快捷的制作出剖面平面圖,但是不遵守比例尺約束,也無法進一步的編輯修改。

      Autodesk公司推出的Auto CAD作為計算機輔助設(shè)計(Computer Aided Design)領(lǐng)域內(nèi)的龍頭老大,在計算機繪圖和設(shè)計領(lǐng)域已經(jīng)領(lǐng)導(dǎo)潮流多年,是世界上工程研究、工程設(shè)計中使用最廣最頻繁的軟件。如此多的工程技術(shù)人員對其情有獨鐘,不只因為其強大的圖形繪制功能,還因為可將其作為一個平臺,編寫適合自己專業(yè)的腳本或者軟件進行二次開發(fā),以方便快捷的繪制各種圖件。該公司開發(fā)的用于AutoCAD與其它軟件之間進行CAD數(shù)據(jù)交換的CAD數(shù)據(jù)文件格式 DXF,是一種開放的矢量數(shù)據(jù)格式,包含對應(yīng)的DWG文件的全部信息。具有很強的移植性,絕大多數(shù)的繪圖軟件都能識別該格式,已經(jīng)成為多種軟件之間圖形交換的中介。

      Golden Software公司開發(fā)的Surfer軟件已經(jīng)被物探工作者廣泛使用,該軟件同樣支持二次開發(fā)[3],可以擴充功能。

      基于Auto CAD和Surfer支持二次開發(fā)的功能,根據(jù)目前的實際需要,可以利用.net平臺編寫快捷簡單繪制多剖面的軟件,從而有效解決上述問題。

      將物探數(shù)據(jù)(如視極化率、視電阻率等)在Excel等軟件中整理成一定格式,保存為Excel默認格式或者文本文件。啟動程序調(diào)入數(shù)據(jù)后,在程序界面進行參數(shù)設(shè)置,計算曲線角點位置、連接AutoCAD并自動完成平剖圖的繪制。

      在AutoCAD中對繪制的平剖圖進行觀察,分析圖形布置、根據(jù)需要對軟件的參數(shù)做實時修改,得到所需圖件后保存為DWG、DXF或其他AutoCAD格式,也可以輸出成圖片文件或者PDF格式。

      利用同樣的思路,也可以調(diào)用Surfer進行圖件繪制,如果電腦上并未安裝AutoCAD和Surfer,軟件可以直接輸出ASCII 格式的 DXF文件。

      1 程序編寫

      1.1 數(shù)據(jù)格式

      原始的成圖數(shù)據(jù)包括了線號、點號、X坐標、Y坐標、測量值,線號與點號的數(shù)據(jù)主要用于成圖后剖面的標注,X坐標、Y坐標、測量值均通過一定的計算,用于確定剖面曲線的節(jié)點位置。將原始數(shù)據(jù)整理成如下圖格式,保存為txt、dat等文本格式(見圖1)。

      1.2 界面設(shè)置

      根據(jù)需要,將程序的界面分為3大塊(見圖2) 。

      (1) 主要是對程序的操作,包括數(shù)據(jù)的加載、連接AutoCAD、Surfer等并制圖;

      (2) 原始數(shù)據(jù)的顯示,通過dataGridView窗體。

      (3) 參數(shù)設(shè)置:

      兩個必選類:圖幅比例、基線位置等;剖面曲線參數(shù)包括顏色、線寬、線形;

      三個可選類:線號標注參數(shù)、填充參數(shù)、數(shù)據(jù)范圍;

      利用工具箱可以快速的設(shè)計定制軟件界面。

      圖1 數(shù)據(jù)方式

      圖2 界面示例

      1.3 程序開發(fā)

      利用函數(shù)StreamReader、ReadLine讀取原始文件,并賦于dataGridView窗體顯示,以便進行數(shù)據(jù)檢查和修改[4];讀取dataGridView窗體中X坐標、Y坐標、測量數(shù)值V與設(shè)定的參數(shù),進行數(shù)據(jù)變換,以確定剖面曲線節(jié)點(X1,Y1,0)的數(shù)值。轉(zhuǎn)換原理見圖3。

      圖3 坐標換算

      X、Y為實際坐標數(shù)據(jù),φ為測線方位角,d為測量數(shù)值V與縱向比例參數(shù)的比值??梢酝扑愠觯?/p>

      X1=X+d×cosφ

      Y1=Y+d×sinφ

      AutoCAD二次開發(fā)過程如下。在Microsoft Visual Studio2010中添加引用AutoCAD 2013 Type Library,在代碼中添加using AutoCAD[5]。

      AutoCAD.AcadApplication AcadApp 創(chuàng)建AutoCAD對象

      AutoCAD.AcadDocument AcadDoc創(chuàng)建名為AcadDoc的文檔;

      將轉(zhuǎn)變后的成圖坐標數(shù)據(jù)X1、Y1賦予double類型Coord數(shù)組變量,用函數(shù)AcadDoc.ModelSpace.Add3DPoly(Coord)完成曲線繪制。

      完善剖面曲線的參數(shù)修改、標注等。標注使用 AcadDoc.ModelSpace.AddText()方法。

      Surfer的二次開發(fā)跟AutoCAD的非常類似,在調(diào)用Surfer時必須添加Surfer 10 Type Library引用,代碼中添加using Surfer;

      Surfer.Application SrfApp; 創(chuàng)建AutoCAD對象

      Surfer.IDocuments Srfdoc;創(chuàng)建名為Srfdoc的IDocuments

      Surfer.IPlotDocument SrfPDoc創(chuàng)建名為SrfDoc的IPlotDocument

      Surfer.IShapes SrfShp = SrfPDoc.Shapes;創(chuàng)建名為Srfdoc的 SrfPDoc.Shapes

      然后調(diào)用 SrfShp.AddPolyLine()等函數(shù)進行圖件繪制,SrfShp.AddText()函數(shù)進行文字標注等工作[6]。

      ASCII格式的DXF文件輸出較為簡單,它由很多的“組碼”和“值”組成的“數(shù)據(jù)對”構(gòu)造而成,組碼指定其后的值的類型和用途。每個組碼和值必須為單獨的一行。 DXF文件被組織成為多個“段”(section),每個段以組碼“0”和字符串“SECTION”開頭,緊接著是組碼“2”和表示段名的字符串(如HEADER)。段的中間,可以使用組碼和值定義段中的元素。段的結(jié)尾使用組碼“0”和字符串“ENDSEC”來定義[7]。嚴格按照這些格式規(guī)范,將變化后的坐標、標注等圖元信息,編寫進去,輸出成DXF格式文件。

      2 實際應(yīng)用

      圖4為內(nèi)蒙古某鉛鋅多金屬礦區(qū)高精度磁測掃面原始數(shù)據(jù)平面剖面圖,該圖能比較好的反映出原始數(shù)據(jù)的質(zhì)量和該礦區(qū)的磁場分布狀況,據(jù)此結(jié)合地質(zhì)資料進行一些推斷解釋。圖中直線為基線,曲線為剖面曲線,右側(cè)數(shù)字為測線編號。圖中可以看到多處異常區(qū)域和數(shù)據(jù)突跳點。

      該掃面區(qū)域的西南部存在大面積的礦化蝕變,東北部存在兩條條帶狀的礦體。由于容礦構(gòu)造的原因,這3處地質(zhì)信息在本次的磁法掃面中均有較好的反應(yīng)。圖中異常Ⅰ位于西南區(qū)域礦化蝕變帶的位置,且該蝕變帶走向與磁異常走向一致,判斷該處異常與蝕變帶有關(guān)聯(lián)。為獲得更多該蝕變帶的地質(zhì)信息,該處磁法數(shù)據(jù)需進行深一步的處理。異常Ⅱ、Ⅲ分別為東北部兩條礦體的表現(xiàn)。異常Ⅳ為突跳數(shù)據(jù)引起,推斷為人文干擾等非地質(zhì)因素所致,沒有找礦意義,進一步的處理時需剔除。

      圖4 應(yīng)用效果

      3 圖件輸出

      以上程序主要是用于解決物探平剖圖的繪制問題,既解決了以AutoCAD為主作圖軟件存在的困難,也滿足以MAPGIS為主作圖軟件的需求。AutoCAD和MAPGIS之間文件格式的轉(zhuǎn)化是非常簡單的,MAPGIS軟件具有此功能。將AutoCAD文件保存成DXF格式,打開MAPGIS主界面。圖形轉(zhuǎn)換=>文件轉(zhuǎn)換=>輸入=>裝入DXF,裝入需要轉(zhuǎn)換的文件后,保存為MAPGIS默認的WT、WL、WP格式的文件即可[8]。

      也可以將AutoCAD中繪制的圖件通過虛擬打印機輸出成圖片格式或PDF文件,根據(jù)作者的經(jīng)驗,直接輸出的圖片格式效果不是很理想,可以先輸出為PDF文件,再用Photoshop打開此文件另存為jpg等格式文件,這樣出的圖片清晰度較高。具體步驟如下,首先添加虛擬打印機:文件=>繪圖儀管理器=>添加繪圖儀向?qū)?>下一步=>我的電腦=>生產(chǎn)商、型號,選擇對應(yīng)虛擬硬件,然后一路點擊“下一步”到完成。需要輸出文件時,調(diào)用軟件中的打印命令調(diào)出對話框,在“打印機/繪圖儀的名稱”中選擇對應(yīng)的虛擬硬件,在做完其他設(shè)置后點“確定”,選擇保存地址,完成繪制。

      利用C#語言進行AutoCAD、Surfer等軟件的二次開發(fā),擴展軟件的使用功能,簡化了工作程序,提高了工作效率,節(jié)約了時間成本。

      參考文獻:

      [1]楊利容,賴德軍,羅 娟. 基于AutoCAD實測地質(zhì)剖面數(shù)字成圖關(guān)鍵技術(shù)[J]. 物探與化探,2011, 35(2): 261-264.

      [2]王 鑄. 利用ActiveX Automation在AutoCAD中自動切取地質(zhì)剖面[J]. 工程地質(zhì)計算機應(yīng)用,2009 (4): 32-38.

      [3]王成錫,張明華. MapInfo和Surfer聯(lián)合二次開發(fā)在區(qū)域重力信息系統(tǒng)中的應(yīng)用[J]. 物探與化探,2008, 32(4): 445-447.

      [4]王斌武. 基于C#的數(shù)據(jù)篩選工具的開發(fā)[J]. 科技風,2013(11): 67-68.

      [5]堯 燕.基于VC#.NET對AutoCAD二次開發(fā)方法的研究[J]. 科學(xué)技術(shù)與工程,2008, 8(23):6365-6367.

      [6]周 陽,黃浩云,李志強. 基于C#與Surfer Automation完成大氣污染擴散等值線自動化生成[J]. 環(huán)境科學(xué)與管理,2011, 36(1): 31-34.

      [7]陳 浩,陳 宏. 解讀AUTOCAD的DXF文件[J]. 貴州科學(xué),2002, 20(4):125-127

      [8]于忠杰. MAPGIS和AtuoCAD間的數(shù)據(jù)轉(zhuǎn)換問題[J]. 貴州地質(zhì),2010, 27(2): 151-154.

      猜你喜歡
      圖件二次開發(fā)繪制
      Art on coffee cups
      一種地質(zhì)圖件數(shù)據(jù)管理系統(tǒng)設(shè)計思路
      遙感解譯成果圖件矢量化方法技術(shù)研究*
      淺談基于Revit平臺的二次開發(fā)
      甘肅科技(2020年20期)2020-04-13 00:30:02
      淺談Mastercam后處理器的二次開發(fā)
      模具制造(2019年3期)2019-06-06 02:11:02
      基于MapGIS和ArcGIS的遙感解譯成果圖件數(shù)據(jù)庫設(shè)計與實現(xiàn)
      放學(xué)后
      童話世界(2018年17期)2018-07-30 01:52:02
      西門子Easy Screen對倒棱機床界面二次開發(fā)
      在轉(zhuǎn)變中繪制新藍圖
      基于Pro/E二次開發(fā)的推土鏟參數(shù)化模塊開發(fā)
      托里县| 阳泉市| 平遥县| 香格里拉县| 独山县| 喀喇沁旗| 清水河县| 东台市| 乡宁县| 福海县| 吉首市| 乌审旗| 莫力| 左贡县| 丰顺县| 尼玛县| 尉氏县| 沭阳县| 平泉县| 平利县| 大英县| 神农架林区| 巨野县| 保德县| 桂林市| 阿尔山市| 张掖市| 沂南县| 松桃| 新宾| 内乡县| 克拉玛依市| 阳朔县| 大兴区| 孝昌县| 湾仔区| 峡江县| 湄潭县| 卢龙县| 宁化县| 陆川县|