CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

注册适用的程序命名空间

2022-12-31 08:25| 发布者: admin| 查看: 251| 评论: 0|来自: AutoCAD

水平

要求

适用于

ObjectARX、.NET 和 ObjectDBX 模块

程序命名空间是一个相当广泛的定义,用于加载的应用程序可以在其中进行条目以注册特定对象、数据或入口点。如果要将元素添加到其他应用程序也可能在其中添加元素的容器,则很可能是适用的命名空间。值得注意的例外包括菜单标签和其他用户界面构造。

除了逻辑应用程序名称外,适用的程序命名空间还包括:

AcRx 注册的类名

使用 ObjectARX 运行时可识别类工具的类的名称在加载 ObjectARX 应用程序时注册。尝试在单个程序会话中注册类名两次会阻止应用程序加载。如果由不同供应商提供的两个应用程序具有公共类名,则它们将相互排除,直到其中一个应用程序使用不同的类名重新发布。为避免冲突,已注册的类必须具有唯一的名称。

例如:

class WxyzDataObject : public AcDbObject { ...

class WxyzVanity : public AcDbEntity { ...

对象类 DXF 名称

注意:在 AutoCAD 2000 之前发布的类是此规则的例外。

新的根级字典条目

命名对象字典的根级别中的条目名称应以唯一前缀开头。如果应用程序需要使用命名对象字典,则应创建对象的单个根级条目,该条目又可能拥有与应用程序相关的其他对象。此类条目可以是任何相应对象类的实例,无论是自定义的还是内置的。AutoCAD通常使用实例。然后,应用程序可以使用任何名称键在此容器对象中自由构造所需的任何结构。不需要为嵌套在字典或应用程序维护的类似容器中的对象添加前缀,除非希望容器由用户或其他应用程序操作。在这种情况下,容器将定义另一个全局命名空间。AcDbDictionary

不是由应用程序创建的字典的所有添加项

如果将命名对象添加到不是由应用程序创建的字典中,请考虑在键和名称前面加上唯一名称,除非用户指定名称。

例如:

;; AutoLISP
(dictadd enameDict "WXYZ_Dict" enameXRecord);

// ObjectARX
pDictionary->setAt(ACRX_T("WXYZ_Dict"), pXRecord, idXRecord);

符号表条目

若要避免用户指定的条目与应用程序管理供内部使用的条目之间的名称冲突,请考虑向应用程序管理的所有符号表中的条目添加唯一前缀。

AutoCAD 根路径下的系统注册表路径

如果在 AutoCAD 根路径下创建注册表路径(例如,用于存储应用程序数据),请考虑向条目添加唯一前缀。

用于编程的命令名称

为每个命令创建至少一个具有唯一前缀的版本。每当从用户界面或应用程序调用自己的命令时,请使用此版本。为方便用户,您可以提供不带唯一前缀的命令版本。

例如:

;; AutoLISP
(defun C:WXYZTILE ()
    (princ "\nDo Something!")
)

AcEd 注册的命令和组名称

命令组名称应以唯一前缀开头,以允许跨命令组搜索唯一的命令名称。对于命令名称,唯一前缀是可选的。

例如:

acedRegCmds->addCommand(ACRX_T("WXYZBathroom"), 
   ACRX_T("WXYZVANITY"), // Unique global name 
   ACRX_T("VANITY"), // Name for localization 
   ACRX_CMD_MODAL, 
   lpfnVanityCommand);

Global document symbols for LISP

If you are creating global document symbols, consider appending a prefix to the symbol's name.

For example:

*WXYZ-GLOB*

Summary info

The top level of any directory path added to the AutoCAD search paths should start with a unique prefix. (In other words, subdirectories do not need to repeat it.) Any file added to the search paths should include a unique prefix in its file name to prevent conflicts between directories.

For example:

C:\Program Files
  Autodesk
    AutoCAD 2021
      Fonts
      Sample
      Support
        WXYZBathroom
          Sinks
          Countertops
          Fonts
  Common Files
    Autodesk Shared
      WXYZBathroomEnu24.dbx
      WXYZBathroomDeu24.dbx
      AcmeEntities24.dbx

如果应用程序必须将公共文件放置在 %PATH% 环境变量中尚未列出的位置,请将单独的位置追加到 %PATH% 设置中。不要将包含产品相关文件的目录添加到路径中,例如 ObjectARX 应用程序。

自定义元素 ID、文件名和组标识符

自定义元素 ID、组名称和文件名应以唯一前缀开头。请记住,假定关联的上下文帮助文件名为 <CUSTOMIZATIONGROUP>.chm

将命令的前缀版本与添加到用户界面的元素结合使用。

帮助文件名

帮助文件名应以唯一前缀开头,因为它们将位于 AutoCAD 库搜索路径中。

特定于应用程序的 CHM 文件也应以唯一的前缀开头。在添加新命令之前,请执行检查以查看命令名称是否已存在。命令及其帮助说明应包含在对与该命令相关的应用程序名称的引用中。

支持文件

考虑为每个特定于您的应用程序的支持文件添加唯一的前缀:DWT 文件、自定义填充图案和线型、块等。


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部