c# - 尝试使用 Autodesk.AutoCAD.DatabaseService 从 DWG 中读取数据 我需要引用什么 DLL?

标签 c# .net vb.net autocad

我有一个 VB winform 项目,我正在从 DWG 文件中的表格中读取数据。 通过这种方法,AutoCad 需要打开(使应用程序变慢)。

我发现下面的文章显示您可以使用不同的方法使用数据库对象(代表我们的内存绘图)但我不知道我需要引用什么 DLL能够使用这种方法。此方法使用的方法是:

using Autodesk.AutoCAD.DatabaseServices; --> 需要能够导入

此外,这篇文章来自 2006 年,使用的是 C#。现在有更好的方法吗?

提前致谢

Breaking it down-A closernLook at the C# code for importing blocks

最佳答案

如果您创建一个在 AutoCAD 中加载的 .DLL(使用 NETLOAD 命令或使用 PackageContents.xml/.bundle 文件夹),那么您需要 AutoCAD 安装文件夹中的以下引用:

  1. AcMgd.dll
  2. AcDbMgd.dll
  3. AcCoreMgd.dll(这是 AutoCAD 2013 及更新版本所必需的)

并确保所有引用都设置为 Copy Local = false,注意这很重要:-)

您可能遇到 .NET 版本问题,因此请确保您:

  • 适用于 AutoCAD 2010+ 的 .NET 3.5
  • 适用于 AutoCAD 2012+ 的 .NET 4.0
  • 适用于 AutoCAD 2015+ 的 .NET 4.5

如果您选择旧版本的 .NET,编译器可能会抛出错误,例如无法使用引用。如果您要开始,请查看 http://www.autodesk.com/myfirstautocadplugin

现在,如果您有外部应用程序 (.exe),则您不能使用上面的内容,而只能 COM 引用(也来自 AutoCAD 安装文件夹)

  1. Autodesk.AutoCAD.Interop.dll
  2. Autodesk.AutoCAD.Interop.Common.dll

但是对于这些 COM 互操作,您有不同的数据模型和不同的命名空间。此外,这已被弃用,这意味着它没有新功能。

关于c# - 尝试使用 Autodesk.AutoCAD.DatabaseService 从 DWG 中读取数据 我需要引用什么 DLL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30918833/

相关文章:

c# - 枚举值到字符串

.net - 调用堆栈和堆栈跟踪之间有什么区别?

javascript - 具有单个元素的 RegisterArrayDeclaration

vb.net - 从字符串 "."到类型 'Decimal' 的转换无效

c# - 如何反序列化子项直接位于根目录中的对象列表

c# - Xslt 看不到程序集引用

c# - 动态获取命令行输出

c# - 如何针对同一版本将多个.net框架作为目标

c# - C#执行定时任务

asp.net - 如何在 vb 中创建警报弹出消息?