jun07210 发表于 2015-9-4 18:30:08

请各位大神帮忙写个文本最后的数字求和LSP文件

如图,开心版主和NBS我都试了。开心的是算含文本的最前面的数字,NBS的算的是所有文本里的数字。
现在我要算的是文本最后面的数字之和,请大神出手帮忙写个LSP。不胜感激。
有个输出精度和指定放置位置就可以了。什么字高之类的就不必要了。多谢!

ㄘ丶转裑ㄧ灬 发表于 2015-9-4 23:49:07

;;;;;;**************************************框选数字结尾文本求和
(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)
)

jun07210 发表于 2015-9-4 23:50:25

ㄘ丶转裑ㄧ灬 发表于 2015-9-4 23:49 static/image/common/back.gif


多谢大神。太感谢了!

ㄘ丶转裑ㄧ灬 发表于 2015-9-4 23:53:02

jun07210 发表于 2015-9-4 23:50 static/image/common/back.gif
多谢大神。太感谢了!

不是什么大神,我也是论坛里找来了,善用搜索。。

jun07210 发表于 2015-9-4 23:57:43

ㄘ丶转裑ㄧ灬 发表于 2015-9-4 23:49 static/image/common/back.gif


命令: qh ; 错误: no function definition: YY-EMK-YB

大神,这是什么情况?我对这些东西一点都不懂。再麻烦你看看。

jun07210 发表于 2015-9-5 00:05:57

ㄘ丶转裑ㄧ灬 发表于 2015-9-4 23:49 static/image/common/back.gif


不好意思。我刚刚弄错了。我用鼠标拖的复制,结果把行号都给复制进来了

话说能把里面的公司标准去掉么?只要指定放置点就行了。多谢了!

jun07210 发表于 2015-9-5 00:06:56

ㄘ丶转裑ㄧ灬 发表于 2015-9-4 23:53 static/image/common/back.gif
不是什么大神,我也是论坛里找来了,善用搜索。。

还是多谢你了。感激~~~

jun07210 发表于 2015-9-5 00:20:41

ㄘ丶转裑ㄧ灬 发表于 2015-9-4 23:53 static/image/common/back.gif
不是什么大神,我也是论坛里找来了,善用搜索。。

已解决,谢谢。把中间那块删掉就行了!
页: [1]
查看完整版本: 请各位大神帮忙写个文本最后的数字求和LSP文件