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


AutoCAD插件附带的托管DLL
ARX files与AutoCAD插件一起提供
CUIX files与AutoCAD插件一起提供


据我所知,这三个文件都是相互关联的,并且一起工作以初始化和加载插件,我只是没有看到树林中每种文件类型包含哪些信息,加载或取决于哪个文件的信息。其他等等

听起来插件的核心功能应该放在ARX文件中,并用C ++编写并针对本机/目标平台进行编译。

听起来,在启动时,AutoCAD会加载其插件DLL,它们都是托管的.NET库(通常用C#编写),然后依次调用其本机/已编译的ARX文件。至于CUIX文件在哪里起作用,我仍然不知道。

谁能帮助解释这些文件的关系和依赖性,以及其中包含哪些类型的代码/逻辑/数据?提前致谢!

最佳答案

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

.NET API是一组包装ObjectARX API的.NET包装器库。您将引用的最常见的dll是accoremgd.dllacdbmgd.dllacmgd.dll,但还有其他。这些库使您可以通过.NET语言来处理本地AutoCad对象。如果要在C#中为AutoCad创建插件,则只需要在C#中进行编码。这对于提高开发速度非常有用,但是您的代码性能将略逊于ARX插件。话虽这么说,我真的想强调一点,它仍然很快。由于性能问题,我没有发现需要使用C ++ for AutoCAD进行编码。总体来说,它非常强大且功能丰富。仅使用C#,您就可以对图形做任何事情。

看看我最近给出的at this答案。它可以回答有关.Net的AutoCAD插件开发入门的大部分(如果不是全部)问题。

除了使用C ++进行编码外,ObjectARX API与我为.NET API所描述的非常相似。一些库包括rxapi.libaccore.libacgiapi.libacdrawbridge.lib以及其他一些库。与使用C#相比,使用C ++进行开发要麻烦得多,但是C ++代码运行得更快,尽管幅度不大。

CUIX文件生活在一个完全不同的星系中。它们用于自定义UI以及其他相关内容。您可以browse various uses of cuix files here

您的选择将真正取决于您在做什么。如果编写的代码将尽可能快地批量处理成千上万的图形,那么您将需要探索C ++ API。如果您仅处理数百个工程图或仅为用户创建一堆命令,我强烈建议您使用C#API。值得的一点是,性能几乎不会被用户察觉到。

有关更多信息,请go to this AutoDesk link,然后向下滚动到培训实验室。我建议您至少通读ObjectARX和.NET培训实验室。选择要使用的内容后,请通过所有实验室进行选择。稍后,您将多谢自己,因为您将节省数小时的头痛和挫败感!

祝好运!

关于c# - AutoCAD插件开发示例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47717868/

10-11 04:45