spp_wall 发表于 2014-10-24 16:53

谁能帮忙完善下属性块数据提取的程序!

本帖最后由 spp_wall 于 2014-10-24 22:40 编辑

(defun c:tt (/ d r ss n obj atts)
(while (setq d (tblnext "BLOCK" (null d)))
    (setq r (cons (cdr (assoc 2 d)) r))
)
(and r (setq filename (getfiled "属性输出文件名" "" "csv" 1)))
(if filename
(progn
   (setq f (open filename "w"))
   (foreach name r
    (setq ss (ssget "X" (list '(0 . "INSERT")(cons 2 name)'(8 . "KX-目录")'(66 . 1))));选择KX-目录图层

    (if ss (progn
   (setq atts (append
       (vlax-invoke (setq obj (vlax-ename->vla-object (ssname ss 0))) 'GetConstantAttributes)
       (vlax-invoke obj 'GetAttributes)
      )
   )
   (princ "序号," f)
   (foreach att atts
      (princ (vla-get-tagstring att) f)
      (princ "," f)
      );求出属性列表,写表头
      (princ "\n" f)
      (setq n -1)
      (repeat (sslength ss)
       (setq obj (vlax-ename->vla-object (ssname ss (setq n (1+ n)))))
       (setq atts (append
         (vlax-invoke obj 'GetConstantAttributes)
         (vlax-invoke obj 'GetAttributes)
      )
       )
       (princ (1+ n) f) (princ "," f)
       (foreach att atts(princ (vla-get-textstring att) f) (princ "," f))
       (princ "\n" f);写出属性值
   )
    ))
   )
   (close f)
))
(princ)
)


能不能实现批量提取一个文件夹的数据!

wangshuping42 发表于 2014-10-24 17:37

要是改用vba,我可以帮你。

spp_wall 发表于 2014-10-24 23:41

wangshuping42 发表于 2014-10-24 17:37 static/image/common/back.gif
要是改用vba,我可以帮你。

VBA 我不会

creatorzxz 发表于 2022-4-7 11:57

这个指定某一个属性块名该如何修改

ssyfeng 发表于 2022-4-8 11:09

多文件操作,可以用SCR脚本、dbx或者用其它语言写的小程序,分享一个小程序,看看对你有帮助不

李钊伟2012 发表于 2022-8-3 18:06

ssyfeng 发表于 2022-4-8 11:09
多文件操作,可以用SCR脚本、dbx或者用其它语言写的小程序,分享一个小程序,看看对你有帮助不

咦?同一个文件夹,太麻烦了我的做法是,把LSP加入启动。在LISP 中 任意位置加入 (C:SS) ,SS是你的程序命令。

weimeng555 发表于 2024-5-5 04:18

ssyfeng 发表于 2022-4-8 11:09
多文件操作,可以用SCR脚本、dbx或者用其它语言写的小程序,分享一个小程序,看看对你有帮助不

大佬,你好,想问下,这个插件加载的lisp,是不是加载了自动运行那种的才能用,如果加载了,还要敲命令,并且框选全图范围进行选择集的话,是不是就用不了了
页: [1]
查看完整版本: 谁能帮忙完善下属性块数据提取的程序!