计算给定文本的数字
你好有没有办法让AutoCAD 2010计算给定文字图元出现的数量。
我指定了不同标准列的负载,所有列都标有字母和数字。e、 g.F9或D4。。。。等等。所以我有很多这样的计划,需要安排。目前,我打印出图纸,并用手数数。非常缓慢和费力!
另一种方法是将所有组合放在不同的层上,这需要更长的时间来计算它们,有没有办法绕过这一点。
请帮忙,欢迎大家提出建议。
谢谢 请不要重复张贴。它使讨论过程变得混乱,并将答案/建议分为多个线程。要有耐心。
BCOUNT命令不执行您想要的操作? 我写这篇文章是作为我TabSort例程的一部分:
(defun StrBrks (str / x slst nLst rLst aLst)
(setq slst (vl-string->list str))
(while (setq x (car slst))
(setq slst (cdr slst))
(cond ((and nLst (= 46 x))
(setq nLst (cons x nLst)))
((< 47 x 58)
(setq nLst (cons x nLst))
(setq rLst (cons (reverse aLst) rLst) aLst nil))
(t (setq aLst (cons x aLst))
(setq rLst (cons (reverse nLst) rLst) nLst nil))))
(mapcar 'vl-list->string
(vl-remove nil
(reverse
(cons (reverse aLst)
(cons (reverse nLst) rLst))))))
(defun Num_Extract (str)
(mapcar 'read
(vl-remove-if-not
(function
(lambda (x)
(vl-position (type (read x)) '(INT REAL))))
(StrBrks str))))
示例:
(Num_Extract "AB24n2i4tn4")
(24 2 4 4)
编辑:Woww。。。完全看错了帖子。。。!
希望这段代码能帮助别人 快速一:
区分大小写 实际上,这更快:
(defun c:tcnt (/i j ss tStr)
(and (setq i -1 j 0 ss (ssget "_X" (list (cons 0 "TEXT,MTEXT"))))
(setq tStr (getstring t "\nText to Search For: "))
(while (setq ent (ssname ss (setq i (1+ i))))
(if (eq tStr (cdr (assoc 1 (entget ent)))) (setq j (1+ j)) t))
(princ (strcat "\n << " (itoa j) " Item(s) Found >>")))
(princ))
你好
对不起,我发了两封信。
这几乎正是我想要的。谢谢。
唯一的问题是它不计算动态块中的文本。
这容易添加吗?
谢谢 为什么你一开始不提那个小细节(动态块)?提前掌握所有信息真的很有帮助。
哎呀!不是真的。。。只是因为我对Dyn Blocks的经验有限。。。 好的,很抱歉,我没有意识到这有什么不同,因为我不理解所有需要知道的是autocad和lisp例程。
不用担心,谢谢。
我想我可以绕过它,但复制模型空间中的所有动态块并使用突发命令。谢谢你给我的帮助。
页:
[1]
2