世界看点:【AutoLISP】图元的扩展属性(XDATA)创建与查看及APP创建
来源:哔哩哔哩    时间:2023-05-07 15:59:51

AutlLisp版本:Visual LISP 2024 (zh)  

扩展属性(XDATA)是图元中嵌入的为APP服务的数据。

本文初步讲解图元的扩展属性(XDATA)创建与查看及APP创建,分为以下3个部分:


(资料图片)

图元扩展属性(XDATA)的查看

APPID创建

带有扩展属性的图元创建

一、图元扩展属性(XDATA)的查看

仅对<图元名>进行 (entget) 无法查看扩展属性(XDATA):

想要查看扩展属性,需要在entget后附APP名称:

其中,组码 -3 项即为扩展属性。若未查到扩展属性,则会返回 nil。

对其采用如下方法单独提取:

APPID为"ACAD"时,表示AutoCAD默认自用的Application,常见于标注,对原始标注样式进行覆盖。

二、APPID创建

扩展属性是为APP服务的,在创建扩展属性图元前,要先创建APP。创建方法二选一:

1)regapp

2)entmake

AutoCAD中,APP属于Table Section,可以用(tblsearch)查看:

可见,两种方法创建的APP均可查到。

此外可以通过 (tblobjname) 获取APP的图元名:

三、带有扩展属性的图元创建

确认APP存在后,即可在创建图元时嵌入该APP扩展属性。

图元属性中扩展属性的组码为 -3,后跟随列表元素(每个APP一个列表),列表元素的第一元素为APPID,后面元素为扩展属性,组码为1000-1071。

以创建带有扩展属性的矩形为例:

这样就创建了带有扩展属性的一个矩形,带有上节创建的两个APP的扩展数据。

根据DXF组码的规范,扩展数据的组码均为 1000~1071,每个组码有固定用途,可重复(1005不可),且顺序敏感,即数据顺序要与APP要求匹配。

【1000】字符串,最大长度255字节

【1001】字符串,APP名称,此项在DXF文件中标识APP,在AutoLISP环境不需要,且会被认为是新APP的开始,因此不要使用

【1002】字符串,控制字,与102类似,形如“{” “}”

【1003】扩展数据的图层名

【1004】二进制数据

【1005】转用于储存句柄,且会被当作软指针“soft-pointer handle”

【1010,1020,1030】三实型数,可以作为点坐标,AutoCAD不会篡改

【1011,1021,1031】三实型数,可以作为点坐标,世界坐标,与图元绑定,当旋转、缩放、镜像时会自动篡改,通过STRETCH命令可查看

【1040】实型数

【1041】距离,与父图元一同缩放

【1042】缩放因子,实型数,与父图元一同缩放,其与1041区别由APP定义

【1070】整型数,16位,带/不带符号

【1071】整型数,32位,带符号

四、其他

APP相关组码的含义

欢迎留言并发表您的见解!

X 关闭

Copyright   2015-2022 欧洲数码网版权所有  备案号:沪ICP备2022005074号-23   联系邮箱: 58 55 97 3@qq.com