扩展数据由一个或多个 1001 组组成,每个组都以唯一的应用程序名称开头。应用程序名称是字符串值。返回的扩展数据组按照定义数据在数据库中的保存顺序跟随定义数据。acdbEntGetX()
在每个应用程序的组中,数据的内容、含义和组织由应用程序定义;AutoCAD 会保留信息,但不使用它。扩展数据的组码范围为 1000–1071,如下所示:
- 字符串
-
1000. 扩展数据中的字符串最长可达 255 字节(第 256 个字节保留用于空字符)。
- 应用程序名称
-
1001(也是一个字符串值)。应用程序名称最长可达 31 个字节(第 32 个字节保留用于空字符),并且必须遵守符号表名称(例如图层名称)的规则。应用程序名称可以包含字母、数字和特殊字符 $(美元符号)、-(连字符)和 _(下划线)。它不能包含空格。名称中的字母将转换为大写。
一组扩展数据不能由没有其他数据的应用程序名称组成。
删除扩展数据
- 调用以检索实体。acdbEntGet()
- 将 aof -3 的 resbuf 添加到列表的末尾。acdbEntGet()restype
- 将另一个带有 aof 1001 的 resbuf 添加到列表的末尾,并设置为 <>。restyperesval.rstringappname
如果尝试向现有实体添加 1001 组但没有其他扩展数据,则会忽略该尝试。如果尝试使实体的唯一扩展数据组是单个 1001 组,则尝试将失败。
- 图层名称
-
1003. 与扩展数据相关联的图层的名称。
- 数据库句柄
-
1005. 图形数据库中图元的句柄。在某些情况下,AutoCAD 会翻译这些内容。
- 3D 点
-
1010.三个实值,包含在一个点中。
- 真正
-
1040.真正的价值。
- 整数
-
1070. 16 位整数(有符号或无符号)。
- 长
-
1071. 一个 32 位有符号(长)整数。如果 1071 组中出现的值是短整数或实数,则将其转换为长整数;如果无效(例如字符串),则将其转换为长零 (0L)。
- 控制字符串
-
1002. 扩展数据控制字符串可以是“{”或“}”。这些大括号使应用程序能够通过将数据细分为列表来组织其数据。左大括号开始一个列表,右大括号终止最近的列表。(列表可以嵌套。读取扩展数据时,AutoCAD 会进行检查以确保正确平衡大括号。
- 二进制数据
-
1004. 二进制数据被组织成可变长度的块,可以在 ObjectARX 中使用结构进行处理。每个区块的最大长度为 127 字节。ads_binary
- 世界空间位置
-
1011.与简单的 3D 点不同,世界空间坐标与扩展数据所属的父实体一起移动、缩放、旋转和镜像。当 STRETCH 命令应用于父实体并且此点位于选择窗口中时,世界空间位置也会被拉伸。
- 世界空间位移
-
1012. 与父项一起缩放、旋转或镜像但未拉伸或移动的 3D 点。
- 世界方向
-
1013. 也是与父项一起旋转或镜像但未缩放、拉伸或移动的 3D 点。世界方向是始终具有单位长度的归一化位移。
- 距离
-
1041. 与父实体一起缩放的实际值。
- 比例因子
-
1042. 也是随父级缩放的实际值。
注意:
如果列表中出现 1001 组,则该组将被视为字符串,并且不会开始新的应用程序组。
|