CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2020 开发者帮助

自定义用户界面 (CUI) 托管 API (.NET)

2024-5-18 18:25| 发布者: admin| 查看: 82| 评论: 0|原作者: admin|来自: AutoCAD

自定义用户界面 (CUI) 托管 API (.NET)

许多用户界面图元都可以在 AutoCAD 程序中使用自定义用户界面 (CUI) 对话框或 CUI 托管 API 进行自定义。

自定义用户界面 (CUI) 对话框允许用户以交互方式创建和修改 AutoCAD 图形环境中显示的许多用户界面图元,而开发人员可以随时使用 CUI 托管 API 自定义用户界面。

您可以将 CUI 托管 API 用于以下类型的应用程序:

  • 插件应用程序。在 AutoCAD 应用程序环境中运行并利用 AutoCAD 系统变量和其他运行时 API 的应用程序。插件可以对 AutoCAD 用户界面的任何方面进行更改,包括工作空间、工具栏、菜单和快捷方式,但大多数更改不会立即发生。
  • 独立应用程序。使用 API,但不需要访问任何特定于 AutoCAD 的数据的应用程序。例如,不需要读取或写入系统变量数据或将消息发布到 AutoCAD 命令行的应用程序。

有关用户界面、自定义文件和图元层次结构的概述,请参见 AutoCAD 帮助系统中的“关于用户界面自定义”。

开始

CUI 托管 API 提供了一个用于创建和操作 CUIx 文件的界面,并且不需要运行 AutoCAD。但是,当 API 在 AutoCAD 程序外部使用时,您的程序将无法访问 AutoCAD 运行时数据或其他运行时 API。

如果无法访问 AutoCAD 系统变量,则访问 AutoCAD 主文件和企业级 CUIx 文件可能会很棘手。主文件通常位于 C:\Documents and Settings\<users 配置文件>\Application Data\Autodesk\AutoCAD <release>\<version>\<language>\Support 文件夹中。在升级或用户为其自定义文件指定非默认路径时,对 CUIx 文件的位置进行硬编码会导致问题。

AcCui.dll文件包含 CUI 托管 API,位于 AutoCAD 安装目录中。将 AcCui.dll 文件引用到项目后,导入命名空间以访问 API 的类。Autodesk.AutoCAD.Customization

有关参照 AutoCAD Managed API 的库文件的信息,请参见“AutoCAD .NET API (.NET) 的组件”。

加载 CUIx 文件

必须通过将完整路径和文件名传递给类的构造函数来加载现有 CUIx 文件。这将解析文件并使用当前接口元素填充对象。在集合中包含大部分此类数据。CustomizationSectionMenuGroup

创建 .NET 插件时,可以从 MENUNAME 系统变量中检索 AutoCAD CUIx 主文件的完整路径。由于此系统变量返回的文件名不带扩展名,因此必须将扩展名显式添加到返回字符串中。除了主 CUIx 文件之外,还可以加载可选的企业级菜单。可从 ENTERPRISEMENU 系统变量访问加载的企业级菜单 CUIx 文件的名称。如果未加载企业级菜单 CUIx 文件,则将值 “.” 分配给 ENTERPRISEMENU 系统变量。.cuix

以下示例演示了如何获取主 CUIx 文件的完整路径。

VB.NET
Dim sMainCuiFile As String = Application.GetSystemVariable("MENUNAME")
sMainCuiFile = sMainCuiFile & ".cuix"
Dim oCs As CustomizationSection = New CustomizationSection(sMainCuiFile)
C#
string sMainCuiFile = (string)Application.GetSystemVariable("MENUNAME");
sMainCuiFile += ".cuix";
CustomizationSection oCs = new CustomizationSection(sMainCuiFile);

加载部分 CUIx 文件

部分 CUIx 文件是主文件或企业 CUIx 文件的有用扩展。这些可以与自定义部分中的 PartialCUIFiles 集合一起加载。此集合提供完整路径和文件名,扩展名为 .cuix。加载部分 CUIx 文件时,应用程序会评估 中的条目,以确保使用文件的完整路径。PartialCUIFileCollection

最好在部分 CUIx 文件中添加和删除工具栏和菜单,以保持应用程序自定义项的分离。在部分 CUIx 文件中定义唯一的菜单组,以避免与其他菜单组发生命名冲突。主 CUIx 文件中的默认组为“ACAD”。


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2025-1-19 06:42

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部