CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

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

2023-1-1 08:20| 发布者: admin| 查看: 929| 评论: 0|来自: AutoCAD

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

许多用户界面元素都可以在 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 文件

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

创建 .NET 插件时,可以从 MENUNAME 系统变量中检索主 AutoCAD CUIx 文件的完整路径。由于此系统变量返回不带扩展名的文件名,因此必须将扩展名显式添加到返回字符串中。除了主 CUIx 文件之外,还可以加载可选的企业菜单。可以从企业菜单系统变量访问加载的企业菜单 CUIx 文件的名称。如果未加载企业菜单 CUIx 文件,则将值“.”分配给企业菜单系统变量。.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 文件或企业 CUIx 文件的有用扩展。这些可以在自定义部分中与PartCUIFiles集合一起加载。此集合提供扩展名为 .cuix的完整路径和文件名。加载部分 CUIx 文件时,应用程序将评估来自 的条目,以确保正在使用文件的完整路径。PartialCUIFileCollection

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


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-19 13:19

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部