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

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

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

这篇文章也来自2006年和C#。现在有更好的方法吗?

提前致谢

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

最佳答案

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


AcMgd.dll
AcDbMgd.dll
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安装文件夹)


Autodesk.AutoCAD.Interop.dll
Autodesk.AutoCAD.Interop.Common.dll


但是对于这些COM互操作,您具有不同的数据模型和名称空间。另外,不建议使用此功能,这意味着没有新功能。

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

10-14 11:10