3

我使用 dot net 3.50 制作了一个 autocad 插件,并且我从 autocad 2012 中引用了 acdbmgd.dll、acmgd.dll 如果我应该引用 acdbmgd.dll、acmgd,我该怎么做才能使其在 autocad 2010 和 autocad 2011 上运行。来自autocad 2010 的dll 在我只有autocad 2012 时我在哪里可以得到这个dll

4

4 回答 4

5

我在 AutoCAD 2010 中使用 2008 库取得了一些成功,因此使用 AutoCAD 2010 中的库可能是您最好的选择,尽管不能保证有效。这将取决于你在做什么。

您可以从Autodesk 开发人员中心(位于页面底部)下载这些库作为 ObjectARX 2010 软件包的一部分。如果需要,您还可以从那里获得 ObjectARX 2011。

于 2012-02-17T23:44:38.720 回答
4

AutoLISP 是我长期使用 AutoCAD 附加组件的最佳运气。我有我在 1995 年编写的工具,这些工具现在仍然很强大,没有任何修改。

于 2012-03-23T03:28:56.633 回答
1

.Net API 比 ActiveX 更兼容,但仍有一些差异。

您始终可以使用反射来调用函数(按名称调用它们),但是需要进行大量检查,并且拥有您的应用程序需要做很多工作。在所有版本上都以相同的方式做出反应。

您最好的选择(至少我会做的)是为您想要的每个功能制作一个包装类。例如,我会创建一个“MyCircle”类来操作圆,然后在这个类中创建一个通用函数(例如:“ChangeThickness(int newThickness)”),并在其中编写反射代码,这样你就可以根据安装的 AutoCAD 版本控制调用方式(例如,不调用某个版本的 AutoCAD 中的特定函数,因为它包含错误)。这将创建一个可扩展层,您将能够在所有版本的 AutoCAD 中重复使用它,并且您将能够支持 API 中的任何更改。

于 2012-10-16T12:59:58.917 回答
0

我在 2012 年和 2013 年这样做。它们之间存在一些差异。

我通常开始两个项目,一个使用 2012 Acad.NET 向导,另一个使用 2013 Acad .NET 向导。

同时更新两者

大多数情况下它只是复制粘贴在某些情况下它会有所不同,其中 2013 API 已经发展,例如在 Civil3d 2012 中没有任何 Co-Go 点 api,而在 2013 年他们已经添加了所以在这种情况下我需要更改代码很少2013 年开始工作。

于 2013-01-16T05:27:37.580 回答