代码之家  ›  专栏  ›  技术社区  ›  smeeb

AutoCAD插件开发示例

  •  2
  • smeeb  · 技术社区  · 7 年前

    我对开发AutoCAD插件感兴趣,并试图了解几种不同类型的AutoCAD插件文件之间的关系:

    从我能告诉你的情况来看,这三个文件都是相互关联的,它们一起工作来初始化和加载插件,我只是没有看到 穿过树林的森林 至于每个文件类型包含哪些信息,哪些文件加载或依赖于其他文件,等等。

    声音 插件的核心功能应该放在ARX文件中,用C++编写,并为本机/目标平台编译。

    它也 声音 例如,在启动时,AutoCAD加载其插件DLL,这些DLL都是受管理的。NET库(通常用C#编写),然后它们调用各自的本机/编译的ARX文件。至于CUIX文件在哪里起作用,我仍然不知道。

    谁能帮我解释一下这种关系吗;这些文件的依赖关系,以及其中包含哪些类型的代码/逻辑/数据? 提前感谢!

    1 回复  |  直到 7 年前
        1
  •  4
  •   Nik    6 年前

    AutoCAD核心库都是用非托管代码编写的(我相信是C++)。最终,无论您选择何种API来开发插件,您都将通过这些核心库中的一个API来操作非托管AutoCAD对象。除了您提到的三种类型的文件之外,还有许多其他方法可以为AutoCAD创建插件。一些示例包括:Lisp脚本、VBA脚本、COM客户端(VB、Java、Delphi)。其中大多数现在已经过时了,而且这些天已经过时了。Net和C++(ObjectARX)API是最流行的。然而,出于遗留原因,其余部分仍在使用。如果你要启动一个新模块,你可以使用其中任何一个。Net或ARX。

    .NET API 是一组。NET包装器库,用于包装ObjectARX API。最常见的DLL是 accoremgd.dll , acdbmgd.dll acmgd.dll ,但还有其他的。这些库允许您通过操作本机AutoCad对象。NET语言。如果要在C#中为AutoCad创建插件,则只需在C#中编码。这对于开发速度来说是很好的,但是您的代码的性能将略低于ARX插件。尽管如此,我真的想强调的是,它仍然非常快。由于性能问题,我没有发现需要为AutoCAD编写C++代码。总的来说,它功能强大,功能丰富。仅使用C语言就可以很好地处理图形。

    看一看 at this 我最近给出的答案。它应该能够回答您关于在中开始AutoCAD插件开发的大部分问题(如果不是全部的话)。网

    ObjectARX API 与我描述的非常相似。NET API,除非您使用C++编写代码。一些图书馆包括 rxapi.lib , accore.lib , acgiapi.lib , acdrawbridge.lib 以及其他一些人。使用C++进行开发比使用C#时要麻烦得多,但C++代码运行得更快,尽管不是很大幅度。

    铜氧化物 文件生活在一个完全不同的星系中。它们用于自定义UI和其他相关内容。你可以 browse various uses of cuix files here .

    你的选择将真正取决于你在做什么。如果您正在编写能够以尽可能快的速度批处理数十万个图形的代码,那么您将需要探索C++API。如果您只处理数百个图形或为用户创建一系列命令,我强烈建议您使用C#API。这是值得的性能小击中,几乎永远不会察觉到用户。

    欲了解更多信息, go to this AutoDesk link ,然后向下滚动到培训实验室。我建议您至少通读ObjectARX和。NET培训实验室。一旦你选择了你想用的东西,就要为你选择的那一个去所有的实验室。稍后你会感谢自己,因为你将节省无数个小时的头痛和沮丧!

    祝你好运