最初由 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]
写文件:

- (setq fi (open "c:/$ea_temp.txt"
- (if (findfile "c:/$ea_temp.txt")
- "w"
- "a"
- )
- )
- )
- (write-line string fi)
|