不清楚原程序结构,只能粗略判断,第一个函数多右括弧。更改如下:

- (defun c:sj ( / ss filter mspace n e str asclst strs add pt txt txth)
- (defun *error* (msg) (if ss (x_draw ss 4)) (setq *error* oerr))
- (princ "\n选用-----------------------陌生人.2004.1")
- (princ "\n选择要计算的文本(支持*TEXT选择集):")
- (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))
- strs (strcat (if strs strs " ") (x_txt2 str) " ")) ;;排除mtext bug.v1.1-2004.1
- )
- (if (and ss (/= "" strs)) (progn
- (setq add (eval (read (strcat "(+ " strs ")"))))
- (setq kg1 add)
- (if (< kg1 32)(setq kg11 32))
- (if (<= 32 kg1 40)(setq kg11 50))
- (if (< 40 kg1 50)(setq kg11 63))
- (if (<= 50 kg1 63)(setq kg11 80))
- (if (< 63 kg1 80)(setq kg11 100))
- (if (<= 80 kg1 100)(setq kg11 125))
- (if (< 100 kg1 125)(setq kg11 125))
- (if (<= 125 kg1 160)(setq kg11 200))
- (if (< 160 kg1 200)(setq kg11 200))
- (if (<= 200 kg1 250)(setq kg11 320))
- (if (< 250 kg1 320)(setq kg11 320))
- (if (<= 300 kg1 400)(setq kg11 400))
- (if (< 400 kg1 500)(setq kg11 500))
- (if (<= 500 kg1 630)(setq kg11 630))
- (if (< 630 kg1)(setq kg11 n!!!))
- (setq kg11 (rtos kg11 2 0))
- (setq po (getpoint "input point----:"))
- (command "text" po "" "" (strcat "选用""" kg11 "A"))
- ) (progn
- (if ss (x_draw ss 4))
- (xtcal)
- ) ;多次<重新计算>可以作为一个简易统计查看器.
- )
- )
- (progn (princ "\n!空选集或文本中无有效数字!\n")
- )
- )
|