首頁>Club>
9
回覆列表
  • 1 # wangjianli001

    操作步驟:一、建立一個ACTIVEX DLL cadPro工程二、新增一個模組命名為ModCad.程式碼如下Public acadApp As ObjectPublic acadDoc As Object(這裡建立一個新塊主要是為了以後在多個窗體、類或者多個工程中可以呼叫)二、新增一個類ClsTest程式碼如下:Public Function MenuMain(MenuIndex As Integer) "下面的判斷在VB中測試的時候可以用到,在生成DLL後VBA呼叫時可註釋 If ModCad.acadApp Is Nothing Or ModCad.acadDoc Is Nothing Then ConnectToAcad setApp ModCad.acadApp setDoc ModCad.acadDoc End If Select Case MenuIndex Case 1 AutoCADTest Case 2 End SelectEnd FunctionPublic Function ConnectToAcad() On Error Resume Next Set ModCad.acadApp = GetObject(, "AutoCAD.Application.16.2") "16.2是CAD的版本 If Err Then Err.Clear Set ModCad.acadApp = CreateObject("AutoCAD.Application.16.2") End If If Err Then Err.Clear Set ModCad.acadApp = GetObject(, "AutoCAD.Application") If Err Then Err.Clear Set ModCad.acadApp = CreateObject("AutoCAD.Application") End If If Err Then Unload Me End If End If ModCad.acadApp.Visible = True Set ModCad.acadDoc = ModCad.acadApp.ActiveDocumentEnd FunctionPublic Function setApps(acadObj As AcadApplication) Set ModCad.acadApp = acadObj Set ModCad.acadDoc = acadApp.ActiveDocumentEnd Function"VB中要在CAD中實現的功能Private Function AutoCADTest() Dim cadLine As AcadLine Dim cadPoint As Variant cadPoint = ModCad.acadDoc.Utility.GetPoint(, "請選取一個插入點:") ModCad.acadDoc.ModelSpace.AddCircle cadPoint, 5End Function三、如果要在VB中除錯,在新增一個EXE工程,引用ACTIVEX工程,新增一個窗體,在窗體上新增一個按鈕,Private Sub Command1_Click() Dim Rec As New cadPro.MenuMain Rec.MenuMain 1 End Sub四、生成DLL檔案在VBA中呼叫。在工具----設定引用專案中加入生成的DLL。程式碼如下:Option ExplicitPrivate clsGre As New cadPro.ClsTestPublic Sub cadtest() On Error Resume Next clsGre.setApp ThisDrawing.Application clsGre.MenuMain 1 End Sub按照以上四個步驟就可實現VB與AutoCAD的連線。以上程式在本機測試透過。OS:winxp sp2 chtAuotCAD Version:AutoCAD 2006

  • 中秋節和大豐收的關聯?
  • 哪些NBA球星一直受質疑,但在某些重要時刻覺得他真是“大腿”?