wuxuloveguo 发表于 2009-2-6 13:01:00

关于CAD图中文字统计程序!

<p>不知道谁有这方面的LISP,目的是选取CAD图中的文字并且统计,网上的大多都是有一个字符不一样就统计一种!</p><p>有没有(比方说:“A12,A45,A56,B78,B45,C65。。。。”等)可以指定需要选取的TEXT文字的前一个字母或者数字,分类汇总呢,就象CAD图中以“A”开头的TEXT有多少,“B”开头的有多少等等,不知道那位朋友有这样的程序可以提供给我!谢谢了!</p>

cocoorange 发表于 2024-1-14 23:19:38

caiqs 发表于 2009-2-11 12:55
;;;师兄 QQ 361865648(defun c:test ()&nbsp; (setq&nbsp;searchstr (getstring&nbsp;&nbsp;&nbsp;&nbsp;&n ...

CAD中加载输入字符串之后提示错误
“错误: 参数类型错误: symbolp 46”
请问是怎么回事呢?

ZZXXQQ 发表于 2009-2-6 19:13:00


;以首字母显示所选范围字串数量 明经 ZZXXQQ 2009.2.6
(defun c:tt ()
(if (setq ss (ssget '((0 . "TEXT")))) (progn
(setq i 0 txtl (list))
(repeat (sslength ss)
   (setq txt (substr (cdr(assoc 1 (entget(ssname ss i)))) 1 1)
         i (1+ i))
   (if (setq txl (assoc txt txtl))
    (setq txtl (subst txl (cons txt (1+ (cdr txl))) txtl))
(setq txtl (cons (list txt 1)))
   )
)
(setq i 0)
(repeat (length txtl)
   (princ (strcat "\n" (nth i txtl)))
   (setq i (1+ i))
)
))
(princ)
)

caoyin 发表于 2009-2-7 11:09:00

<p>(sslength (ssget "_X" '((0 . "TEXT") (1 . "A#"))))</p>

wuxuloveguo 发表于 2009-2-7 12:44:00

本帖最后由 作者 于 2009-2-7 12:48:42 编辑 <br /><br /> <p>zzxxqq斑竹的程序有问题,“参数太少“</p><p>不知道可不可以把选取的内容存成文本或者其他格式,比方说:</p><p>A1&nbsp;&nbsp; 2个</p><p>A2&nbsp;&nbsp; 5个</p><p>A14&nbsp;&nbsp;&nbsp; 7个</p><p>B1&nbsp;&nbsp;&nbsp; 6个</p><p>。。。。</p><p>最后有个合计:”A“开头的合计多少个</p><p>前一个是按A,B,C等顺序排序 A、B、C。。。后面的数字就是1,2,3。。。。排序</p><p>&nbsp;请ZZXXQQ CAOYIN斑竹帮忙给写一个!</p><p></p>

caoyin 发表于 2009-2-7 13:58:00

本帖最后由 作者 于 2009-2-9 10:33:23 编辑 <br /><br /> <p>;;已经修改,只是 acad_strlsort 会把 A3&nbsp; 排在 A11后面</p><p>(defun C:TT (/ SS I STR I REL LST X RLST ILST)<br/>&nbsp; (if (setq SS (ssget '((0 . "TEXT") (1 . "@#*"))))<br/>&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (repeat (setq I (sslength SS))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq STR (cdr (assoc 1 (entget (ssname SS (setq I (1- I)))))))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (setq REL (distof (substr str 2)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq LST (cons STR LST))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq LST (acad_strlsort LST))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (while (setq X (car LST))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq LEN&nbsp; (length LST)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LST&nbsp; (vl-remove X LST)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RLST (append RLST (list (cons X (- LEN (length LST)))))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>)</p><p></p>

wuxuloveguo 发表于 2009-2-9 10:00:00

本帖最后由 作者 于 2009-2-9 10:05:09 编辑 <br /><br /> <p>caoyin斑竹出现这样的情况!</p><p>(E1 . 17)<br/>(F2 . 0)<br/>(E2 . 10)<br/>(E3 . 3)<br/>(E4 . 2)<br/>(E5 . 1)<br/>(D5 . 19)<br/>(D9 . 18)<br/>(A9 . 124)<br/>(E10 . 16)<br/>(A10 . 247)<br/>(E12 . 15)</p><p>怎么不是按字母按A,B,C的顺序排列呢?</p><p>比方说“</p><p>A1&nbsp;共2个</p><p>A2 共4个</p><p>B5 共4个</p><p>1AJK&nbsp;&nbsp; 共8个</p><p>2SFGK&nbsp;&nbsp; 共10个</p><p>..............</p><p>分类合计如下</p><p>A开头的合计6个</p><p>B开头的合计4个</p><p>1开头的合计8个</p><p>等等</p><p>我让一个朋友帮我整了,她也是让她一个网上的朋友帮忙编辑的,我试了下不是太合理,能不能加个人为的选取和自动选取的选择,并且输出为TXT的文本格式</p>

caoyin 发表于 2009-2-9 11:07:00

<p>;;5楼已经修改</p><p>;; 只能统计一个起首字母,多个统计程序有些烦<br/>;; (("D3" . 1) ("D4" . 3))------&gt; 1和3表示个数<br/>(defun C:TT (/ SY SS I STR I REL LST X LEN RLST)<br/>&nbsp; (if (and (or (/= (setq SY (getstring "\n指定起首字母: ")) "")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq SY nil)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq SY (strcase SY)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SS (ssget (list '(0 . "TEXT") (cons 1 (strcat SY "#*"))))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (repeat (setq I (sslength SS))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq STR (cdr (assoc 1 (entget (ssname SS (setq I (1- I)))))))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (setq REL (distof (substr str 2)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq LST (cons REL LST))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq LST (vl-sort LST '&gt;=))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (while (setq X (car LST))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq LEN&nbsp; (length LST)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LST&nbsp; (vl-remove X LST)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RLST (cons (cons (strcat SY (itoa (fix X))) (- LEN (length LST))) RLST)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>)</p>

wuxuloveguo 发表于 2009-2-10 09:36:00

本帖最后由 作者 于 2009-2-10 9:38:57 编辑 <br /><br /> <p>caoyin斑竹 最好能象这样输出并且保存文本格式!</p><p>A10&nbsp;&nbsp; 10<br/>A13&nbsp;&nbsp; 2<br/>A14&nbsp;&nbsp; 2</p><p>&nbsp;<br/>B102&nbsp;&nbsp; 1<br/>B103&nbsp;&nbsp; 16<br/>B104&nbsp;&nbsp; 1<br/>&nbsp;<br/>D5&nbsp;&nbsp; 1<br/>D9&nbsp;&nbsp; 1<br/>&nbsp;<br/>1AU&nbsp;&nbsp; 1<br/>1AY&nbsp;&nbsp; 18<br/>1AZ&nbsp;&nbsp; 19<br/>1B&nbsp;&nbsp; 3</p><p>2&nbsp;&nbsp; 4<br/>2AA&nbsp;&nbsp; 1<br/>2AB&nbsp;&nbsp; 12<br/>2BA&nbsp;&nbsp; 1<br/>2BB&nbsp;&nbsp; 3<br/>&nbsp;<br/>3AS&nbsp;&nbsp; 4<br/>3AV&nbsp;&nbsp; 1<br/>3AX&nbsp;&nbsp; 2<br/>&nbsp;<br/>分类合计如下:</p><p>A开头的合计 14个</p><p>B开头的合计 18个</p><p>D开头的合计 2个</p><p>1开头的合计 41个</p><p>2开头的合计 21个</p><p>3开头的合计 7个</p>

wuxuloveguo 发表于 2009-2-10 09:45:00

本帖最后由 作者 于 2009-2-10 15:17:11 编辑 <br /><br /> <p>caoyin斑竹!再麻烦你了!</p><p>输出的方式能象8楼我说的那样(因为如果数量多的话找起来不方便,如果能在最后写合计,那直接到TXT文本最后查看就很清晰了)&nbsp;并且最好能给添加上手动选取和自动选取(因为毕竟不是每次都要对全图进行统计,有可能需要局部选取)!</p><p></p>

wuxuloveguo 发表于 2009-2-10 15:19:00

请caoyin斑竹帮忙啊!急用中!在此麻烦你了!
页: [1] 2
查看完整版本: 关于CAD图中文字统计程序!