请教如何让这个程序重复的标注也能计算
;★★请教如何让这个程序重复的标注也能计算,如选择两个2000,1个3000,显示2000+2000+3000,而不是现在的2000+3000★★(defun c:qq (/ fuh i num obj ss str str1 tt)
(vl-load-com)
(setq ss (ssget '((0 . "DIMENSION"))))
(setq fuh "+")
(while (not (member (setq tt (getstring "\n请输入运算符号[加(+)/乘(*)] < + >:"))
'("*" "+"
""
)
)
)
)
(if (/= tt "")
(setq fuh tt)
)
(if (= fuh "+")
(setq num 0)
(setq num 1)
)
(setq str ""
i 0
)
(repeat (sslength ss)
(setq obj (vlax-ename->vla-object (ssname ss i))
str1 (vla-get-measurement obj)
i (1+ i)
)
(if (= fuh "+")
(setq num (+ num str1)
str (strcat str (if (= i 1)
""
"+"
) (rtos str1 2 3)
)
)
(setq num (* num str1)
str (strcat str (if (= i 1)
""
"*"
) (rtos str1 2 3)
)
)
)
)
(setq num (/ num 1000.0))
(entmake (list '(0 . "TEXT") (cons 1 (strcat str "=" (rtos num 2 3)"米"))
(cons 10 (getpoint "选择插入点")) (cons 40 (*
(vla-get-textheight obj)
(vla-get-scalefactor obj)
)
)
)
)
(princ)
)
;统计表中原子个数.
(defun cx-lst-tj(lst / a tt n)
(while lst
(setq n(length lst)a(car lst))
(setq lst(vl-remove a lst))
(setq tt (cons(list a(- n (length lst)))tt)))
)
页:
[1]