版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 利用VBA對(duì)AutoCAD二次開(kāi)發(fā)在礦山測(cè)量中的應(yīng)用</p><p> 摘要:本文通過(guò)對(duì)AutoCAD繪圖軟件、二次開(kāi)發(fā)語(yǔ)言VBA的介紹,以及分析礦山測(cè)量在制圖時(shí)對(duì)AutoCAD的需求,闡述利用VBA對(duì)AutoCAD二次開(kāi)發(fā)在礦山測(cè)量中的應(yīng)用。 </p><p> 關(guān)鍵詞:AutoCAD;VBA;二次開(kāi)發(fā);礦山測(cè)量 </p><p> 中
2、圖分類(lèi)號(hào): O434.19 文獻(xiàn)標(biāo)識(shí)碼: A </p><p> 1關(guān)于AutoCAD、 VBA </p><p> 1.1介紹AutoCAD、VBA </p><p> AutoCAD(Auto Computer Aided Design)是美國(guó)Autodesk公司首次于1982年研究開(kāi)發(fā)的計(jì)算機(jī)輔助設(shè)計(jì)軟件,是目前國(guó)際上應(yīng)用最流行的繪圖工具,功能全面,操作
3、穩(wěn)定,普適性強(qiáng),廣泛用于二維繪圖、詳細(xì)繪制,深受各行各業(yè)設(shè)計(jì)者和工程技術(shù)人員的喜愛(ài)。與此同時(shí),高普適性也對(duì)應(yīng)著AutoCAD另一大特點(diǎn):開(kāi)放的結(jié)構(gòu)體系。這種開(kāi)放體系,使得不同行業(yè)、專(zhuān)業(yè)根據(jù)自身的特點(diǎn)能夠?qū)ζ溥M(jìn)行Autodesk二次開(kāi)發(fā),可以說(shuō)AutoCAD的普適性為其二次開(kāi)發(fā)提供了必要條件,從而也彌補(bǔ)了其專(zhuān)業(yè)針對(duì)性能不強(qiáng)的弱點(diǎn)。 </p><p> 從AutoCAD R14.01版開(kāi)始,Autodesk在Aut
4、oCAD中加入了VBA(Visual Basic for Applications),作為AutoCAD的一種二次開(kāi)發(fā)工具。VBA是一種完全面向?qū)ο篌w系結(jié)構(gòu)的編程語(yǔ)言,是Visual Basic的一種宏語(yǔ)言,與VB有著相似的語(yǔ)言結(jié)構(gòu)和開(kāi)發(fā)環(huán)境。在VBA中,AutoCAD通過(guò)AetiveX提供了一個(gè)溝通外部世界的機(jī)制,使得AutoCAD通過(guò)不同的編程語(yǔ)言和環(huán)境進(jìn)行二次開(kāi)發(fā)。可見(jiàn),VBA是通過(guò)ActiveX接口建立與AutoCAD對(duì)象之間的
5、聯(lián)系,在AutoCAD和Visual Basic之間搭建起起了一座橋梁,將其完美的融合在一起,創(chuàng)造出符合用戶(hù)要求的程序,形成新的功能性強(qiáng)、靈活性高的軟件。 </p><p> 1.2利用VBA對(duì)AutoCAD進(jìn)行二次開(kāi)發(fā)的優(yōu)點(diǎn) </p><p> VBA與其他AutoCAD二次開(kāi)發(fā)技術(shù)相比,優(yōu)點(diǎn)有很多: </p><p> VB語(yǔ)言基礎(chǔ)廣泛。作為世界上使用人數(shù)
6、最多的計(jì)算機(jī)編程語(yǔ)言,VB有非常堅(jiān)實(shí)的語(yǔ)言基礎(chǔ),編程環(huán)境相對(duì)于其他二次開(kāi)發(fā)技術(shù)更容易學(xué)習(xí)和使用。 </p><p> 嵌入式與獨(dú)立性并舉。在二次開(kāi)發(fā)中,VBA以AutoCAD軟件為依托,但并不是所有的應(yīng)用程序都要與AutoCAD進(jìn)行交互,體現(xiàn)了VBA的靈活性。 </p><p> 運(yùn)行速度快而穩(wěn)定。當(dāng)VBA與AutoCAD在同一進(jìn)程空間運(yùn)行時(shí),運(yùn)行速度要比其他二次開(kāi)發(fā)語(yǔ)言應(yīng)用程序快,運(yùn)
7、行也更加穩(wěn)定。 </p><p> 2礦山測(cè)量對(duì)AutoCAD二次開(kāi)發(fā)的需求 </p><p> 2.1礦山測(cè)量的現(xiàn)狀 </p><p> 礦山測(cè)量人員在井下進(jìn)行外業(yè)工作時(shí),由于受到井下不利環(huán)境、條件與人員配置的限制,數(shù)字化儀器通用性并不高。使用光學(xué)儀器作業(yè)往往需要測(cè)量大量的基本數(shù)據(jù),如角度、距離。在傳統(tǒng)測(cè)量?jī)?nèi)業(yè)工藝流程中,先要將原始數(shù)據(jù)進(jìn)行處理,然后將處理好
8、的數(shù)據(jù)準(zhǔn)確、合理的體現(xiàn)在圖紙上或計(jì)算機(jī)上。在繪圖過(guò)程中,基本會(huì)重復(fù)相同的工作,如繪制巷道、采場(chǎng)平面圖:要將測(cè)得的同一方位上的支距點(diǎn)(特征點(diǎn))在不同的比例尺下進(jìn)行逐一展繪、分別成圖,無(wú)論是手工繪圖還是普通的CAD制圖,都是一項(xiàng)重復(fù)率極高、效率極低的工作,而且極容易隨著制圖人員的疏漏和疲勞產(chǎn)生誤差,甚至是錯(cuò)誤。 </p><p> 通過(guò)以上對(duì)礦山測(cè)量?jī)?nèi)外業(yè)工作的描述可見(jiàn),礦山測(cè)量的硬件設(shè)施難以有實(shí)質(zhì)性的提升,但是內(nèi)
9、業(yè)處理仍有很大的操作空間。如果我們將AutoCAD進(jìn)行二次開(kāi)發(fā),將傳統(tǒng)數(shù)據(jù)處理與制圖這兩項(xiàng)“脫節(jié)”的工作有機(jī)結(jié)合在一起,將會(huì)大大提升工作效率和內(nèi)業(yè)精度。 </p><p><b> 2.2開(kāi)發(fā)方法 </b></p><p> 二次開(kāi)發(fā)主要方法是把原始的測(cè)量數(shù)據(jù)進(jìn)行專(zhuān)業(yè)分類(lèi),將不同種類(lèi)的數(shù)據(jù)分別傳遞給不同的參數(shù)(相同種類(lèi)傳遞相同參數(shù)),再根據(jù)測(cè)量人員的要求,用相關(guān)的
10、公式、方法將參數(shù)進(jìn)行專(zhuān)業(yè)性整合,當(dāng)參數(shù)改變時(shí)(即不同種類(lèi)的觀測(cè)值、觀測(cè)量),程序仍然按照預(yù)定的表達(dá)式來(lái)執(zhí)行,通過(guò)人機(jī)交互,完成繪圖,從而實(shí)現(xiàn)變量化設(shè)計(jì),自動(dòng)化制圖。 </p><p><b> 2.3程序界面 </b></p><p> 如圖1所示,進(jìn)入VBA二次開(kāi)發(fā)程序界面之后,在編寫(xiě)代碼之前,要根據(jù)該程序所需的變量、參數(shù),來(lái)確定都要在界面當(dāng)中添加哪些控件。 &
11、lt;/p><p><b> 2.4代碼部分 </b></p><p> 此處將部分 “圖2繪制采場(chǎng)、聯(lián)絡(luò)道平面圖程序設(shè)計(jì)”的代碼進(jìn)行注釋?zhuān)瑢?duì)照示意圖來(lái)進(jìn)行AutoCAD VBA二次開(kāi)發(fā)的解析: </p><p> Private Sub CommandButton7_Click()‘計(jì)算羅盤(pán)導(dǎo)線(xiàn)點(diǎn)坐標(biāo) </p><p&g
12、t; Dim b2, b3, b4, b5, b6, b7 As Double‘定義過(guò)程變量的數(shù)據(jù)類(lèi)型 </p><p> Const pm As Double = 3.141592653‘定義常量 </p><p> If tt1 = "" Then‘IF條件語(yǔ)句,該text文本框?yàn)榭諆A角為0 </p><p><b> tt
13、1 = 0 </b></p><p><b> End If </b></p><p> b1 = tx3 - 7.5‘井下與井上磁方位角差值 </p><p> b2 = (b1) / 180 * pm‘將角度進(jìn)行弧度化 </p><p> 圖1 繪制采場(chǎng)、聯(lián)絡(luò)道平面圖程序設(shè)計(jì) </p>
14、<p> b3 = tx4 * (Cos(tt1 / 180 * pm))‘計(jì)算羅盤(pán)導(dǎo)線(xiàn)長(zhǎng)度 </p><p><b> b4 = tx1 </b></p><p> b6 = b3 * Sin(b2) </p><p> b7 = b3 * Cos(b2) </p><p> f1 = Val(
15、CInt(Right(Fix((b4 + b6) * 10000), 1) / 10)) / 1000 + Val(Left(Fix((b4 + b6) * 10000), 7)) / 1000‘計(jì)算未知點(diǎn)坐標(biāo) </p><p> f2 = Val(CInt(Right(Fix((b5 + b7) * 10000), 1) / 10)) / 1000 + Val(Left(Fix((b5 + b7) * 100
16、00), 7)) / 1000 </p><p> tx5 = f1‘將已求出的坐標(biāo)值體現(xiàn)在文本框中 </p><p><b> End Sub </b></p><p> Private Sub CommandButton8_Click()‘展羅盤(pán)導(dǎo)線(xiàn)點(diǎn) </p><p> Dim lpp, lpdx As A
17、cadPoint </p><p> Dim lpposition(0 To 2) As Double </p><p> Dim lpd(0 To 2) As Double </p><p> lpposition(0) = Val(tx1)‘三維坐標(biāo)賦值 </p><p> lpposition(1) = Val(tx2) <
18、;/p><p> lpposition(2) = 0 </p><p> Set lpp = ThisDrawing.ModelSpace.AddPoint(lpposition) ‘將點(diǎn)展入到AutoCAD中 </p><p> lpd(0) = Val(tx5) </p><p> lpd(1) = Val(tx6) </p&g
19、t;<p> lpd(2) = 0 </p><p> Set lpdx = ThisDrawing.ModelSpace.AddPoint(lpd) </p><p><b> End Sub </b></p><p> Private Sub CommandButton15_Click() ‘計(jì)算支距點(diǎn)坐標(biāo) </
20、p><p> Dim lpzhu, lpz, lpy, zdz, zdy, l6, r6, l61, r61, lpzy, lpzx, lpry, lprx, msg As Double </p><p> If tt1 0 Then </p><p> msg = MsgBox("注意,傾角不為0時(shí)主尺沒(méi)有鋪在地面,請(qǐng)認(rèn)真檢查數(shù)據(jù),謝謝",
21、 0 + vbInformation) </p><p><b> End If </b></p><p> Const hlp As Double = 3.141592653 </p><p> lpzhu = tx7 ‘將測(cè)得的主尺位置、對(duì)應(yīng)的左右支距賦值 </p><p> lpz = tx8 </p
22、><p> If lpzhu = 0 Then </p><p> zdz = tx1 </p><p> zdy = tx2 </p><p><b> End If </b></p><p> If lpzhu 0 Then‘計(jì)算主尺不為0時(shí),主尺點(diǎn)坐標(biāo) </p><
23、;p> zdz = tx1 + lpzhu * Sin(b1 / 180 * hlp) </p><p><b> End If </b></p><p> lpzy = lpz * Sin(l61)‘計(jì)算坐標(biāo)增量與支距點(diǎn)坐標(biāo) </p><p> lpzx = lpz * Cos(l61) </p><p>
24、; If tx8 = "" Or tx8 = 0 Then </p><p> tx10 = "" </p><p> If tx9 = "" Or tx9 = 0 Then </p><p> tx12 = "" </p><p><b>
25、End If </b></p><p><b> End Sub </b></p><p> Private Sub CommandButton9_Click()‘展左支距點(diǎn) </p><p> Dim lpzz(0 To 2) As Double </p><p> Dim lpointzuozhi
26、 As AcadPoint </p><p> lpzz(0) = Val(tx10) </p><p> lpzz(1) = Val(tx11) </p><p> lpzz(2) = 0 </p><p> Set lpointzuozhi = ThisDrawing.ModelSpace.AddPoint(lpzz) </
27、p><p><b> End Sub </b></p><p><b> 3結(jié)束語(yǔ) </b></p><p> 使用VBA對(duì)AutoCAD進(jìn)行二次開(kāi)發(fā),是今后提高礦山測(cè)量人員繪圖效率、精度,減少工作量的重要手段,它很好的補(bǔ)充了AutoCAD的制圖功能。到目前為止,此種方法在礦山測(cè)量領(lǐng)域應(yīng)用并不廣泛,仍有很大空間,是值得投
28、入與研究的。希望能有更多的工程技術(shù)人員加入到二次開(kāi)發(fā)的行列中,讓AutoCAD軟件在使用上更加得心應(yīng)手,為礦山數(shù)字化做出自己的貢獻(xiàn)。 </p><p><b> 參考文獻(xiàn): </b></p><p> [1] 王圍,李波,鄒元平.AutoCAD二次開(kāi)發(fā)中的若干問(wèn)題探析[J].電腦知識(shí)與技術(shù),2012,08 (1):163-165. </p><
29、p> [2] 張帆,鄭立楷,王華杰.AutoCAD VBA開(kāi)發(fā)精彩實(shí)例教程[M].北京:清華大學(xué)出版社,2004. </p><p> [3] 李琳. 基于VBA的AutoCAD二次開(kāi)發(fā)[J].硅谷,2011,(18):191. </p><p> [4] 孫運(yùn)平,高玉春. AutoCAD二次開(kāi)發(fā)及應(yīng)用研究[J].商場(chǎng)現(xiàn)代化,2012,(679):102. </p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- autocad二次開(kāi)發(fā)(vba)
- autocad二次開(kāi)發(fā)在工藝編制中的應(yīng)用
- autocad二次開(kāi)發(fā)在鋼結(jié)構(gòu)深化設(shè)計(jì)中的應(yīng)用
- 基于VBA的AutoCAD二次開(kāi)發(fā)在露天礦床建模中的應(yīng)用研究.pdf
- 基于VBA的AutoCAD二次開(kāi)發(fā)在露天礦模擬開(kāi)采中的應(yīng)用研究.pdf
- 基于VBA的AutoCAD二次開(kāi)發(fā)系統(tǒng)的研究與應(yīng)用.pdf
- AutoCAD二次開(kāi)發(fā)在變電站防雷中的研究.pdf
- AutoCAD二次開(kāi)發(fā)在混凝土結(jié)構(gòu)施工圖繪制中的應(yīng)用.pdf
- 基于AutoLISP的AutoCAD二次開(kāi)發(fā)在鈑金展開(kāi)軟件開(kāi)發(fā)中的應(yīng)用與研究.pdf
- autocad二次開(kāi)發(fā)實(shí)驗(yàn)一
- 基于AutoCAD的礦山輔助繪圖軟件的二次開(kāi)發(fā).pdf
- AutoCAD二次開(kāi)發(fā)技術(shù)在堤防設(shè)計(jì)中的應(yīng)用.pdf
- cad軟件二次開(kāi)發(fā)在機(jī)械設(shè)計(jì)中的應(yīng)用與發(fā)展
- 基于vb.net的solidworks二次開(kāi)發(fā)在液壓設(shè)計(jì)中的應(yīng)用
- AutoCAD在電力設(shè)計(jì)中的二次開(kāi)發(fā)與應(yīng)用.pdf
- AUTOCAD二次開(kāi)發(fā)在房地產(chǎn)管理信息系統(tǒng)中的研究與實(shí)現(xiàn).pdf
- 51111.基于mapobjects下的gis二次開(kāi)發(fā)在工程中的應(yīng)用
- Revit二次開(kāi)發(fā)在基坑土方工程中的應(yīng)用研究.pdf
- autocad中工程圖樣智能標(biāo)注的二次開(kāi)發(fā)
- 畢業(yè)設(shè)計(jì)--- autocad應(yīng)用(銑刀頭)及二次開(kāi)發(fā)
評(píng)論
0/150
提交評(píng)論