最后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 20
(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 (* height3))
;;; (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)
页:
[1]
2