我們平時都使用CAD軟件來進行CAD圖紙的繪制以及編輯,而今天我們要講的并不是CAD軟件繪圖的問題,而是CAD軟件中的VBA二次開發。
浩辰CAD中實現ActiveX
浩辰CAD ActiveX使用戶能夠從浩辰CAD的內部或外部以編程方式來操作浩辰CAD,它是通過將浩辰CAD對象顯示到“外部世界”來做到這一點的。一旦這些對象被顯示,許多不同的編程語言和環境以及其他應用程序(例如Microsoft Office中的Word VBA或Excel VBA)就可以訪問它們。
在浩辰CAD中實現ActiveX接口有兩大優點:
(1) 更多的編程環境可以編程訪問浩辰CAD圖形。在ActiveX 浩辰mation出現以前,開發人員只能使用浩辰LISP或C++接口。
(2) 與其他Windows應用程序(例如Microsoft Office中的Excel和Word)共享數據變得更加容易。
對象是所有ActiveX應用程序的主要構造塊,每一個顯示的對象均精確代表一個浩辰CAD組件,浩辰CAD ActiveX接口中有許多不同類型的對象。例如,直線、圓弧、文字和標注等圖形對象是對象;線型與標注樣式等樣式設置是對象;圖層、編組和塊等組織結構是對象;視圖與視口等圖形顯示是對象;甚至圖形、浩辰CAD應用程序本身也是對象。
浩辰CAD中的VBA
Microsoft VBA是一個面向對象的編程環境,可提供類似Visual Basic(VB)的豐富開發功能。VBA和VB的主要差別是VBA和浩辰CAD在同一進程空間中運行,提供的是具有浩辰CAD智能的、非常快速的編程環境。VBA也向其他支持VBA的應用程序提供應用程序集成,這就意味著浩辰CAD(使用其他應用程序對象庫)可以是如Microsoft Word或Excel之類的其他應用程序的浩辰mation控制程序。
在浩辰CAD中實現VBA有四大優點:
(1) Visual Basic編程環境易于學習和使用。
(2) VBA可與浩辰CAD在同一進程空間中運行,這使程序執行得非常快。
(3) 對話框的構造快速而有效。這使開發人員可以構造原型應用程序并迅速收到設計的反饋。
(4) 工程可以是獨立的,也可以嵌入到圖形中。這樣就為開發人員提供了非常靈活的方式來發布他們的應用程序。
新工程會被創建為未保存的全局工程。創建完成后,可以將它嵌入到圖形中或保存到工程文件中。
浩辰CAD中的VBA工程
浩辰CAD VBA工程是由許多程序模塊、類模塊和窗體組成的集合,他們同時運行即可完成指定的功能。VBA工程可以保存于浩辰CAD圖形文件內部,稱為內嵌VBA工程;亦可保存為獨立的工程,稱為全局VBA工程,以*.dvb文件格式保存。
對于內嵌VBA工程,當打開包含該工程的浩辰CAD圖形文件時,它將被自動加載。因此,在運行內嵌VBA工程程序之前,其用戶不須在文件夾中去尋找工程文件并加載該工程,使得工程管理更加方便。
全局VBA工程的功能較多。全局工程可在任何浩辰CAD圖形中運行,亦可在工程中打開或關閉浩辰CAD圖形。全局工程容易與其他用戶共享,且可制作成共享的宏[2]資源庫,因此應用VBA開發通用應用程序時,應將其保存為全局工程。但全局工程也有一些缺點,它不會隨浩辰CAD圖形文件的打開而自動加載。所以,用戶在運行全局工程程序之前須要知道哪個工程文件中包含了所需的宏,然后加載該工程文件,最后才能執行相應的宏。
浩辰CAD中的VBA管理器
在當前浩辰CAD進程中加載的所有VBA工程均可用VBA管理器來管理,亦可用它來新建、保存、加載、卸載、嵌入或提取工程。“VBA管理器”對話框如圖所示。
啟動“VBA管理器”對話框的命令調用方法為:
命令行:VBARUN
菜單欄:【工具】→【宏】→【VBA管理器】
與VBA應用程序開發、管理相關的下拉菜單如圖2所示。
“VBA管理器”對話框
與VBA應用程序開發、管理相關的下拉菜單
浩辰CAD創建新VBA工程
創建新VBA工程的步驟如下:
(1) 打開“VBA管理器”對話框。
(2) 選擇“新建”。
新工程將以默認的名稱“CADProject”創建。如要更改工程名稱,必須進入“Visual Basic編輯器”中,在“工程屬性”窗口中更名。其操作方法步驟如下:
(1) 單擊“VBA管理器”中的“Visual Basic編輯器”按鈕(如圖1所示)或用菜單選擇“Visual Basic編輯器”(如圖2所示),打開“Microsoft Visual Basic”,如圖3所示。
在VB的“工程資源管理器”選中“CADProject(Global1)”,單擊右鍵,在彈出菜單中選擇“CADProject屬性…”選項,打開“工程屬性”對話框,在“工程名稱”中輸入用戶欲更改的名稱。
以上內容,就是我們今天要給大家介紹的關于CAD軟件二次開發VBA編程的相關內容了。CAD軟件除了可以進行CAD繪圖以外,我們還可以學到編程,你是不是也沒有想到呢?
2019-11-27
2019-11-27
2019-11-26
2019-11-22
2019-11-22
2019-11-22
2019-10-28
2019-10-28
2019-10-28
2019-10-28
2019-10-18
2019-10-18