 - [FONT=courier new](defun c:test
- (/ l m ss ee e1 e2 e3 e4 e5 e6 name t1 layer ro style h p)
- (setvar "cmdecho" 0)
- (prompt "\n *****BDCAD程序<<数字累加>>*****")
- (prompt "\n请用窗口形式选择!")
- (setq ss (ssget)
- l 0
- m (sslength ss)
- )
- (while (< l m)
- (setq e0 (ssname ss l)
- e (entget e0)
- e1 (cdr (assoc 0 e))
- )
- (if (= "TEXT" e1)
- (progn
- (setq e2 (cdr (assoc 1 e))
- e3 (strlen e2)
- l1 1
- )
- (while (<= l1 e3)
- (setq e4 (substr e2 l1 1)
- e5 (ascii e4)
- )
- (if (or (= e5 47) (< e5 46) (> e5 57))
- (setq l1 (+ 1 e3))
- )
- (setq l1 (+ l1 1))
- )
- (if (= 1 (- l1 e3))
- (setq e2 (read e2)
- ee (cons e2 ee)
- )
- )
- )
- )
- (setq l (+ l 1))
- )
- (setq e3 0.00
- l 0
- m (length ee)
- )
- (while (< l m)
- (setq e2 (nth l ee)
- e3 (+ e2 e3)
- l (+ L 1)
- )
- )
- (setq tt (getint "\n输入保留小数点后的位数<0>: "))
- (if (= tt nil)
- (setq tt 0)
- )
- (setq e31 (rtos e3 2 tt))
- (princ "\n 选取的数据值: ")
- (princ ee)
- (princ "\n 选取的数据个数: ")
- (princ l)
- (princ (strcat " 数字累加值为:" e31))
- (initget 6)
- (setq k (getint "\n1=标注/2=不标注<2>: "))
- (if (> k 2)
- (setq k 2)
- )
- (if (= k 1)
- (progn
- (setq s1 (car (entsel "\n点取将要标注文字的式样: "))
- k1 (entget s1)
- la (cdr (assoc 8 k1))
- ro (cdr (assoc 50 k1))
- ro (/ (* ro 180) pi)
- st (cdr (assoc 7 k1))
- h (cdr (assoc 40 k1))
- )
- (setvar "clayer" la)
- (if (setq p (getpoint "\n文字标注位置: "))
- (command "text" "s" st p h ro e31)
- )
- )
- )
- (redraw)
- (princ)
- )[/FONT]
|