<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 基于VBA的AutoCAD二次開(kāi)發(fā)及應用實(shí)例

基于VBA的AutoCAD二次開(kāi)發(fā)及應用實(shí)例

作者: 時(shí)間:2011-10-03 來(lái)源:網(wǎng)絡(luò ) 收藏

 1引言

本文引用地址:http://dyxdggzs.com/article/190993.htm

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

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

  新一代程序開(kāi)發(fā)工具ViSual BaSic,不僅繼承了面向對象方法的特性,同時(shí)具備可視化程序語(yǔ)言及程序產(chǎn)生器的概念。

  (visual Basic For Apphcation)是 R12以后推出的一種新的編程環(huán)境,提供了以Visual Basic為基礎的面向對象的開(kāi)發(fā)特征及程序接口,能真正快速地訪(fǎng)問(wèn)AutOCAD圖形數據庫,能明顯提高軟件開(kāi)發(fā)和維護的效率。

  2 VBA的技術(shù)特性

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

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

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

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

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

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

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

  (5)具備完善的數據訪(fǎng)問(wèn)和管理能力,通過(guò)ADO(ActivexData Objects),可以對Access數據庫或其他外部數據庫(像dBase,FoxPro等)實(shí)現訪(fǎng)問(wèn)和管理。此功能比直接使用AutoCAD的數據庫管理系統要方便,且功能強大。

  2.2 VBA AutoCAD ActiveX Automation對象模型

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

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

編程語(yǔ)言和應用程序通過(guò)AutoCAD AcfiveX訪(fǎng)問(wèn)AutoCAD

圖1 編程語(yǔ)言和應用程序通過(guò)AutoCAD AcfiveX訪(fǎng)問(wèn)AutoCAD

  在A(yíng)utoCAD中實(shí)現ActiveX接口有兩大優(yōu)點(diǎn):

  ·更多的編程環(huán)境可以編程訪(fǎng)問(wèn)AucOCAD圖形。在A(yíng)ctiveXAutomation出現以前,開(kāi)發(fā)人員只能使用AutoLISP或C++接口。

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

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

  ·直線(xiàn)、圓弧、文字和標注等圖形對象都是對象。

  ·線(xiàn)型與標注樣式等樣式設置都是對象。

  ·圖層、編組和塊等組織結構都是對象。

  ·視圖與視口等圖形顯示都是對象。

  ·甚至圖形、AutoCAD應用程序本身也是對象。

  AutoCAD對象是通過(guò)分層方式來(lái)組織的,應用程序對象為根對象。這種分層結構的視圖被歸結為對象模型。對象模型提供了用戶(hù)訪(fǎng)問(wèn)下一層對象的途徑。

  用戶(hù)可直接通過(guò)用戶(hù)定義變量引用對象。直接引用對象,應包括對象的層次。舉一個(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

  ’調用Addcircle方法繪制圓

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

  3 AUTOCAD VBA實(shí)例應用

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

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

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

  (2).編程思路

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

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

  (1)首先在A(yíng)UTOCAD2004中,選擇[工具/宏/VBA管理器]菜單項,在彈出的[VBA管理器]對話(huà)框中單擊[新建]按鈕,將其保存在適當的位置。

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

創(chuàng  )建桌子運行界面

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

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

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

創(chuàng  )建桌子運行界面

圖3桌子的參數化繪圖

  (2)在A(yíng)utoCAD2004中,選擇[視圖/著(zhù)色/體著(zhù)色]菜單項,對生成的模型進(jìn)行著(zhù)色,所得結果,如圖4所示

創(chuàng  )建桌子運行界面

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

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

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

  4.1 ADO數據庫訪(fǎng)問(wèn)技術(shù)

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

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

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

引用ADO的對象模型

圖5 引用ADO的對象模型

  4.2 ADO編程

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

  (1)連接數據源??梢允褂眠B接對象的Open方法打開(kāi)數據庫對象,例如:

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

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

  (2)打開(kāi)記錄集對象??梢允褂糜涗浖瘜ο蟮腛pen方法打開(kāi)記錄集對象,例如:

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

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

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

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

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

桌子的數據庫連接

圖6桌子的數據庫連接

  5 結束語(yǔ)

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

c++相關(guān)文章:c++教程




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>