根据块名附属性

上传人:wt****50 文档编号:33765285 上传时间:2018-02-17 格式:DOC 页数:16 大小:163KB
返回 下载 相关 举报
根据块名附属性_第1页
第1页 / 共16页
根据块名附属性_第2页
第2页 / 共16页
根据块名附属性_第3页
第3页 / 共16页
根据块名附属性_第4页
第4页 / 共16页
根据块名附属性_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《根据块名附属性》由会员分享,可在线阅读,更多相关《根据块名附属性(16页珍藏版)》请在金锄头文库上搜索。

1、;根据块名附属性(defun c:test()(regapp south)(setq sscnt 0)(prompt n 请选择要赋属性的块:)(if (setq ins_all (ssget (list (0 . insert)(repeat (sslength ins_all)(setq ss_ins_name (ssname ins_all sscnt)(setq ss_ins_att (entget ss_ins_name (list *)(setq ins_name (cdr (assoc 2 ss_ins_att)(setq ins_code (substr ins_name 1

2、(vl-string-position (ascii _) ins_name)(setq ins_code_lst (list -3 (list south (cons 1000 ins_code)(setq ss_ins_att (reverse (append (list ins_code_lst) (reverse ss_ins_att)(entmod ss_ins_att)(setq sscnt (1+ sscnt)#语法 (xdsize list)功能及参数此函数将返回当 list 被附加到一个图元中作为扩展图元数据 (Xdata) 时, 它所占用的位组大小。如果不成功, 这个函数会

3、返回 nil。list 必须是一个合法的 xdata 表, 它必须包含一个前面已经使用 regapp 函数注册过的应用程序名称。大括号()项 (群组代码 1002) 必须要对称。一个不合法的 list 将会产生一个错误, 并将适当的错误代码放置于 ERRNO 变量中。如果 Xdata 中包含一个尚未注册的应用程序名称, 则您会看到以下的错误信息(假定 COMDECHO 为 on): Invalid application name 1001 group这个 list 可以从群组代码-3 开始, 但是它并不是必须的, 因为 Xdata 可以包含多个应用程序的说明。这个表必须要有一组括起来的括号:

4、(-3 (MYAPP (1000 . SUITOFARMOR)(1002 . )(1040 . 0.0) (1040 . 1.0)(1002 . )以下也是没有群组代码 -3 的相同范例。这个表刚好是第一个范例的 cdr, 但是将括起来的括号包含在里面是很重要的。( (MYAPP (1000 . SUITOFARMOR)(1002 . ) (1040 . 0.0)(1040 . 1.0)(1002 . )Invalid application name 1001 group这个 list 可以从群组代码-3 开始, 但是它并不是必须的, 因为 Xdata 可以包含多个应用程序的说明。这个表必须

5、要有一组括起来的括号:(-3 (MYAPP (1000 . SUITOFARMOR)(1002 . )(1040 . 0.0) (1040 . 1.0)(1002 . ) )以下也是没有群组代码 -3 的相同范例。这个表刚好是第一个范例的 cdr, 但是将括起来的括号包含在里面是很重要的。( (MYAPP (1000 . SUITOFARMOR)(1002 . ) (1040 . 0.0)(1040 . 1.0)(1002 . )范例 (setq n2 (list YOURAPP (cons 1000 SUITOFARMOR) (cons 1040 0.0)(cons 1040 1.0) )

6、(regapp MYAPP)(ragapp YOURAPP)则: (xdsize (list n1 n2) 返回 48#(cons 1040 0.0)(cons 1040 1.0) ) (regapp MYAPP)(ragapp YOURAPP)则: (xdsize (list n1 n2) 返回 48扩展数据扩展数据 (xdata) 由 AutoLISP 或 ObjectARX 应用程序创建。如果图元包含扩展数据,则扩展数据将跟随在图元的普通定义数据之后。组码 1000 至 1071 描述了扩展数据。下面是一个包含 DXF 格式扩展数据的图元样例。普通图元定义数据:0 INSERT5F111

7、00AcDbEntity8TOP100AcDbBlockReference2BLOCK_A100.0200.0300.0扩展图元定义数据:1001AME_SOL10021070010711.95059E+06107051910102.5471710202.12264210302.0492011005ECD1005EE91005010400.010401.01000MILD_STEEL组码 1001 表示扩展数据的开始。与普通图元数据相比,具有扩展数据的同一组码可以出现多次,而且出现次序很重要。扩展数据按注册的应用程序名分组。每个注册的应用程序组始于 1001 组码,并将程序名作为字符串值。注册

8、的应用程序名对应于 APPID 符号表条目。应用程序可以根据需要使用任意多的 APPID 名。APPID 名是固定不变的,但是,如果当前未在图形中使用 APPID 名,则可以将它们删除。每个 APPID 名只能向每个图元附加一个数据组。在应用程序组中,扩展数据组的顺序和含义由应用程序定义。下表列出了扩展数据组码。 扩展数据组码和说明图元名组码 说明字符串 1000扩展数据中字符串的最大长度为 255 个字节(第 256 个字节是为空字符保留的)应用程序名称1001也是字符串值应用程序名的最大长度为 31 个字节(第 32 个字节是为空字符保留的)注意不要将 1001 组添加到扩展数据中,因为

9、AutoCAD 假定它是新应用程序扩展数据组的开始控制字符串1002扩展数据控制字符串可以是“”或“”。这两个大括号使应用程序可以通过将数据细分为表来组织数据。左大括号开始一个列表,右大括号结束最近的列表。列表可以嵌套。读取特定应用程序的扩展数据时,AutoCAD 会进行检查以确保大括号是成对的图层名 1003 与扩展数据关联的图层名二进制数据1004二进制数据组织成可变长度的数据块。每个数据块的最大长度为 127 个字节。在 ASCII 格式的 DXF 文件中,二进制数据以十六进制数字字符串的形式表示,每个二进制字节由两个数字字符表示数据库句柄1005图形数据库中的图元句柄注意使用 INSE

10、RT、INSERT *、XREF BIND、XBIND 或 PARTIAL OPEN 将带有句柄和扩展数据句柄的图形输入到另一个图形时,扩展数据句柄将使用其相应图元句柄的转换方式进行转换,从而使两者之间的绑定保持不变。EXPLODE 块操作或任何其他 AutoCAD 操作也是如此。如果 AUDIT 检测出扩展数据句柄与图形文件中的图元句柄不匹配,将认为存在错误。AUDIT 修复图元时,将句柄设置为 0。3 个实数1010, 1020, 1030 按 X、Y、Z 次序排列的三个实数值。可将它们用作点或矢量记录。AutoCAD 永远不会改变它们的值世界空间位置1011, 1021, 1031与简单

11、的三维点不同,世界空间坐标随扩展数据所属的父图元进行移动、缩放、旋转和镜像。对父图元使用 STRETCH 命令并且此点位于选择窗口中时,世界空间位置也会被拉伸。世界空间位移1012, 1022, 1032也是一个随着父图元进行缩放、旋转和镜像(而不是移动或拉伸)的三维点世界方向1013, 1023, 1033也是一个随着父图元旋转和镜像(而不是移动、缩放或拉伸)的三维点实数 1040 一个实数值距离 1041 一个随着父图元进行缩放的实数值比例因子 1042也是一个随着父图元进行缩放的实数值。距离和缩放因子的差别由应用程序定义整数 1070 一个 16 位整数(有符号或无符号)长整数 1071

12、 一个 32 位有符号(长)整数SetXData 方法设置与对象关联的扩展数据 (外部数据) 。参阅 | 示例语法 object.SetXData XDataType, XData Object所有图形对象 , AttributeReference, Block, Dictionary, DimStyle, Group, Layer, Linetype, PlotConfigurations, RegisteredApplication, TextStyle, UCS, View, Viewport; XRecord使用该方法的对象。 XDataTypeVariant变体 (短整数数组); 仅

13、用于输入 XData变体数组; 仅用于输入 说明 扩展数据是由 ObjectARX 或 AutoLISP 编写的程序创建的特定实例数据的实例。该数据可添加到任何对象中。它跟随在对象定义数据的后面,并按一定的顺序存入文档中。(AutoCAD 保留此信息,但不使用。)GetXData 方法获取与对象关联的扩展数据(XData) 。参阅 | 示例语法 object.GetXData AppName, XDataType, XDataValue Object所有图形对象 , AttributeReference, Block, Dictionary, DimStyle, Group, Layer, L

14、inetype, PlotConfigurations, RegisteredApplication, TextStyle, UCS, View, Viewport; XRecord使用该方法的对象。 AppNameString字符串; 仅用于输入使用 NULL 字符串可返回所有与对象关联的数据,而不考虑创建它的应用程序。如提供一个应用程序名则只返回由指定应用程序创建的数据。 XDataTypeVariant变体 (短整数数组); 仅用于输出 XDataValueVariant变体 (变体数组); 仅用于输出 说明 扩展数据是由 ObjectARX 或 AutoLISP 编写的程序创建的特定实

15、例数据的实例。该数据可添加到任何对象中。它跟随在对象定义数据的后面,并按一定的顺序存入文档中。(AutoCAD 保留此信息,但不使用。)我想更改一个属性块中包含的所有实体对象的图层,使之与该块本身的图层一致(setq ss (ssget “X” (0 . “insert”) i0 -1)(while (setq ent (ssname ss (setq i0 (1+ i0)(setq la (cdr (assoc 8 (entget ent)color1 (cdr (assoc 62 (entget ent)exit0 nil)(while (and (not exit0)(setq ent (entnext ent)(setq entg (entget ent)(setq entg (subst (cons 8 la) (assoc 8 entg) entg)entg (subst (cons 62 color1) (assoc 62 entg) entg)(entmod entg)(setq exit0 (as

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 文化创意

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号