只需要lisp代码对num求和
大家好我只想对文本或多行文字中的数字求和
例如
->EBA 12(21)NDBR(25.56)=0.2这是多行文字
->FD 12(102)这是多行文字
->NDBR 21(2个管道)它是MTEXT
->(X1=25.32)是文本(X2=54.21)也是文本
我想得到结果
->12+21+25.56+0.2=...
->12+102=...
->21+2=...
->文本和文本1+25.32+2+54.21之和=。。。
->多行文字和文字之和
->多行文字和多行文字之和
我想让它按对象选择。适用于所有图纸。
有人能帮我吗?
请参见下面的“我的DWG文件”
需要LISP对该文件求和。图纸 有一些自定义lisp例程可以实现这一点。快速的互联网搜索应该可以很容易地找到其中一些。 收集并比较每个字符,如果它们是数字,则将其存储并添加。
(defun c:test()(或(vl load com))(if(setq i 0 sel(ssget(list)(0.TEXT,MTEXT))));“_X”(cons 8 layer)(progn(setq lsel(sslength sel))(princ(strcat”\n Texts:”(itoa lsel))(while(<i lsel)(setq nmo(vlax ename->vla object(ssname sel i))txt(vla get TextString nmo))(if(=(vla get ObjectName nmo)“AcDbMText”)(setq txt([颜色=红色]LM:UnFormat[/颜色]txt nil));if(setq ltxt(strlen txt)j 1 no“ts”s 0)(而( 在我第一次尝试时,我发现了这个。向下滚动到CarlB的回复,他在回复中修改了发布的例程,将文本和多行文字都包括在内。
http://www.eng-tips.com/viewthread.cfm?qid=336013
我也会这么做,但后来我意识到,对于像“NBDR 50(2PIPE)”这样的文本字符串,它会给你50+2。等待OP给出更多解释。 pBe,检查OP的详细信息:
在我看来,同样的问题也会出现在:
但它是特定的。
它可以制定一个标准,只考虑按顺序书写的数字:(nomber)例如(2),
或避免“nomber=”(X1=或X2=) 嗯,有时候一个人必须小心自己的要求。当瓶子里的精灵给你三个愿望时,仔细想想,记住意外后果法则。
这就是我要说的。不知怎的,这没有意义。我想这不仅仅是数字相加。
确实如此。 正如我所说,你可以做一些限制。
OP的有线请求。。。pBe,这也可以是5+0+2=7(我们怎么知道50是50而不是5,0。。。
M、 R。
页:
[1]
2