當(dāng)前位置:首頁 > EDA > 電子設(shè)計自動化
[導(dǎo)讀]本文介紹了VBA二次開發(fā)AutoCAD的技術(shù)特點,并以實例說明VBA應(yīng)用程序的編寫要點。進(jìn)一步驗證了AUTOCAD與VBA以Activex Automation自動化接口技術(shù)實現(xiàn)連接,利用VB的可視化編程設(shè)計實現(xiàn)CAD系統(tǒng)設(shè)計的實際價值。

 1引言

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

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

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

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

  2 VBA的技術(shù)特性

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

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

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

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

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

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

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

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

  2.2 VBA AutoCAD ActiveX Automation對象模型

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

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

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

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

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

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

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

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

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

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

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

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

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

  用戶可直接通過用戶定義變量引用對象。直接引用對象,應(yīng)包括對象的層次。舉一個最簡單的例子,在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實例應(yīng)用

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

  3.1繪制三維圖形實例說明

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

  (2).編程思路

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

圖5 引用ADO的對象模型

  4.2 ADO編程

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

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

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

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

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

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

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

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

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

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

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

  5 結(jié)束語

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

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉