• 
    

    
    

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

      AutoCAD二次開發(fā)在礦山設(shè)計(jì)的應(yīng)用

      2021-06-18 10:33:48梁爾祝
      現(xiàn)代礦業(yè) 2021年4期
      關(guān)鍵詞:礦巖編程語言二次開發(fā)

      梁爾祝 王 銳 劉 洋 趙 勝

      (1.鞍鋼礦業(yè)爆破有限公司;2.東北大學(xué))

      AutoCAD(Autodesk Computer Aided Design)是Autodesk(歐特克)公司于1982年開發(fā)的自動(dòng)計(jì)算機(jī)輔助設(shè)計(jì)軟件,發(fā)展至今,已被普遍應(yīng)用于建筑、航空航天、機(jī)械、礦業(yè)等各個(gè)工程設(shè)計(jì)領(lǐng)域,已經(jīng)成為不可或缺的輔助手段。AutoCAD以點(diǎn)、線、面為基本設(shè)計(jì)元素,結(jié)合旋轉(zhuǎn)、對(duì)稱、拉伸、標(biāo)注等繪圖輔助功能,使之在常規(guī)的二維圖紙?jiān)O(shè)計(jì)過程中表現(xiàn)十分良好。但在繪圖過程中,會(huì)存在許多的重復(fù)過程,如:礦山設(shè)計(jì)過程繪制坐標(biāo)網(wǎng)、繪制示坡線等,這大大降低了AutoCAD繪圖的效率。為了提高繪圖效率,可通過AutoCAD二次開發(fā)對(duì)繪圖功能進(jìn)行擴(kuò)展,減少重復(fù)操作,以提高專業(yè)設(shè)計(jì)人員的繪圖效率。

      AutoCAD應(yīng)用十分廣泛,各個(gè)行業(yè)為了提高CAD的繪圖效率,都進(jìn)行了不同程度的二次開發(fā)。彭秋萍[1]通過對(duì)AutoCAD進(jìn)行二次開發(fā),實(shí)現(xiàn)了批量畫點(diǎn)、批量繪制線段、批量修改文字高度等功能,明顯地提高了繪圖效率。胡炳輝等[2]使用AutoCAD內(nèi)置的開發(fā)語言,完成了批量生成大比例尺地形圖等內(nèi)容,應(yīng)用簡(jiǎn)單方便,大大提高了圖形的編輯效率。郭亮亮等[3]使用C#編程語言對(duì)AutoCAD進(jìn)行二次開發(fā),開發(fā)了測(cè)量誤差的預(yù)計(jì)系統(tǒng),并實(shí)現(xiàn)了結(jié)果可視化的功能。陳爽等[4]使用VB編程語言,開發(fā)了邊坡穩(wěn)定性分析程序,具有邊坡穩(wěn)定性分析和潛在危險(xiǎn)滑坡分析圖解功能。許婧等[5]基于Lisp程序語言對(duì)CAD原有的功能進(jìn)行擴(kuò)展,使CAD在U型渡槽截面設(shè)計(jì)中能夠?qū)崿F(xiàn)自動(dòng)設(shè)計(jì)、計(jì)算和制圖功能。王曉玲[6]使用Lisp程序語言編寫了六角螺栓的繪圖程序,實(shí)現(xiàn)了參數(shù)化繪圖功能,提高了繪圖效率。張明霞等[7]使用VBA腳本編程方法擴(kuò)展CAD的功能,實(shí)現(xiàn)了快速生成船型線的程序。蔡漢明等[8]使用C#編程語言,開發(fā)了凸輪快速設(shè)計(jì)和繪制的功能,大大縮短了繪圖周期,提高了工作效率。

      綜上所述,利用好CAD二次開發(fā)技術(shù),可有效地?cái)U(kuò)展CAD的功能,并大大降低繪圖工作難度。本研究將采用C#編程語言,實(shí)現(xiàn)爆破礦巖量計(jì)算、繪制五四坐標(biāo)系、大地坐標(biāo)及五四坐標(biāo)系相互轉(zhuǎn)化、展點(diǎn)(在五四坐標(biāo)系中選取五四坐標(biāo)點(diǎn),輸出相應(yīng)的大地坐標(biāo)的坐標(biāo)點(diǎn))4個(gè)功能。

      1 開發(fā)環(huán)境及配置

      1.1 開發(fā)語言與環(huán)境平臺(tái)

      當(dāng)前AutoCAD的二次開發(fā)工具主要有VisualLisp、VBA、Object ARX和.NET Frameword 4.0API等。其中,VisualLisp與VBA使用較為簡(jiǎn)單,特別是VBA,使用方便且開發(fā)速度較快,但其功能相比ObjectARX有所不足,尤其是對(duì)面向?qū)ο蟮墓δ苤С植缓?。而ObjectARX基于VC平臺(tái),在C++的支持下,其功能非常強(qiáng)大,可以很好地運(yùn)用各種面向?qū)ο蠹夹g(shù),但其缺點(diǎn)是開發(fā)速度比較慢,開發(fā)難度較高。

      C#是一種簡(jiǎn)單的、面向?qū)ο蟮木幊陶Z言。它使得程序員可以快速地編寫各種基于Microsoft.NET Frameword 4.0平臺(tái)的應(yīng)用程序,Microsoft.NET Frameword 4.0提供了一系列的工具和服務(wù)來最大程度地開發(fā)利用計(jì)算與通訊領(lǐng)域。由于C#面向?qū)ο蟮淖吭皆O(shè)計(jì),使它成為開發(fā)各類組件的理想之選,例如高級(jí)的商業(yè)對(duì)象和系統(tǒng)級(jí)的應(yīng)用程序。使用簡(jiǎn)單的C#語言結(jié)構(gòu),這些組件可以方便地轉(zhuǎn)化為XML網(wǎng)絡(luò)服務(wù),從而使它們可以由任何語言在任何操作系統(tǒng)上通過Internet進(jìn)行調(diào)用。

      最重要的是,C#使得C++程序員可以高效地開發(fā)程序,而不損失C/C++原有的強(qiáng)大功能。因此,選用C#編程語言進(jìn)行開發(fā)。

      1.2 開發(fā)流程

      以visual studio2015為開發(fā)平臺(tái),開發(fā)環(huán)境為PC機(jī)的Windows系統(tǒng),編譯生成二進(jìn)制可執(zhí)行文件。使用C#高級(jí)編程語言,具體開發(fā)流程如下。

      (1)新建Visual C#類庫項(xiàng)目。

      (2)添加引用。為了能夠?qū)崿F(xiàn)CAD二次開發(fā)并啟動(dòng)程序,需要添加調(diào)用dll文件,在引用管理器中添加2個(gè)必需的dll類文件,acdbmgd.dl(l用于在圖形文件中對(duì)對(duì)象操作)和acmgd.dl(l用于對(duì)AutoCAD應(yīng)用程序操作)。其他的類文件像AcCui.dl(l用于用戶自定義文件操作)、AdWindows.dl(l用于用戶自定義工具條及菜單等用戶界面)等在需要時(shí)再添加。

      (3)目標(biāo)框架。每個(gè)AutoCAD的版本必須要對(duì)應(yīng)各自兼容的目標(biāo)框架,CAD2007~2009對(duì)應(yīng).NET Framework 2.0,CAD2010~2011對(duì)應(yīng).NET Framework 3.5,CAD2012~2014對(duì)應(yīng).NET Framework 4.0。本研究采用的是AutoCAD 2014版本以及Visual studio2015的Framework 4.0。

      (4)目標(biāo)平臺(tái)。在項(xiàng)目屬性中的生成選項(xiàng)中選擇合適的目標(biāo)平臺(tái)。

      (5)加入命名空間。加入命名空間是為了調(diào)用其中的對(duì)象,來完成代碼的編寫。本研究實(shí)現(xiàn)的功能需要加入下列具體命名空間:

      using Autodesk.AutoCAD.ApplicationServices;/(/Application,Document)

      using Autodesk.AutoCAD.EditorInput;/(/Editor,PromptXOptions)

      using Autodesk.AutoCAD.DatabaseServices;//(Database,DBPoint,Line)

      為了更好地籌集小型農(nóng)田水利設(shè)施建設(shè)資金,可以積極引導(dǎo)當(dāng)?shù)馗辉^r(nóng)戶和企業(yè)進(jìn)行水利工程的投資,在工程投入使用后按照一定的比例對(duì)投資者進(jìn)行合理的利潤(rùn)分配。水利設(shè)施的建設(shè)者、所有者以及受益者是一個(gè)密不可分的利益共同體,他們既是所有者又是勞動(dòng)者,通過資金和勞動(dòng)的貢獻(xiàn)量來確定分紅的比例。相關(guān)職能部門要制定嚴(yán)格的建設(shè)管理措施,明確各方的責(zé)任與義務(wù),嚴(yán)格執(zhí)行各項(xiàng)規(guī)章制度,積極指導(dǎo)經(jīng)營(yíng)管理,做好監(jiān)督檢查工作,保證各項(xiàng)工作的順利開展。

      using Autodesk.AutoCAD.Geometry;//(Point3d,Line3d,Curve3d)

      (6)聲明命令。在.NET Frameword 4.0中,有一個(gè)帶[CommandMethod()]屬性的類,將命令注冊(cè)在其中。本研究中聲明命令的代碼如下。

      public class Start

      {

      [CommandMethod("crtpk")]

      public void CreatePaokong()

      {

      //命令執(zhí)行代碼

      }

      礦山設(shè)計(jì)插件整體開發(fā)流程見圖1。

      2 主體功能設(shè)計(jì)與實(shí)現(xiàn)

      通過CAD二次開發(fā)編寫用戶自定義的拓展程序,實(shí)現(xiàn)計(jì)算礦巖量、變換五四坐標(biāo)系、變換大地坐標(biāo)系、繪制坐標(biāo)系、展點(diǎn)4個(gè)功能,見圖2。

      2.1 計(jì)算礦巖量

      通過獲取上下面積以及平均高差計(jì)算礦巖量,計(jì)算界面如圖3所示,通過鼠標(biāo)單擊或框選獲取計(jì)算所需要的邊界點(diǎn)、標(biāo)高信息,并確定礦巖種類,進(jìn)行計(jì)算,計(jì)算公式如下。

      式中,totalmine為所選區(qū)域礦石總質(zhì)量;totalrock為巖石總量;areaa為所選區(qū)域的上面積;areab為所選區(qū)域的下面積;heigha為所選區(qū)域的上部標(biāo)高平均值;heighb為所選區(qū)域的下部標(biāo)高平均值;ratiomine為所選區(qū)域內(nèi)礦石占比;ratiorock為所選區(qū)域內(nèi)巖石占比;ρmine為礦石的密度;ρrock為巖石的密度。

      通過所選取的信息以及式(1)、式(2)計(jì)算出的爆破礦巖量,結(jié)果如圖4所示。

      2.2 繪制五四坐標(biāo)系

      繪制坐標(biāo)系可選擇3種比例尺,分別為1∶500,1∶1 000,1∶2 000,案例中坐標(biāo)系原點(diǎn)設(shè)置為(6 733.824,-10 139.907),通過坐標(biāo)變換,將CAD原有坐標(biāo)變換成五四坐標(biāo)。通過對(duì)角線繪制方法(即選定坐標(biāo)系的左上點(diǎn)與右下點(diǎn))繪制坐標(biāo)系。

      2.3 五四坐標(biāo)系與大地坐標(biāo)系相互轉(zhuǎn)換

      在礦山制圖過程中,常常需要進(jìn)行五四坐標(biāo)系與大地坐標(biāo)系之間的相關(guān)轉(zhuǎn)化,以滿足制圖的精確性。通過式(3)、式(4)坐標(biāo)變換關(guān)系進(jìn)行五四坐標(biāo)系與大地坐標(biāo)系的變換,公式如下

      式中,x為五四坐標(biāo)中的橫坐標(biāo)值;X為大地坐標(biāo)中的橫坐標(biāo)值;y為五四坐標(biāo)中的縱坐標(biāo)值;Y為大地坐標(biāo)中的縱坐標(biāo)值;originx為設(shè)定的原點(diǎn)橫坐標(biāo)值;originy為設(shè)定的原點(diǎn)縱坐標(biāo)值;α=72.284°。

      五四坐標(biāo)系與大地坐標(biāo)系相對(duì)關(guān)系如圖5所示。

      2.4 坐標(biāo)展點(diǎn)

      在礦山制圖過程中,局部點(diǎn)坐標(biāo)需要由五四坐標(biāo)系轉(zhuǎn)化為大地坐標(biāo)系,即為坐標(biāo)展點(diǎn)。本方案中可以通過式(3)、式(4)進(jìn)行計(jì)算,在CAD的命令欄中顯示轉(zhuǎn)化后的坐標(biāo),完成坐標(biāo)展點(diǎn)。

      3 結(jié) 語

      使用C#編程語言,基于.NET Frameword 4.0框架,結(jié)合礦山設(shè)計(jì)的需求,完成了爆破礦巖量計(jì)算、繪制五四坐標(biāo)系、五四坐標(biāo)系與大地坐標(biāo)系的相互轉(zhuǎn)化、展點(diǎn)功能,使AutoCAD在礦山設(shè)計(jì)方面更簡(jiǎn)潔、方便、快速,大大提高了設(shè)計(jì)的效率。

      猜你喜歡
      礦巖編程語言二次開發(fā)
      壓力-體積轉(zhuǎn)換在CFC編程語言中的實(shí)現(xiàn)解析
      垂直溜井貯礦段放礦中礦巖運(yùn)動(dòng)速度變化特征
      金屬礦山(2021年9期)2021-10-20 09:54:56
      傾斜溜井中的礦巖運(yùn)動(dòng)特征及其對(duì)井壁的損傷與破壞
      金屬礦山(2020年9期)2020-10-26 13:51:54
      礦巖初始運(yùn)動(dòng)對(duì)其沖擊溜井井壁規(guī)律的影響
      金屬礦山(2020年9期)2020-10-26 13:51:52
      淺談基于Revit平臺(tái)的二次開發(fā)
      甘肅科技(2020年20期)2020-04-13 00:30:02
      Java編程語言的特點(diǎn)與應(yīng)用
      淺談Mastercam后處理器的二次開發(fā)
      模具制造(2019年3期)2019-06-06 02:11:02
      淺談不同編程語言對(duì)計(jì)算機(jī)軟件開發(fā)的影響
      電子制作(2018年1期)2018-04-04 01:48:36
      西門子Easy Screen對(duì)倒棱機(jī)床界面二次開發(fā)
      面向?qū)ο骔eb開發(fā)編程語言的的評(píng)估方法
      富平县| 都匀市| 皮山县| 德钦县| 黄山市| 泸西县| 云和县| 博兴县| 河南省| 衡水市| 孟州市| 高平市| 合川市| 延寿县| 文山县| 扎兰屯市| 茌平县| 建水县| 建德市| 茂名市| 天祝| 密山市| 贵港市| 周至县| 白玉县| 临夏县| 绥滨县| 定州市| 浪卡子县| 乌恰县| 辽源市| 镇康县| 兴隆县| 伊宁市| 漳州市| 荥阳市| 漳平市| 永靖县| 新和县| 连南| 汽车|