184632152 发表于 2020-4-10 13:30:49

请大神帮忙修改一下这个属性块提取到EXCEL表的源码!!!!

请大神帮忙修改一下这个属性块提取到EXCEL表的源码,现在这个提取数据到EXCEL表,不能把相同的项合并,请大神帮忙改成可以合并相同项,后面还能统计出相同的项有多少。


*********************************************

(defun c:tSK () ;(/ 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"))
      (setq ss (ssget '((0 . "INSERT")))) ;选择对像,修改这里.
                                        ;(foreach name r
                                        ;(foreach (sslength ss) r
                                        ;(setq ss (ssget '((0 . "INSERT"))));选择对像,修改这里.
      (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 (reverse atts);;;同一列前后颠倒
            (foreach att atts
            (princ (vla-get-TextString att) f)
            (princ "," f)
            )
            (princ "\n" f)            ;写出属性值
          )
         (close f)
      )
      )
    )
    ;(close f)
)
)

叮咚 发表于 2020-4-10 13:30:50

见动画

mikewolf2k 发表于 2020-4-10 15:00:11

这个自己在excel中做下分类汇总即可

184632152 发表于 2020-4-10 15:15:26

mikewolf2k 发表于 2020-4-10 15:00
这个自己在excel中做下分类汇总即可

能一步到位最好,不然用CAD自带的数据提取就能自动汇总。

mikewolf2k 发表于 2020-4-10 15:25:12

184632152 发表于 2020-4-10 15:15
能一步到位最好,不然用CAD自带的数据提取就能自动汇总。

那为什么不用自带的呢?
如果要汇总,根据什么汇总?B列一样就汇总,不管CDEF?还是BCDEF都一样才汇总?
原程序只是简单输出而已,要实现汇总功能就要读取已输出数据,程序要重写,原程序基本没用。
没有现成的,祝你好运早日等到。

184632152 发表于 2020-4-10 16:37:26

mikewolf2k 发表于 2020-4-10 15:25
那为什么不用自带的呢?
如果要汇总,根据什么汇总?B列一样就汇总,不管CDEF?还是BCDEF都一样才汇总? ...

根据B列汇总就可以

sharetow 发表于 2020-4-16 17:02:21

代码基本要重写了,自己excel里弄弄吧

184632152 发表于 2020-4-17 09:05:39

sharetow 发表于 2020-4-16 17:02
代码基本要重写了,自己excel里弄弄吧

好的,谢谢!

kongel 发表于 2020-9-25 12:40:08

本帖最后由 kongel 于 2020-9-25 12:42 编辑

叮咚 发表于 2020-4-10 13:30
见动画
试过了,计数有问题,有些属性值不同也统计进去了

f4800 发表于 2020-11-1 07:01:00

学习学习学习一下!
页: [1] 2
查看完整版本: 请大神帮忙修改一下这个属性块提取到EXCEL表的源码!!!!