- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对开发 AutoCAD 插件感兴趣,并试图了解几种不同类型的 AutoCAD 插件文件之间的关系:
据我所知,这三个文件都是相互关联的,并且一起工作来初始化和加载插件,我只是看不到透过树木看到森林关于每个文件的信息类型包含、加载哪些文件或依赖于其他文件等。
听起来插件的核心功能应该放在 ARX 文件中,并用 C++ 编写并针对 native /目标平台进行编译。
听起来就像在启动时,AutoCAD 加载其插件 DLL,这些都是托管 .NET 库(通常用 C# 编写),然后它们调用其 native /编译的相应 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 语言操作 native AutoCad 对象。如果您想使用 C# 创建 AutoCad 插件,那么您只需要使用 C# 进行编码。它对于开发速度很有帮助,但代码的性能会比 ARX 插件稍逊一筹。话虽这么说,我真的想强调它仍然非常快。由于性能问题,我还没有发现需要为 AutoCAD 使用 C++ 进行编码。总体而言,它非常强大且功能丰富。仅使用 C# 就可以很好地对绘图进行任何操作。
看看at this我最近给出的答案。它应该可以回答您有关 .Net 中 AutoCAD 插件开发入门的大部分(如果不是全部)问题。
ObjectARX API 与我所描述的 .NET API 非常相似,只不过您使用 C++ 进行编码。一些库还包括rxapi.lib
、accore.lib
、acgiapi.lib
、acdrawbridge.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/
AutoCAD 允许将 SPLINE 实体存储在仅由 拟合点,问题是,这样的样条定义有无限 数值正确的解决方案,Autodesk 不提供必要的 从给定的拟合点计算所需参数的信息。 tl;dr - 缺失
是否有用于解析 AutoCAD 文件(DWG 或 DXF)的库(最好是开源的)? 最佳答案 重复(或至少相关)Open source cad drawing (dwg) library in C# &
我看到了 v2.0: 75% there帖子提到 Autocad 并且有一个 AutoCADApp.cs文件,但我似乎找不到使用 Rubberduck 的引用在 Office 之外,在一些随机主机应用
我想提取 Autocad 文件的坐标(纬度、经度)和一些属性,例如名称和颜色。我可以通过 Java 程序执行此操作。 在 Autocad 中,哪种格式是正确的导出格式,以便我可以通过编程方式解析文件、
我使用 dot net 3.50 添加了一个 autocad,我引用了 autocad 2012 中的 acdbmgd.dll、acmgd.dll我该怎么做才能让它在 autocad 2010 和 a
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 3年前关闭。 Improve thi
这可能是我一直想念的简单的东西,但是...... 我可以获得实体名称,但是是否可以使用分配给变量的实体名称来让 Autocad 命令使用该实体作为要操作的选定对象? 最佳答案 要在“立即”模式下使用,
我开发了一个外部 WPF 应用程序来用 C# 生成绘图。我已经能够使用 Autodesk.AutoCAD.Interop 绘制、标注尺寸、添加 block 以及应用程序所需的所有其他内容,但是我似乎无
我已经运行 win32com 来访问 AutoCAD 相当长一段时间了,没有出现任何问题。我了解到应用 makepy 实用程序可以在交互式提示下创建更加用户友好的体验,因此我运行它并添加了“AutoC
我有一个 Autocad 绘图,它是一个土地方 block 的平面图,每个方 block 都包含一个数字。 我尝试通过选择将其转换为图像:文件->导出数据->和文件格式位图(bmp)。 (我有 Aut
我有一个三角形作为折线,我想画一个高度。我发出命令 "line"或 "_line"正确的点,但 AutoCAD 绘制从顶点到相邻顶点的线。 不只是在 AutoLISP 中,AutoCAD 不允许我在折
我想使用代码来分析 dwg 文件。任何人都知道任何 SDK 工具可以开始使用吗? 最佳答案 来自 Wikipedia : Autodesk 根据选择性许可条款销售名为 RealDWG 的读/写库,用于
本文为大家分享了AutoCAD .Net禁止图元被删除的具体代码,供大家参考,具体内容如下 禁止图元被用户删除可以通过 ObjectOverrule 实现。 以下代码: 1、命令 AddEra
我正在使用 C# 编写 AutoCAD 插件,需要在阴影对象的中间(例如,圆心)显示阴影属性。我在代码中有两个问题: 如何访问圆心? 如何获取hatch的属性? 我在 autocad 中的这一行遇到错
我正在研究一个autoCAD .net项目,在其中创建了MVVM模式以选择和修改实体。我想将所选实体的信息/值存储到 View 模型中,更改信息/值(通过弹出的WPF UI以及我的代码),然后将更改应
我正在实现一个应用程序,该应用程序在 AutoCAD 的 ObjectARX 界面中使用 COM 来自动执行绘图操作,例如打开和另存为。 根据文档,我应该能够调用 AcadDocument.SaveA
我对开发 AutoCAD 插件感兴趣,并试图了解几种不同类型的 AutoCAD 插件文件之间的关系: 随 AutoCAD 插件一起提供的托管 DLL ARX files附带 AutoCAD 插件 CU
我正在使用 C#.NET 编写 AutoCAD 插件。我需要一种方法来将 Table.IsReadEnabled 和 Table.IsWriteEnabled 设置为 true。我有一个名为 addR
使用 ObjectARX (C++) for AutoCAD 2010,AutoCAD 实体可以序列化吗? 我们需要将序列化的实体保存在数据库(Oracle、PostgreSQL 等,不是 AcDbD
我正在尝试制作一个表格,当用户提交更多数据时动态添加行: public void addRow(String[] data) { Transaction tr = doc.TransactionMan
我是一名优秀的程序员,十分优秀!