spp_wall 发表于 2015-10-25 12:43:02

求个 数字按图层求和后生成表格 的插件

本帖最后由 spp_wall 于 2015-10-26 08:43 编辑

    数字按图层求和后生成表格事例只选择了三个图层统计

   希望能把表格里的图层的数字都按图层进行分类求和现在是一个个图层统计 效率比较慢!

最好能进行框选的!!!

spp_wall 发表于 2015-10-26 08:44:47

已经放上示例!!!

ZZXXQQ 发表于 2015-10-26 11:15:09

;按层数字求和 明经 ZZXXQQ 2015.10.26
(defun c:tt ()
(setq lnlst (list))
(if (setq ss (ssget '((0 . "*TEXT")))) (progn
(repeat (setq i (sslength ss))
   (setq ent (entget(setq en (ssname ss (setq i (1- i))))))
   (setq ln (cdr(assoc 8 ent)))
   (setq ln (if (wcmatch ln "t,T") "tt" ln))
   (if (member ln lnlst)
    (set (read ln) (cons en (eval(read ln)))) ; ln-->(en en ...)
   (progn
    (setq lnlst (cons ln lnlst))
    (set (read ln) (list en))
   ))
)
(foreach ln lnlst
   (print ln)
   (setq ptlst (list))
   (foreach en (eval(read ln))
    (setq ent (entget en))
    (setq ptlst (cons (list (cdr(assoc 10 ent)) (cdr(assoc 1 ent)) en) ptlst))
    ;'((pt text en) ...)
   )
   (setq ptlst (vl-sort ptlst '(lambda (a b) (> (cadar a) (cadar b)))))
   (setq sum (apply '+ (mapcar 'read (mapcar 'cadr (cdr(reverse(cdr(reverse ptlst))))))))
   (setq ent (entget(last(last ptlst))))
   (entmod (subst (cons 1 (rtos sum 2)) (assoc 1 ent) ent))
)
))
(princ)
)

spp_wall 发表于 2015-10-26 15:01:57

ZZXXQQ 发表于 2015-10-26 11:15 static/image/common/back.gif


好像不行选取后 一个数值不变 一个数值变成0了麻烦再看看

vladimir 发表于 2015-12-12 18:28:40

很强大的程序,楼主英明神武

bai2000 发表于 2016-3-17 18:05:11

楼上的程序用不了啊

lcy03185405532 发表于 2018-8-16 18:18:39

有文本好像不行,文本内的数字要能计算就好了,先谢楼主啦

vladimirputin 发表于 2020-10-23 15:07:47

楼主的程序运行不了,麻烦完善
页: [1]
查看完整版本: 求个 数字按图层求和后生成表格 的插件