枫叶(fox) 发表于 2020-7-29 22:11:48

VB.net外部调用AutoCAD

各位大佬,我想编写一个VB.net程序实现外部调用AutoCAD,并通过已获得的CAD实例进行自动插入图块和自动绘图功能。我的思路是,先设计一个VB.net窗体程序用于测试,添加一个Button,响应Click事件,加入代码如下:

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click      

Dim myAcadApp As AcadApplication
      Dim activeDoc As Autodesk.AutoCAD.ApplicationServices.Document

      On Error Resume Next

      myAcadApp = GetObject(, "Autocad.Application") '检查AutoCAD是否已经打开bai

      If Err.Number Then '没有打开
            Err.Clear()
            myAcadApp = CreateObject("Autocad.Application") '打开CAD
            If Err.Number Then
                MsgBox(Err.Number & ":" & Err.Description) '打开失败
                Exit Sub
            End If
      End If
      On Error GoTo prcERR

      myAcadApp.Visible = True '显示CAD

      activeDoc = myAcadApp.ActiveDocument

      Dim startPoint(0 To 2) As Double
      Dim endPoint(0 To 2) As Double
      Dim LineObj As AcadLine '如果画图时出错,改为Dim LineObj As Object
      startPoint(0) = 0 : startPoint(1) = 0 : startPoint(2) = 0
      endPoint(0) = 30 : endPoint(1) = 20 : endPoint(2) = 0
      'LineObj = activeDoc.ModelSpace.AddLine(startPoint, endPoint) '画线

prcExit:
      activeDoc = Nothing
      myAcadApp = Nothing
      Exit Sub
prcERR:
      MsgBox(Err.Number & ":" & Err.Description, vbCritical, "错误")
      Resume prcExit


    End Sub

End Class

然后在程序引用中添加AtuoCAD2014TypeLibrary,但是调试程序时总是显示:
其他信息: 未能加载文件或程序集“accoremgd, Version=19.1.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。
查了很多帖子,换了一些代码都没有办法解决,后来有帖子说AutoCAD仅支持外部调用,但不支持外部控制,不知道在这了有没有权威的解答。
感激不尽!!!

枫叶(fox) 发表于 2020-8-4 21:12:49

谢谢,问题解决了。
VB.net和C#。net外部调用AutoCAD只能通过Com接口TypeLibrary技术调用,但是这方面开发的人比较少,不好弄啊。

sieben 发表于 2020-7-30 10:53:56

你或许应该去【VBA/VB/ActiveX/API 编程技术 】板块了解一下

ps122hb 发表于 2020-8-5 08:12:49

枫叶(fox) 发表于 2020-8-4 21:12
谢谢,问题解决了。
VB.net和C#。net外部调用AutoCAD只能通过Com接口TypeLibrary技术调用,但是这方面开发 ...

楼主,你这是装的哪个版本cad?



我装完了是19.1.18,能把你的19.1.0.0的accoremgd.dll,acdbmgd.dll,acmgd.dll的3个文件共享一下吗?非常感谢!
页: [1]
查看完整版本: VB.net外部调用AutoCAD