明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3814|回复: 12

[【风之影】] 最后3个明经币,求改个求和的插件。

[复制链接]
发表于 2018-10-30 09:53:28 | 显示全部楼层 |阅读模式
3明经币
我想要的是这个样子的结果:


效果要和NBS求和的一样,我有一个,但是有的图纸上能用,有的又不能用,框选后右击就结束了,没有结果,不知道哪里问题。
本人不懂lsp,纯属于下载党,在此感谢明经的大师们提供帮助和你们开发的产品。
我之前的代码如下:


;混数求和
(defun c:nbs ( / ss filter mspace n e str asclst strs add pt txt txth)
    (setvar "cmdecho" 0)
  (defun *error* (msg) (if ss (x_draw ss 4)) (setq *error* oerr))
  (princ "\n文本数字求和")
  (vl-load-com)
  (princ "\n选择要计算的文本:")
  (setq oerr *error*
        ss (ssget '((0 . "*TEXT")))
        filter "0123456789.-+"
        mspace (vla-get-modelspace(vla-get-activedocument (vlax-get-acad-object)))
        str nil strs nil)
  (if ss
    (repeat (setq n (sslength ss))
      (x_draw ss 3)
      (setq n (1- n)
            e (ssname ss n)
            str (vla-get-textstring(vlax-ename->vla-object e))
            asclst (mapcar '(lambda (x) (if (vl-string-search  (chr x) filter) x 32)) (vl-string->list str))
            strs (strcat (if strs strs "  ") (apply 'strcat (mapcar 'chr asclst)) " "))  
      )
    )
  (if (and ss (/= "" strs))
    (progn
      (setq add (eval (read (strcat "(+ " strs ")"))))
      (setq n2 (getvar "DIMSCALE"))
        (princ (strcat ""  "" oldch (rtos add 2 1) ))

          (princ "\n数字和为: ")
       (princ add)
      (if (setq PO (getpoint "\n“指定计算结果的写入点”?<否则回车>:"))
(command "text" po 2  0
      (princ (strcat ""  "" oldch (rtos add 2 1) )))
          (setvar "cmdecho" 1)
        )
;;;    (princ add)
;;;   (setq insertpt (getpoint "\n请输入文字插入点: "))
;;;     (setq height (getint "\n绘图比例<比例为当前标注比例,回车或右击忽略>:"))
;;;           (if (= height nil)   
;;;               (setq height n2)
;;;           )
;;;      (setq h1 (* height  3))
;;;      (command "_.text"
;;;        "non"
;;;        insertpt
;;;        h1
;;;        ""
       (strcat  (rtos add 2 2) )
;;;      )
      (x_draw ss 4)
          (progn (if ss (x_draw ss 4))(xtcal))  
    )
  )
)
;;;;配套程序(x_draw ss key)
(defun x_draw (ss key / n e)
  (if (= 'PICKSET (type ss))
    (repeat (setq n (sslength ss))
      (setq n (1- n)
            e (ssname ss n))
      (redraw e key)
    )
  )
)
(prin)

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

最佳答案

查看完整内容

试试这个,看是不是你想要的结果: (defun c:NBS (/ en lst num num-lst pt ss ssn str sum sum-str) (princ "\n选择要计算的文本:") (setq ss (ssget '((0 . "*text") (1 . "*#*"))) ssn (sslength ss) lst '(46 48 49 50 51 52 53 54 55 56 57) ) (while (setq en (ssname ss (setq ssn (1- ssn)))) (setq str (cdr (assoc 1 (entget en))) ...

评分

参与人数 1明经币 +1 收起 理由
1291500406 + 1 很给力!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2018-10-30 09:53:29 | 显示全部楼层
此帖仅作者可见

使用道具 举报

发表于 2018-10-30 10:49:58 | 显示全部楼层
此帖仅作者可见

使用道具 举报

 楼主| 发表于 2018-10-30 11:04:47 | 显示全部楼层
此帖仅作者可见

使用道具 举报

 楼主| 发表于 2018-10-30 11:12:34 | 显示全部楼层
此帖仅作者可见

使用道具 举报

发表于 2018-10-30 11:43:00 | 显示全部楼层
此帖仅作者可见

使用道具 举报

 楼主| 发表于 2018-10-30 12:00:04 | 显示全部楼层
此帖仅作者可见

使用道具 举报

 楼主| 发表于 2018-10-30 12:04:25 | 显示全部楼层
此帖仅作者可见

使用道具 举报

 楼主| 发表于 2018-10-30 12:48:15 | 显示全部楼层
此帖仅作者可见

使用道具 举报

发表于 2018-11-2 17:21:20 | 显示全部楼层
此帖仅作者可见

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-14 14:41 , Processed in 0.382604 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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