明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 放羊去的

[已解答] 求助,如何统计不同颜色的文本的数量,感觉好困难,跪求大侠们指点!!!

[复制链接]
发表于 2014-12-17 22:07:38 | 显示全部楼层
去参考 晓东CAD 开源函数库论坛,看 XD::List:GroupBYIdex 源代码。
你这个问题几行代码就解决了。
http://bbs.xdcad.net/forum-260-1.html

点评

多谢版主热心帮助,给不了币了~  发表于 2014-12-22 09:36
发表于 2014-12-20 12:51:19 | 显示全部楼层
本帖最后由 llsheng_73 于 2014-12-20 12:53 编辑

需要明确一点的是如果随层,是否需要考虑图层?
因为对于颜色、线型、线宽等可以随层的属性可能看着是一样,实际上也一样,但它的数据是不一样的,相应的处理方式也不一样

评分

参与人数 1金钱 +5 收起 理由
放羊去的 + 5 很给力!

查看全部评分

发表于 2014-12-20 13:19:33 | 显示全部楼层
  1. ;; tt(不同颜色文本数量统计) 需要e派工具箱(XCAD)的支持: http://yunpan.cn/cAtx5rcDR4VnY  提取码 eca7
  2. (defun c:tt ()
  3.   (setq ss (ssget '((0 . "text"))))
  4.   (setq        lst (xyp-ss2list ss)
  5.         lst (mapcar '(lambda (x) (itoa (xyp-get-color x))) lst)
  6.         lst (vl-sort lst '<)
  7.         lst (xyp-List-Count lst)
  8.   )
  9.   (foreach a lst
  10.     (princ "\n颜色")
  11.     (princ (car a))
  12.     (princ ", 数量")
  13.     (princ (cadr a))
  14.   )
  15.   (princ)
  16. )

点评

多谢版主热心帮助,给不了币了~  发表于 2014-12-22 09:37
发表于 2014-12-20 16:27:28 | 显示全部楼层
  1. (defun c:tt(/ a c snl i lst)
  2.   (setq a(tblnext"layer"t)
  3.         snl(cons(mapcar'(lambda(x)(cdr(assoc x a)))'(2 62))snl))
  4.   (while (setq a(tblnext"layer"nil))
  5.     (setq snl(cons(mapcar'(lambda(x)(cdr(assoc x a)))'(2 62))snl)))
  6.   (if(setq i -1 ss(ssget"X"'((0 . "TEXT"))))
  7.     (progn
  8.       (repeat (sslength ss)
  9.         (setq i(1+ i)
  10.               a(entget(ssname ss i))
  11.               c(cdr(assoc 62 a))
  12.               c(if c c(last(assoc(cdr(assoc 8 a))snl)))
  13.               a(assoc c lst)
  14.               lst(if a(subst(list c(1+(last a)))a lst)
  15.                    (cons(list c 1)lst))))
  16. (alert(apply'strcat(mapcar'(lambda(x)(strcat(vl-princ-to-string(car x))"        "(vl-princ-to-string(last x))(chr 13)))(cons'(颜色 数量)lst))))))
  17.   )

写得比较啰嗦

评分

参与人数 1金钱 +5 收起 理由
放羊去的 + 5 很给力!

查看全部评分

 楼主| 发表于 2014-12-22 08:30:15 | 显示全部楼层
守仁格竹GM 发表于 2014-12-17 13:23
调用格式XD:ist:GroupByIndex lst fuzz)
详见http://bbs.xdcad.net/forum.php?mod=viewthread&tid=67 ...

谢谢大侠的回复帮助!
 楼主| 发表于 2014-12-22 08:31:39 | 显示全部楼层
ㄘ丶转裑ㄧ灬 发表于 2014-12-17 19:51
代码我没有,也不会写,
看来你只能按颜色多次统计了。。
方法一:CAD自带命令:fi(比较繁琐)

多谢“ㄘ丶转裑ㄧ灬”大侠的回复和热心帮助
 楼主| 发表于 2014-12-22 08:33:05 | 显示全部楼层
highflybird 发表于 2014-12-17 22:07
去参考 晓东CAD 开源函数库论坛,看 XD:ist:GroupBYIdex 源代码。
你这个问题几行代码就解决了。
http: ...

多谢高飞鸟版主的回复帮助。
 楼主| 发表于 2014-12-22 08:40:52 | 显示全部楼层
xyp1964 发表于 2014-12-20 13:19

非常感谢“xyp1964”版主的帮助和回复,可能是我没有表达清楚,其实我想要把文本也一起统计出来的,每一个文本有多少个,对应的颜色是什么,要的是这样的效果。待会在一楼上个图,版主的方法已经很接近了,功能很强大,我还得多多学习啊!
 楼主| 发表于 2014-12-22 09:08:24 | 显示全部楼层
llsheng_73 发表于 2014-12-20 16:27
写得比较啰嗦

非常感谢“llsheng_73”大侠能抽出时间给写代码帮助小弟,我试了下,也是和楼上的版主的功能一样。我表达的不够清楚之前,文本也要一起统计出来的是想要,每一个文本有多少个,对应的颜色是什么。我下去会好好研究下大侠的源码,感觉已经很接近了。一楼我贴出来的统计文本的代码(出自明经)不能在上面修改一下吗?文本已经统计出来了,后面的个数统计要重新写一下,这个统计是所有的文本的数量,要按照颜色(或者图层)再来统计其相对应的数量,就是在统计出来的文本中再次循环一遍,按照相应的颜色(或者图层)进行筛选,我写的有点罗嗦了~
发表于 2014-12-22 10:08:08 | 显示全部楼层
  1. ;; tt(不同颜色文本数量统计)
  2. ;; 需要e派工具箱(XCAD)的支持: http://yunpan.cn/cAtx5rcDR4VnY  提取码 eca7
  3. (defun c:tt ()
  4.   (setq ss (ssget '((0 . "text"))))
  5.   (setq lst  (xyp-ss2list ss)
  6.         lst (mapcar '(lambda (x) (list (xyp-DXF 1 x) (xyp-get-color x))) lst)
  7.         lst  (vl-sort lst '(lambda (x y)
  8.                          (cond ((< (car x) (car y)) t)
  9.                                ((and (= (car x) (car y)) (< (cadr x) (cadr y)))t)
  10.                          )
  11.                        )
  12.              )
  13.         lst  (xyp-List-CountSub lst)
  14.         lst2 (mapcar '(lambda (x) (list (caar x) (cadar x) (cadr x))) lst)
  15.         lst3 (xyp-Count-Num lst2 2)
  16.   )
  17.   (foreach a lst2
  18.     (princ "\n文本: ") (princ (car a)) (princ ", 颜色: ") (princ (cadr a)) (princ ", 数量:") (princ (caddr a))   
  19.   )
  20.   (princ"\n")
  21.   (foreach a lst3
  22.     (princ "\n文本: ") (princ (car a)) (princ ", 合计数量: ") (princ (cadr a))
  23.   )
  24.   (princ)
  25. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-7-17 03:30 , Processed in 0.170568 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表