找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 476|回复: 1

[编程申请]:怎样分别获得当前打开图中的所有块名称、颜色号

[复制链接]
发表于 2004-4-12 09:18:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
怎样分别获得当前打开图中的所有块名称、颜色号,并分别以文本格式输出!谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-4-12 12:48:07 | 显示全部楼层

Re: [编程申请]:怎样分别获得当前打开图中的所有块名称、颜色号

最初由 giswater 发布
[B]怎样分别获得当前打开图中的所有块名称、颜色号,并分别以文本格式输出!谢谢! [/B]

[PHP]
xdrx_object_next

功    能:容器对象遍历器,依次得到容器的下一个位置的对象类型和实体名

调用格式:(xdrx_object_next)

返 回 值:对于函数xdrx_object_get设置的对象名,对于块,返回块定义的当前位置的类、实体名表。

          其他如:"命名对象根词典" "组词典" "多线词典" "布局词典" "打印样式词典"
          九套符号表:"块表" "层表" "尺寸样式表" "字型表" "线性表" "应用程序表" "UCS表" "视表" "视口表"

          返回表(名称 对象名)

说    明:该函数是个遍历函数,遍历由函数xdrx_object_get设置的对象,若对象是块定义,则依次

          返回块定义中的实体类别和实体名表。若对象是容器,返回容器内的对象名称和对象实体名。

例    子:
1. 遍历得到"命名对象词典"的所有子词典

Command: (xdrx_object_get "dict")
<图元名: 40075cd0>

Command: (while (setq e (xdrx_object_next))(setq a1 (cons e a1)))
(("dict" <图元名: 40075da8>) ("AcDbVariableDictionary" <图元名: 40075df0>)
("ACAD_WIPEOUT_VARS" <图元名: 40075da0>) ("ACAD_PLOTSTYLENAME" <图元名:
40075d58>) ("ACAD_PLOTSETTINGS" <图元名: 40075d70>) ("ACAD_MLINESTYLE" <图元名:
40075cc8>) ("ACAD_LAYOUT" <图元名: 40075d68>) ("ACAD_GROUP" <图元名: 40075cc0>))

2. 遍历得到所有层表记录

Command: (xdrx_object_get "layer")
<图元名: 40075c50>

Command: (while (setq e (xdrx_object_next))(setq a2 (cons e a2)))
(("Defpoints" <图元名: 40075f88>) ("PUB_DIM" <图元名: 40075f28>) ("DOTE"
<图元名: 40075e90>) ("图层5" <图元名: 40075dd8>) ("图层4" <图元名: 40075dd0>)
("图层3" <图元名: 40075dc8>) ("图层2" <图元名: 40075dc0>) ("图层1" <图元名:
40075db8>) ("0" <图元名: 40075c20>))

3. 遍历得到一个块定义内的所有实体名

Command: (xdrx_object_get "block" "a")
<图元名: 40075e10>

Command: (while (setq e (xdrx_object_next))(setq a3 (cons e a3)))
(("AcDbCircle" <图元名: 40075e50>) ("AcDbEllipse" <图元名: 40075e48>)
("AcDbWipeout" <图元名: 40075e40>))

3. 遍历得到一个块表中的所有记录

Command: (xdrx_object_get "block")
<图元名: 40075c08>

Command: (while (setq e (xdrx_object_next))(setq a4 (cons e a4)))
(("*D3" <图元名: 40075f90>) ("_dimx" <图元名: 40075f40>) ("a" <图元名:
40075e10>) ("AR3_INFO" <图元名: 40075cf0>) ("*PAPER_SPACE" <图元名: 40075c38>)
("*MODEL_SPACE" <图元名: 40075c10>))
[/PHP]
写文件:

  1. (setq fi (open "c:/$ea_temp.txt"
  2.                      (if (findfile "c:/$ea_temp.txt")
  3.                        "w"
  4.                        "a"
  5.                      )
  6.                )
  7. )
  8. (write-line string fi)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-21 02:47 , Processed in 0.162769 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表