明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1328|回复: 7

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

[复制链接]
发表于 2015-9-4 18:30 | 显示全部楼层 |阅读模式
如图,开心版主和NBS我都试了。开心的是算含文本的最前面的数字,NBS的算的是所有文本里的数字。
现在我要算的是文本最后面的数字之和,请大神出手帮忙写个LSP。不胜感激。
有个输出精度和指定放置位置就可以了。什么字高之类的就不必要了。多谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2015-9-4 23:49 | 显示全部楼层
  1. ;;;;;;**************************************框选数字结尾文本求和
  2. (defun c:qh(/ all endno aa bb cc wz tha tsum i)
  3.   (if (null xzz) (setq xzz 0))
  4.   (yy-emk-yb)  
  5.   (setq ALL (ssget(list (cons 0 "text"))))
  6.   (if all (SETQ nn (SSLENGTH ALL)))
  7.   (setq endno 0)
  8.   (setq tsum 0 i 0)
  9.   (WHILE (and  (< endno nn) all)   
  10.     (setq aa (ssname all endno))
  11.     (setq bb (entget aa))
  12.   (setq zggg (cdr (assoc 40 bb)))
  13.     (setq cc(cdr(assoc 1 bb)))
  14.     (setq wz(rdata cc))
  15.     (setq tha(substr cc (+ wz 1) ( - (strlen cc) wz -1)))
  16.     (if (= tha "") (setq tha "0"))
  17.     (setq tsum(+ tsum (atof tha)))
  18.     (setq i(1+ i))
  19.     (print (strcat (itoa i) ":文本 <" cc ">---数字 <" tha ">"))
  20.     (setq endno (+ endno 1))
  21.   )
  22.   (print (strcat "共" (itoa i) "个文本,和=" (rtos tsum)))
  23.   (setq rk (rtos tsum))
  24. (SETQ PO (getpoint "\n指定文本输出位置:"))
  25.   (COMMAND "TEXT" PO zggg 0 rk)
  26.   (print)
  27. )
  28. (defun yy-emk-yb nil
  29.     (if (not (tblobjname "Style" "公司标准"))
  30.         (entmake
  31.             '((0 . "Style")(100 . "AcDbSymbolTableRecord")
  32.                 (100 . "AcDbTextStyleTableRecord")
  33.                 (2 . "公司标准")(70 . 0)(40 . 0)(41 . 0.8)(50 . 0)(71 . 0)
  34.                 (42 . 0)(3 . "hztxt_e.shx")(4 . "hztxt.shx"))
  35.         )
  36.     )
  37.     (setvar "TextStyle" "公司标准")
  38.     (princ)
  39. )
  40. ;;;
  41. (defun rdata(str / len i aa)
  42.   (if (> (strlen str) 0)
  43.     (progn
  44.            (setq i (strlen str))
  45.            (setq aa(substr str (strlen str) 1))
  46.      (while (and (or (and (>= aa "0") (<= aa "9"))
  47.          (= aa ".")      
  48.            )
  49.            (>= i 1)
  50.       )
  51.             (setq i(1- i))
  52.                   (if (>= i 1) (setq aa(substr str i 1)))
  53.            )      
  54.     )
  55.   )
  56.   (setq i i)
  57. )

 楼主| 发表于 2015-9-4 23:50 | 显示全部楼层
ㄘ丶转裑ㄧ灬 发表于 2015-9-4 23:49

多谢大神。太感谢了!
发表于 2015-9-4 23:53 | 显示全部楼层
jun07210 发表于 2015-9-4 23:50
多谢大神。太感谢了!

不是什么大神,我也是论坛里找来了,善用搜索。。
 楼主| 发表于 2015-9-4 23:57 | 显示全部楼层
ㄘ丶转裑ㄧ灬 发表于 2015-9-4 23:49

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

大神,这是什么情况?我对这些东西一点都不懂。再麻烦你看看。
 楼主| 发表于 2015-9-5 00:05 | 显示全部楼层
ㄘ丶转裑ㄧ灬 发表于 2015-9-4 23:49

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

话说能把里面的公司标准去掉么?只要指定放置点就行了。多谢了!
 楼主| 发表于 2015-9-5 00:06 | 显示全部楼层
ㄘ丶转裑ㄧ灬 发表于 2015-9-4 23:53
不是什么大神,我也是论坛里找来了,善用搜索。。

还是多谢你了。感激~~~
 楼主| 发表于 2015-9-5 00:20 | 显示全部楼层
ㄘ丶转裑ㄧ灬 发表于 2015-9-4 23:53
不是什么大神,我也是论坛里找来了,善用搜索。。

已解决,谢谢。把中间那块删掉就行了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-3 16:05 , Processed in 0.337628 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表