COM操作AutoCAD
2025年2月19日小于 1 分钟
后期绑定方式打开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");
}
}