CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2023 开发者帮助

关于扩展数据组代码 (AutoLISP)

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

关于扩展数据组代码 (AutoLISP)

扩展数据由一个或多个 1001 组代码组成,每个代码都以唯一的应用程序名称开头。

返回的 xdata 组按照它们在数据库中的保存顺序遵循定义数据。在每个应用程序的组中,数据的内容、含义和组织由应用程序定义。AutoCAD 会维护信息,但不会使用它。该表还显示 xdata 的组代码在 1000-1071 范围内。其中许多组代码适用于熟悉的数据类型,如下所示:entget

字符串

1000. 扩展数据中的字符串长度最多为 255 个字节(第 256 个字节保留给 null 字符)。

应用程序名称

1001(也是一个字符串值)。应用程序名称的长度最多为 31 个字节(第 32 个字节保留给 null 字符),并且必须遵守符号表名称(例如图层名称)的规则。应用程序名称可以包含字母、数字和特殊字符 $ (美元符号)、 - (连字符)和 _ (下划线)。它不能包含空格。

图层名称

1003. 与 xdata 关联的图层的名称。

数据库句柄

1005. 图形数据库中实体的句柄。

3D 点

1010. 三个实数值,包含在一个点中。

真正

1040. 真正的价值。

整数

1070. 16 位整数(有符号或无符号)。

1071. 32 位有符号(长)整数。如果 1071 组代码中显示的值是短整数或实数值,则将其转换为长整数;如果它无效(例如,字符串),则将其转换为长零 (0L)。

注意:AutoLISP 将 1071 个组代码作为实值进行管理。如果用于检索包含 1071 组代码的实体定义列表,则该值将作为实数返回,如以下示例所示:entget
(1071 . 12.0)

如果要在具有 或 的实体中创建 1071 组代码,可以使用实数值或整数值,如以下示例所示:entmakeentmod

(entmake '((..... (1071 . 12) .... )))
(entmake '((..... (1071 . 12.0) .... )))
(entmake '((..... (1071 . 65537.0) .... )))
(entmake '((..... (1071 . 65537) .... )))

但是 AutoLISP 仍然将组代码值作为实数返回:

(entmake '((..... (1071 . 65537) .... )))

前面的语句返回以下内容:

(1071 . 65537.0)

ObjectARX 和托管 .NET 始终将 1071 个组代码作为长整数进行管理。

在此上下文中,其他几个扩展数据组代码具有特殊含义(如果应用程序选择使用它们):

控制字符串

1002. xdata 控制字符串可以是 或 。这些大括号使应用程序能够通过将数据细分为列表来组织其数据。左大括号开始一个列表,右大括号终止最近的列表。列表可以嵌套。"{""}"

注意:如果列表中出现 1001 组代码,则将其视为字符串,并且不会开始新的应用程序组代码。
二进制数据

1004. 组织成可变长度块的二进制数据,可以在 ObjectARX 和 Managed .NET 中使用该结构进行处理。每个块的最大长度为 127 字节。ads_binary

注意:AutoLISP 不能直接处理二进制块,因此适用于长 (1071) 组代码的相同预防措施也适用于二进制组代码。
世界空间位置

1011. 与简单的 3D 点不同,WCS 坐标与扩展数据所属的父实体一起移动、缩放、旋转和镜像。当 AutoCAD STRETCH 命令应用于父图元时,当该点位于选择窗口内时,WCS 位置也会拉伸。

世界空间 - 位移

1012. 与父项一起缩放、旋转或镜像但未拉伸或移动的 3D 点。

世界方向

1013. 与父项一起旋转或镜像,但未缩放、拉伸或移动的 3D 点。WCS 方向是始终具有单位长度的归一化位移。

距离

1041. 与父实体一起缩放的实际值。

比例因子

1042. 也是一个与父级一起缩放的实际值。


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-6-27 16:17

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部