rk25134 发表于 2022-7-5 16:58:52

扩展数据导出

将所有块对象的扩展数据与属性一起提取到excel中。Lisp程序
 
 
示例:07-01-02-01,1110,0,扩展数据(6RKH-02-09)
示例dwg。图纸

BIGAL 发表于 2022-7-5 17:24:45

看看这个http://adndevblog.typepad.com/autocad/2013/01/xdata-using-vla-get-and-vla-set.html

rk25134 发表于 2022-7-5 17:31:49

导出到文本文件时出错错误:错误的参数类型:stringp nil
并且无法在txt文件中写入nil值。

rk25134 发表于 2022-7-5 17:50:08

(定义c:数据输出(/f Linetowrite ctr item Obj xxx)
(vl load com)
(setq f(打开“c:\\temp\\DataOut.txt”“w”)
(setq Linetowrite(setq ob(ssget“x”'((0。“INSERT”)(2。“SK-Code-breakdown”))))))
(普林斯“\n正在写入文件C:\\temp\\DataOut.txt:”)
(程序
(setq ctr 0)
(重复(sslength Linetowrite)
(setq项目(ssname Linetowrite ctr))
(setq Obj(vlax ename->vla对象项))
(setq xxx nil)
(写入行
(strcat)
(vla get name Obj)
"|"
(实时操作系统
(汽车(vlax safearray->列表
(vlax变量值(vla get InsertionPoint Obj))
)
)
)
 
 
"|"
(实时操作系统
(cadr(vlax safearray->列表
(vlax变量值(vla get InsertionPoint Obj))
)
)
)
"|"
(vla get textstring
(第n个0)
(vlax safearray->列表
(变量值
(vla获取属性
Obj公司
)
)
)
)
)
"|"
(vla get textstring
(第n个1)
(vlax safearray->列表
(变量值
(vla获取属性
Obj公司
)
)
)
)
)
"|"
(vla get handle Obj)
"|"
(如果(/=xd nil)
(程序
(setq xdx(cdr(foreach a(setq xd(cdr(assoc-3(entget item’(“*”))))))))
(foreach x a(princ x \\k)аааа)а)
(如果(=xd nil)
(xxx)))
)
f
)
(setq ctr(1+ctr))
)
)
(关闭f)
(普林斯)
)
 
输出为(STRCAT“SK Code breakdown”“|”“23147914.5353,-6455495.9276”“|”“03-03-02-02”“|”“220.0”“|”“64141”“|”nil)

Roy_043 发表于 2022-7-5 18:04:51

请阅读:
http://www.cadtutor.net/forum/showthread.php?9184-代码发布指南
 
尝试更改:
(setq xxx nil)
收件人:
(setq xxx "")
页: [1]
查看完整版本: 扩展数据导出