網(wǎng)絡(luò)消費(fèi)網(wǎng) >  5G > > 正文
        基于VBA的AutoCAD二次開發(fā)及應(yīng)用實(shí)例
        時(shí)間:2022-01-31 14:22:02

        1引言

        AutOCAD2005是AutOdesk公司的系列產(chǎn)品,該軟件從其使用和設(shè)計(jì)思路上都秉承了工程制圖人員的繪圖習(xí)慣,能夠非常輕松地繪制出帶有平面視圖和三維渲染效果的工程圖紙,是繪圖人員的一個(gè)理想工具。隨著CAD基礎(chǔ)理論和應(yīng)用技術(shù)的不斷發(fā)展,對(duì)CAD系統(tǒng)的功能要求也越來越高。因而AutoCAD不可能完全滿足每個(gè)用戶的具體而特定的要求。設(shè)計(jì)人員希望它能從本質(zhì)上減輕大量簡(jiǎn)單煩瑣的工作量,使他們能集中精力于那些富有創(chuàng)造性的高層次思維活動(dòng)中。

        AutoCAD提供的開放式體系結(jié)構(gòu)允許用戶和開發(fā)者采用高級(jí)編程語言對(duì)其進(jìn)行擴(kuò)充和修改,即二次開發(fā),能最大限度地滿足用戶的特殊要求,更方便、更規(guī)范、更專業(yè)的實(shí)現(xiàn)設(shè)計(jì)和繪圖中的應(yīng)用。VBA最早是建立在0ffice97中的標(biāo)準(zhǔn)宏語言,由于它在開發(fā)方面的易用性及具有的強(qiáng)大功能,許多軟件開發(fā)商都將其嵌入自己的應(yīng)用程序中,作為一種開發(fā)工具提供給用戶使用。AutOdeSk公司自從Aut0CADRl4.0l版開始,內(nèi)置了VBA開發(fā)工具。

        新一代程序開發(fā)工具ViSual BaSic,不僅繼承了面向?qū)ο蠓椒ǖ奶匦裕瑫r(shí)具備可視化程序語言及程序產(chǎn)生器的概念。

        VBA(visual Basic For Apphcation)是AutoCADR12以后推出的一種新的編程環(huán)境,提供了以Visual Basic為基礎(chǔ)的面向?qū)ο蟮拈_發(fā)特征及程序接口,能真正快速地訪問AutOCAD圖形數(shù)據(jù)庫,能明顯提高軟件開發(fā)和維護(hù)的效率。

        2 VBA的技術(shù)特性

        2.1 VBA開發(fā)AUTOCAD的技術(shù)特點(diǎn)

        VBA是微軟開發(fā)出來的應(yīng)用程序共享一種通用的自動(dòng)化語言,它可以使常用的程序自動(dòng)化,并可以創(chuàng)建自定義的解決方案。

        VBA被集成到AutoCAD中,VBA和AutoCAD中強(qiáng)大的Activex自動(dòng)化對(duì)象模型的結(jié)合,代表了一種新型的定制AutoCAD的模式構(gòu)架。通過VBA,我們可以操作AutoCAD2004,控制ActiveX和其它一些應(yīng)用程序,使之相互之間發(fā)生互易活動(dòng)下面就是VBA的主要功能:

        (1)VBA提供強(qiáng)大的窗體創(chuàng)建功能,為應(yīng)用程序建立對(duì)話框及其他屏幕界面。

        (2)可以創(chuàng)建自己的工具條。

        (3)可以創(chuàng)建功能強(qiáng)大的模塊級(jí)宏指令,宏名實(shí)質(zhì)上就是模塊的過程名。

        (4)提供建立類模塊的功能,這對(duì)開發(fā)大型工程非常有用,因此類可以提供重用組。

        (5)具備完善的數(shù)據(jù)訪問和管理能力,通過ADO(ActivexData Objects),可以對(duì)Access數(shù)據(jù)庫或其他外部數(shù)據(jù)庫(像dBase,F(xiàn)oxPro等)實(shí)現(xiàn)訪問和管理。此功能比直接使用AutoCAD的數(shù)據(jù)庫管理系統(tǒng)要方便,且功能強(qiáng)大。

        2.2 VBA AutoCAD ActiveX Automation對(duì)象模型

        VBA是通過AutoCAD ActiveX Automation接口來建立和AutoCAD對(duì)象問的聯(lián)系。ActiveX是建立在COM對(duì)象模型之上的一個(gè)標(biāo)準(zhǔn)通信協(xié)議,它允許對(duì)象之間通過一定的接口相互通信。

        AutoCAD Activex使用戶能夠從AutoCAD的內(nèi)部或外部以編程方式來操作AutoCAD。它是通過將AutoCAD對(duì)象顯示到“外部世界”來做到這一點(diǎn)的。這些對(duì)象被顯示后,許多不同的編程語言和環(huán)境以及其他應(yīng)用程序(例如Microsonword VBA或Excel VBA)就可以訪問它們。如圖1是編程語言和應(yīng)用程序通過AutoCAD ActiveX訪問AutoCAD。

        圖1 編程語言和應(yīng)用程序通過AutoCAD AcfiveX訪問AutoCAD

        在AutoCAD中實(shí)現(xiàn)ActiveX接口有兩大優(yōu)點(diǎn):

        ·更多的編程環(huán)境可以編程訪問AucOCAD圖形。在ActiveXAutomation出現(xiàn)以前,開發(fā)人員只能使用AutoLISP或C++接口。

        ·與其他windows應(yīng)用程序(如Microsoft ACCESS和Word)共享數(shù)據(jù)變得更加容易。

        對(duì)象是所有Activex應(yīng)用程序的主要構(gòu)造塊。每一個(gè)顯示的對(duì)象均精確代表一個(gè)AutoCAD組件。AutoCAD ActiveX接口中有許多不同類型的對(duì)象。例如:

        ·直線、圓弧、文字和標(biāo)注等圖形對(duì)象都是對(duì)象。

        ·線型與標(biāo)注樣式等樣式設(shè)置都是對(duì)象。

        ·圖層、編組和塊等組織結(jié)構(gòu)都是對(duì)象。

        ·視圖與視口等圖形顯示都是對(duì)象。

        ·甚至圖形、AutoCAD應(yīng)用程序本身也是對(duì)象。

        AutoCAD對(duì)象是通過分層方式來組織的,應(yīng)用程序?qū)ο鬄楦鶎?duì)象。這種分層結(jié)構(gòu)的視圖被歸結(jié)為對(duì)象模型。對(duì)象模型提供了用戶訪問下一層對(duì)象的途徑。

        用戶可直接通過用戶定義變量引用對(duì)象。直接引用對(duì)象,應(yīng)包括對(duì)象的層次。舉一個(gè)最簡(jiǎn)單的例子,在VBA中要利用圓心和半徑創(chuàng)建圓可以使用以下代碼:

        Sub drawcircle()

        * Dim ptl(2)As Double

        Dim radius As Double

        ptl(0)=23

        ptl(1)=78

        Dtl(2)=67

        radius=56

        ’調(diào)用Addcircle方法繪制圓

        ThisDrawing.Modelspace.a(chǎn)ddcircle ptl,radiusEnd Sub

        3 AUTOCAD VBA實(shí)例應(yīng)用

        這個(gè)實(shí)例,介紹了VBA開發(fā)AUTOCAD實(shí)現(xiàn)參數(shù)化繪圖的編程思路與實(shí)際應(yīng)用,是CAD系統(tǒng)中很重要的環(huán)節(jié)。

        3.1繪制三維圖形實(shí)例說明

        (1).本程序運(yùn)行界面如圖2所示,用戶可以指定中心點(diǎn),桌面及桌腿半徑,桌子的高度,系統(tǒng)就能根據(jù)用戶指定的參數(shù)在三維空間中創(chuàng)建出一個(gè)桌子。

        (2).編程思路

        核心問題是創(chuàng)建大小圓的面域,復(fù)制出來的桌腿,角度的旋轉(zhuǎn)及最后的合并著色。

        3.2 VBA開發(fā)AutoCAD2005的技術(shù)流程

        (1)首先在AUTOCAD2004中,選擇[工具/宏/VBA管理器]菜單項(xiàng),在彈出的[VBA管理器]對(duì)話框中單擊[新建]按鈕,將其保存在適當(dāng)?shù)奈恢谩?/p>

        (2)在[VBA管理器]對(duì)話框中單擊[Visual Basic編輯器]按鈕,進(jìn)入VBA集成開發(fā)環(huán)境,選擇[插入/用戶窗體]菜單項(xiàng),向工程中添加一個(gè)用戶窗體。

        圖2 創(chuàng)建桌子運(yùn)行界面

        (3)在用戶窗體上插入如圖2所示的相關(guān)控件,并按下表分別設(shè)置它們的相關(guān)屬性。

        (4)相關(guān)代碼:l>.在Cammandbutton2命令按鈕的單擊Click事件的代碼為:

        圖3桌子的參數(shù)化繪圖

        (2)在AutoCAD2004中,選擇[視圖/著色/體著色]菜單項(xiàng),對(duì)生成的模型進(jìn)行著色,所得結(jié)果,如圖4所示

        圖4 創(chuàng)建桌子運(yùn)行界面

        該實(shí)例可以連接上數(shù)據(jù)庫,使用時(shí)可以直接調(diào)用數(shù)據(jù)庫中的參數(shù),直接運(yùn)行得出所需的圖形。

        4 AUTOCAD VBA數(shù)據(jù)庫連接技術(shù)

        4.1 ADO數(shù)據(jù)庫訪問技術(shù)

        別隨著CAD技術(shù)的發(fā)展,在CAD軟件中使用數(shù)據(jù)庫的場(chǎng)合越來越多,數(shù)據(jù)庫連接方法ADO是Microsoft AcciveX Data ObjeCts的簡(jiǎn)稱,ADO作為一種更新的數(shù)據(jù)庫訪問技術(shù),“擴(kuò)展”了DA0和RD0所使用的對(duì)象模型,包含較少的對(duì)象和更多的屬性、方法、事件。

        本節(jié)僅介紹ADO控件連接MICROSOFT、ACCESS數(shù)據(jù)庫的基本操作,桌子的各個(gè)參數(shù),存放在數(shù)據(jù)庫DESK.mdb中,可以用于瀏覽數(shù)據(jù)庫中的各條記錄,還可以完成記錄的添加,修改和刪除操作。

        在使用ADO對(duì)象之前,需要在VBA集成開發(fā)環(huán)境中,選擇[工程/引用]菜單項(xiàng),從彈出的對(duì)話框中選中[microsoft ActiveX Data Objects 2.5 Livrary]選項(xiàng),引用ADO的對(duì)象模型,如圖5所示

        圖5 引用ADO的對(duì)象模型

        4.2 ADO編程

        在編程過程中使用AD0的一個(gè)典型的存取數(shù)據(jù)的步驟為:

        (1)連接數(shù)據(jù)源。可以使用連接對(duì)象的Open方法打開數(shù)據(jù)庫對(duì)象,例如:

        adoCon.Open“Provider=Microsoft.Jet.OLEDB.4.0;DataSource=“_

        Left(strPath,Len(strPam)一6)”\DESK.mdb;”

        (2)打開記錄集對(duì)象。可以使用記錄集對(duì)象的Open方法打開記錄集對(duì)象,例如:

        adoRs.Open“biaoData2”,adoCon,adOpenDynamic,adLockOptimiStic

        (3)使用記錄集。在各個(gè)記錄集之間切換一般可以使用記錄集對(duì)象的Move、MoveFirst、MoveNext、MovePrevious和MoveLast方法,添加新的記錄可以使用記錄集對(duì)象的AddNew方法,修改當(dāng)前記錄的內(nèi)容只需對(duì)數(shù)據(jù)庫記錄集中的對(duì)象重新賦值即可,刪除當(dāng)前的記錄可以使用記錄集的Delete方法。

        其中,記錄集在進(jìn)行添加的操作之后,必須使用Update方法更新數(shù)據(jù)庫。

        (4)斷開連接。使用close方法能夠關(guān)閉記錄集和數(shù)據(jù)庫連接對(duì)象,在退出程序之后,必須用close方法關(guān)閉這兩個(gè)對(duì)象。向工程中添加一個(gè)用戶窗體,并在窗體中放置如圖6所示的控件。

        向工程中添加一個(gè)用戶窗體,并在窗體中放置如圖6所示的控件。

        圖6桌子的數(shù)據(jù)庫連接

        5 結(jié)束語

        基于VBA的AutoCAD二次開發(fā)技術(shù),可以實(shí)現(xiàn)AUTOCAD功能的拓展及參數(shù)化沒計(jì),如零件標(biāo)準(zhǔn)圖庫的建立等各個(gè)方面,更好的滿足機(jī)械電子行業(yè)等系列化產(chǎn)品的專業(yè)設(shè)計(jì)。對(duì)于大型CAD應(yīng)用軟件的開發(fā),能發(fā)揮極大的作用。各大企業(yè)也在開發(fā)自己的CAD系統(tǒng),具有很好的實(shí)用價(jià)值。

        關(guān)鍵詞: AutoCAD VBA 二次開發(fā) 應(yīng)用實(shí)例

        版權(quán)聲明:
            凡注明來網(wǎng)絡(luò)消費(fèi)網(wǎng)的作品,版權(quán)均屬網(wǎng)絡(luò)消費(fèi)網(wǎng)所有,未經(jīng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用上述作品。已經(jīng)本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使用,并注明"來源:網(wǎng)絡(luò)消費(fèi)網(wǎng)"。違反上述聲明者,本網(wǎng)將追究其相關(guān)法律責(zé)任。
            除來源署名為網(wǎng)絡(luò)消費(fèi)網(wǎng)稿件外,其他所轉(zhuǎn)載內(nèi)容之原創(chuàng)性、真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考并自行核實(shí)。
        熱文

        網(wǎng)站首頁 |網(wǎng)站簡(jiǎn)介 | 關(guān)于我們 | 廣告業(yè)務(wù) | 投稿信箱
         

        Copyright © 2000-2020 www.fnsyft.com All Rights Reserved.
         

        中國(guó)網(wǎng)絡(luò)消費(fèi)網(wǎng) 版權(quán)所有 未經(jīng)書面授權(quán) 不得復(fù)制或建立鏡像
         

        聯(lián)系郵箱:920 891 263@qq.com

        備案號(hào):京ICP備2022016840號(hào)-15

        營(yíng)業(yè)執(zhí)照公示信息

        亚洲午夜AV无码专区在线播放 | 亚洲精品乱码久久久久久V| 久久久亚洲精华液精华液精华液 | 亚洲一级毛片在线观| 色婷婷亚洲一区二区三区| 亚洲中文精品久久久久久不卡| 国产亚洲成av人片在线观看| 亚洲视频在线观看2018| 亚洲AV无码成人精品区天堂| 青草久久精品亚洲综合专区| 亚洲国产成人综合精品| 亚洲成a人片在线观看天堂无码| 亚洲欧洲无卡二区视頻| 亚洲一区中文字幕久久| 色噜噜噜噜亚洲第一| 日韩成人精品日本亚洲| 亚洲一区二区免费视频| 亚洲无线一二三四区| 亚洲色精品aⅴ一区区三区 | 亚洲综合色婷婷在线观看| 亚洲最大的成人网站| 亚洲欧美日韩中文二区 | 日韩亚洲欧洲在线com91tv| 国产精品亚洲一区二区无码| 蜜桃传媒一区二区亚洲AV| 免费在线观看亚洲| 亚洲天堂中文字幕在线| 亚洲中文字幕无码爆乳AV| 亚洲AV无一区二区三区久久| 亚洲视频在线视频| 亚洲a级在线观看| 亚洲国产欧洲综合997久久| 国产亚洲成在线播放va| 成人午夜亚洲精品无码网站| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 久久99亚洲综合精品首页| 久久精品国产亚洲AV天海翼| 亚洲A丁香五香天堂网| 理论亚洲区美一区二区三区 | 亚洲无人区视频大全| 精品国产日韩久久亚洲|