尝试使用Autodesk.AutoCAD.DatabaseService从DWG读取数据我需要引用哪些DLL?

问题描述:

我有一个VB的winform项目,我正在读取DWG文件中的表格中的数据。 通过此方法AutoCad需要打开(使应用程序更慢)。尝试使用Autodesk.AutoCAD.DatabaseService从DWG读取数据我需要引用哪些DLL?

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

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

而且文章是从2006年和C#。现在有没有更好的方法?

在此先感谢

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

+1

您已标记'libredwg',但提及Autodesk命名空间(您不会这样做)*。如果您正在使用Autodesk的代码(需要RealDWG或已安装的AutoCAD),请参阅'acdbmgd'。 – crashmstr

+0

@crashmstr谢谢对于答案是我正确编辑我的问题并删除了libredwg。您是否知道在文章中提及使用数据库方法比在AutoCAD编辑器中加载图形更快? – CodeEngine

+1

如果您不需要与AutoCAD内部的用户进行交互(例如拾取点等),那么直接使用数据库可能会更快,因为您没有加载所有编辑器和其他用户界面元素在AutoCAD中。 – crashmstr

  1. AcDbMgd.dll代表 “AutoCAD的数据库管理的”,并在它的内部是DWG(又名数据库)操纵的对象。
  2. AcMgd.dll代表“AutoCAD Managed”,其内部是可用于获取当前活动DWG的数据库对象的对象。
  3. 将“复制本地”设置为False,因为AutoCAD自带有相同DLL的副本。

您可以从ObjectArx库中获得DLLS,它们是here。当你安装它们时,会有你需要的dll。

AutoCAD`s Developers Guide最新的“如何”的例子和解释。

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

  1. AcMgd.dll
  2. AcDbMgd.dll
  3. AcCoreMgd.dll(这是必需的AutoCAD的2013年和更新)

,并确保所有的引用都设置为复制本地=假,注意这是性重要NT :-)

您可能必须与.NET版本的问题,所以请确保您有:

  • .NET 3.5的AutoCAD 2010+
  • .NET 4.0为AutoCAD 2012+
  • .NET 4.5 for AutoCAD 2015+

而且,如果您选择旧版本的.NET,编译器可能会抛出错误,就像不能使用引用。如果你开始,请http://www.autodesk.com/myfirstautocadplugin

检查现在,如果你有一个外部应用程序文件(.exe),那么你就不能使用上面,但只有的COM引用(也从AutoCAD安装文件夹)

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

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

+0

嘿@Augusto谢谢你的回答。我在AutoCAD 2013中使用.NET 4创建Windows窗体,当您单击按钮时,通过使用AutoCAD从图形中获取数据。我能够做到这一点,但我想使用数据库方法,因为它似乎工作得更快。我已经添加了您提到的3个.dll,但最快的我将这些库设置为将本地复制为False我得到错误“acdbmgd.dll必须很强才能被标记为先决条件”,与accoremgd相同。你认为我需要知道什么才能使其工作? – CodeEngine

+2

AutoCAD引用不强签名,这可能是这里的问题......你签名你的DLL?通常在.NET项目上没有什么特别之处,只要确保你有一个“类库”,其引用为“复制本地”为假。正如你提到的数据库处理,请检查这篇文章:http://adndevblog.typepad.com/autocad/2012/04/batch-process-in-memory-1.html –

+1

当我说“签名”的DLL我的意思是像此图片:http://i.stack.imgur.com/k0VFo.png –