CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

X记录对象

2023-1-1 01:57| 发布者: admin| 查看: 252| 评论: 0|来自: AutoCAD

xrecord 对象是 DXF 名称为 “” 的内置对象类,用于存储和管理任意数据流,在外部表示为结果缓冲区列表,该列表由具有“普通对象”组(即非 xdata 组代码)的 DXF 组组成,范围从 1 到 369。XRECORD

Xrecord 对象是供 ObjectARX 和 AutoLISP 应用程序使用的通用对象。此类允许应用程序创建和存储与实体完全分开的非图形信息的任意结果缓冲区列表的任意对象结构。所有应用程序定义对象的根所有者是命名对象字典,它接受任何类型作为条目,包括,或任何对象的扩展字典。AcDbObjectAcDbXrecord

应用程序应在命名对象字典中使用唯一的条目名称。使用命名对象字典或扩展字典条目名称的逻辑类似于 REGAPP 名称的逻辑。事实上,在将应用程序定义的对象追加到数据库或特定对象时,REGAPP 名称非常适合用作条目名称。

xrecord 对象的使用大大简化了当前将 xdata 分配给实体的做法。由于 xrecord 对象不需要与实体链接,因此不再需要在冻结层上创建虚拟实体(虚拟实体通常用于为 xdata 提供更多空间)或实体。

应用程序可以使用 xrecord 对象执行以下操作:

  • 保护信息免受层的不加选择的清除或解冻,这始终对存储在 xdata 中的非图形信息构成威胁。
  • 利用对象所有权/指针引用字段 (330–369) 来维护内部数据库对象引用。任意句柄值完全不受对象 ID 转换机制的约束。这与 1005 个 xdata 组相反,后者在某些情况下被转换,但在其他情况下则不被转换。
  • 不受每个对象 16K xdata 容量限制的影响。如果愿意,也可以使用此对象代替特定实体和对象的 xdata,但要了解,无论您在哪里存储 xrecord 对象,它们都没有内置的大小限制,除了有符号 32 位整数范围强加的 2 GB 限制。

    在特定于对象的状态的情况下,xrecord 对象非常适合存储大量存储的信息,而 xdata 更适合存储少量数据。

在构建 xrecord 对象的层次结构(添加对对象的所有权或指针引用)时,该对象必须已存在于数据库中,因此具有合法的实体名称。因为不返回实体名称,并且只识别图形对象,您必须使用如果您引用非图形对象。acdbEntMake()acdbEntLast()acdbEntMakeX()

该函数返回添加到数据库的对象的实体名称(图形或非图形)。如果正在创建的对象是实体或符号表记录,则其行为与(换句话说,它将创建对象并建立对象的所有权)相同。对于所有其他对象类型,将对象追加到数据库,但不建立所有权。acdbEntMakeX()acdbEntMakeX()acdbEntMake()acdbEntMakeX()


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部