请各位大神帮忙写个文本最后的数字求和LSP文件
如图,开心版主和NBS我都试了。开心的是算含文本的最前面的数字,NBS的算的是所有文本里的数字。现在我要算的是文本最后面的数字之和,请大神出手帮忙写个LSP。不胜感激。
有个输出精度和指定放置位置就可以了。什么字高之类的就不必要了。多谢!
;;;;;;**************************************框选数字结尾文本求和
(defun c:qh(/ all endno aa bb cc wz tha tsum i)
(if (null xzz) (setq xzz 0))
(yy-emk-yb)
(setq ALL (ssget(list (cons 0 "text"))))
(if all (SETQ nn (SSLENGTH ALL)))
(setq endno 0)
(setq tsum 0 i 0)
(WHILE (and(< endno nn) all)
(setq aa (ssname all endno))
(setq bb (entget aa))
(setq zggg (cdr (assoc 40 bb)))
(setq cc(cdr(assoc 1 bb)))
(setq wz(rdata cc))
(setq tha(substr cc (+ wz 1) ( - (strlen cc) wz -1)))
(if (= tha "") (setq tha "0"))
(setq tsum(+ tsum (atof tha)))
(setq i(1+ i))
(print (strcat (itoa i) ":文本 <" cc ">---数字 <" tha ">"))
(setq endno (+ endno 1))
)
(print (strcat "共" (itoa i) "个文本,和=" (rtos tsum)))
(setq rk (rtos tsum))
(SETQ PO (getpoint "\n指定文本输出位置:"))
(COMMAND "TEXT" PO zggg 0 rk)
(print)
)
(defun yy-emk-yb nil
(if (not (tblobjname "Style" "公司标准"))
(entmake
'((0 . "Style")(100 . "AcDbSymbolTableRecord")
(100 . "AcDbTextStyleTableRecord")
(2 . "公司标准")(70 . 0)(40 . 0)(41 . 0.8)(50 . 0)(71 . 0)
(42 . 0)(3 . "hztxt_e.shx")(4 . "hztxt.shx"))
)
)
(setvar "TextStyle" "公司标准")
(princ)
)
;;;
(defun rdata(str / len i aa)
(if (> (strlen str) 0)
(progn
(setq i (strlen str))
(setq aa(substr str (strlen str) 1))
(while (and (or (and (>= aa "0") (<= aa "9"))
(= aa ".")
)
(>= i 1)
)
(setq i(1- i))
(if (>= i 1) (setq aa(substr str i 1)))
)
)
)
(setq i i)
)
ㄘ丶转裑ㄧ灬 发表于 2015-9-4 23:49 static/image/common/back.gif
多谢大神。太感谢了! jun07210 发表于 2015-9-4 23:50 static/image/common/back.gif
多谢大神。太感谢了!
不是什么大神,我也是论坛里找来了,善用搜索。。 ㄘ丶转裑ㄧ灬 发表于 2015-9-4 23:49 static/image/common/back.gif
命令: qh ; 错误: no function definition: YY-EMK-YB
大神,这是什么情况?我对这些东西一点都不懂。再麻烦你看看。 ㄘ丶转裑ㄧ灬 发表于 2015-9-4 23:49 static/image/common/back.gif
不好意思。我刚刚弄错了。我用鼠标拖的复制,结果把行号都给复制进来了
话说能把里面的公司标准去掉么?只要指定放置点就行了。多谢了! ㄘ丶转裑ㄧ灬 发表于 2015-9-4 23:53 static/image/common/back.gif
不是什么大神,我也是论坛里找来了,善用搜索。。
还是多谢你了。感激~~~ ㄘ丶转裑ㄧ灬 发表于 2015-9-4 23:53 static/image/common/back.gif
不是什么大神,我也是论坛里找来了,善用搜索。。
已解决,谢谢。把中间那块删掉就行了!
页:
[1]