跳转至

COM操作AutoCAD

后期绑定方式打开CAD

// 打开CAD2021
var app = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application.24");

打开对应版本的字符串,参考官方:COM Interoperability (.NET)

字符串 对应版本
AutoCAD.Application.24.1 AutoCAD 2022
AutoCAD.Application.24 AutoCAD 2021 or AutoCAD 2022
AutoCAD.Application.23.1 AutoCAD 2020
AutoCAD.Application.23 AutoCAD 2019 or AutoCAD 2020
AutoCAD.Application.22 AutoCAD 2018
AutoCAD.Application.21 AutoCAD 2017
AutoCAD.Application.20.1 AutoCAD 2016
AutoCAD.Application.20 AutoCAD 2015 or AutoCAD 2016

前期绑定方式打开CAD

前期绑定的就是引用了哪个版本的Dll,就是那个版本的CAD

引用dll列表:

  • Autodesk.AutoCAD.Interop.dll
  • Autodesk.AutoCAD.Interop.Common.dll
// 打开某个版本的CAD
var app = new Autodesk.AutoCAD.Interop.AcadApplication();

获得app之后,其它的大部分操作就是和普通的类库开发差不多了。

示例

启动CAD,打开某个文件,执行一些命令

using Autodesk.AutoCAD.Interop;
internal class Program
{
    static AcadApplication m_app;
    static void Main(string[] args)
    {
        m_app = new Autodesk.AutoCAD.Interop.AcadApplication();
        // 当打开文件完成之后,触发事件,在里面发送要执行的命令
        m_app.EndOpen -= OnEndOpen;
        m_app.EndOpen += OnEndOpen;
        var doc = m_app.Documents.Open("D:\\test\\Drawing1.dwg");
    }
    private static void OnEndOpen(string FileName)
    {
        if (m_app == null) return;
        // 发送要执行的命令
        m_app.ActiveDocument.SendCommand("Zoom\n");
    }
}

评论