1、如何在 VB 中連接 AutoCAD。

啟動 VB ,引用 AutoCAD 型別程式庫。操作步驟:從「工程」功能表中選擇「引用」選項,啟動「引用」對話方塊。在「引用」對話方塊中,選擇 AutoCAD 型別程式庫,然後按一下「確定」。

 

2、定義模組層級變數 AutoCAD 應用程式 (acadApp) 和當前的文檔 (acadDoc)。

 

如果 AutoCAD 正在運行,使用 GetObject 函數將檢索 AutoCAD Application 物件。如果 AutoCAD 沒有運行,使用 CreateObject 函數試圖創建一個 AutoCAD Application 物件。如果創建成功,會啟動 AutoCAD;如果失敗,則會發生錯誤。

 

同時運行多個 AutoCAD 任務時,GetObject 函數會返回 Windows 運行物件表中的第一個 AutoCAD 實例。

 

要顯示 AutoCAD 圖形視窗,需要將 AutoCAD 應用程式的 Visible 特性設置為 TRUE。

 

使用 acadDoc 變數引用當前的 AutoCAD 圖形。

 

示例:

 

Dim acadApp As AcadApplication

 

Dim acadDoc as AcadDocument

 

Sub ConnectToAcad()

 

On Error Resume Next

 

Set acadApp = GetObject(, "AutoCAD.Application")

 

If Err Then

 

Err.Clear

 

Set acadApp = CreateObject("AutoCAD.Application")

 

If Err Then End

 

End If

 

acadApp.Visible = True

 

Set acadDoc = acadApp.ActiveDocument

 

End Sub

 

2、如何使 VB 開發的程式不依賴于 AutoCAD 的版本。

 

啟動 VB ,定義模組層級變數 AutoCAD 應用程式 (acadApp) 和當前的文檔 (acadDoc)。

 

如果 AutoCAD 正在運行,使用 GetObject 函數將檢索 AutoCAD Application 物件。如果 AutoCAD 沒有運行,使用 CreateObject 函數試圖創建一個 AutoCAD Application 物件。如果創建成功,會啟動 AutoCAD;如果失敗,則會發生錯誤。

 

同時運行多個 AutoCAD 任務時,GetObject 函數會返回 Windows 運行物件表中的第一個 AutoCAD 實例。

 

要顯示 AutoCAD 圖形視窗,需要將 AutoCAD 應用程式的 Visible 特性設置為 TRUE。

 

使用 acadDoc 變數引用當前的 AutoCAD 圖形。

 

示例:

 

Dim acadApp As Object

 

Dim acadDoc as Object

 

Sub ConnectToAcad()

 

On Error Resume Next

 

Set acadApp = GetObject(, "AutoCAD.Application")

 

If Err Then

 

Err.Clear

 

Set acadApp = CreateObject("AutoCAD.Application")

 

If Err Then End

 

End If

 

acadApp.Visible = True

 

Set acadDoc = acadApp.ActiveDocument

 

End Sub

 

與第一個問題相比較,可以看出,不引用具體的型別程式庫以及使用通用的物件類型就可以達到通用性。

 

3、前期綁定和後期綁定

 

要創建一個使用前期綁定方式的物件變數,也就是說,在程式編譯時就完成綁定,則物件變數在聲明時應指定類 ID,如:Dim acadApp As AcadApplication。

 

使用 As Object 子句聲明物件變數,可以創建一個能包含任何類型物件引用的變數。不過,該變數訪問物件是後期綁定的,也就是說,綁定在程式運行時才進行,如:Dim acadApp As Object。

 

前期綁定的變數引用可以提供更好的性能,但該變數只能存放聲明中所指定的類的引用。

 

而後期綁定的變數引用可以提供更好的通用性。

 

4、依賴于版本和獨立于版本

 

如果 CreateObject 或 GetObject 函數使用的 ProgID 沒有附加版本號,那麼是獨立于版本的,否則是依賴于版本的。例如,如果使用的是 CreateObject,則 CreateObject ("AutoCAD.Application") 是獨立于版本的,而 CreateObject ("AutoCAD.Application.15") 是依賴于版本的。

 

5、VB 代碼到 VBA 代碼的轉換

 

在 VBA 的 IDE 環境中,使用「導入檔」將要轉換的 VB 工程的模組、類別模組以及表單檔一一導入。接著將 VB 代碼中所有的當前的文檔 (acadDoc) 變數替換為 ThisDrawing,而AutoCAD 應用程式 (acadApp) 變數替換為 Application。同時刪除定義的 AutoCAD 應用程式 (acadApp) 和當前的文檔 (acadDoc) 變數,刪除與 AutoCAD 應用程式連接的代碼。注意:要轉換 VB 代碼的表單部分,則表單必須是用 UserForm 創建的。

 

6、繪圖物件和非繪圖物件

 

繪圖物件(也稱為圖元、實體物件)是組成圖形的可見物件(例如直線、圓、點陣影像等)。非繪圖物件是指屬於圖形的一部分但不可見的(提示性的)物件,例如 Layers、 Linetypes、 DimStyles、 SelectionSets 等等。要創建這些物件,可使用 Add 方法。每一個物件都有用於特定目的的方法和特性,都有設置和檢索擴展資料以及刪除自己的方法。
arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()