sme*_*eeb 2 .net c# dll autocad objectarx
我对开发 AutoCAD 插件感兴趣,并试图了解几种不同类型的 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.dll、acdbmgd.dll和acmgd.dll,但还有其他一些。这些库允许您通过 .NET 语言操作本机 AutoCad 对象。如果您想使用 C# 创建 AutoCad 插件,那么您只需要使用 C# 进行编码。它对于开发速度很有帮助,但代码的性能会比 ARX 插件稍逊一筹。话虽这么说,我真的想强调它仍然非常快。由于性能问题,我还没有发现需要为 AutoCAD 使用 C++ 进行编码。总体而言,它非常强大且功能丰富。仅使用 C# 就可以对绘图做任何事情。
看看我最近给出的这个答案。它应该可以回答您有关 .Net 中 AutoCAD 插件开发入门的大部分(如果不是全部)问题。
ObjectARX API与我所描述的 .NET API 非常相似,只不过您使用 C++ 进行编码。一些库包括rxapi.lib、accore.lib、acgiapi.lib以及acdrawbridge.lib其他一些库。使用 C++ 进行开发比使用 C# 开发要麻烦得多,但 C++ 代码运行速度更快,尽管差距不是很大。
CUIX文件存在于完全不同的星系中。它们用于自定义 UI 以及其他相关内容。您可以在此处浏览 cuix 文件的各种用途。
您的选择实际上取决于您正在做什么。如果您正在编写能够尽快批量处理数十万张绘图的代码,您将需要探索 C++ API。如果您只处理数百张绘图或只是为用户创建一堆命令,我强烈建议您使用 C# API。用户几乎察觉不到的性能小影响是值得的。
有关详细信息,请访问此 AutoDesk 链接,然后向下滚动到培训实验室。我建议您至少通读一下 ObjectARX 和 .NET 培训实验室。一旦您选择了要使用的内容,请浏览所有实验室以选择您所选择的实验室。稍后您会感谢自己,因为您将节省无数个小时的头痛和沮丧!
祝你好运!