我已经帮你们实现了求和, (setq K (getint "\n 最大值<1>,最小值<2>,求和<3>,求差<4>,求积<5>,求商<6>,求平均值<7>"))
并且输出字高为300,红色字体
- ;4-求最值QB
- (defun c:QB( / sslst numlst num)
- (defun ss->EnLst (ss / retu)
- (setq retu (apply 'append (ssnamex ss)))
- (setq retu (vl-remove-if-not '(lambda (x) (= (type x) 'ENAME)) retu))
- )
- (setq K (getint "\n 最大值<1>,最小值<2>,求和<3>,求差<4>,求积<5>,求商<6>,求平均值<7>"))
- (setq sslst (ss->EnLst (ssget (list (cons 0 "TEXT") (cons 1 "~*[~`--9]*")))))
- (setq numlst (mapcar '(lambda(x) (atof (cdr (assoc 1 (entget x))))) sslst))
- (cond
- ((= K 1)(setq num (apply 'max numlst)));;求最大值
- ((= K 2)(setq num (apply 'min numlst)));;求最小值
- ((= K 3)(setq num (apply '+ numlst)))
- ((= K 4)(setq num (apply '- numlst)))
- ((= K 5)(setq num (apply '* numlst)))
- ((= K 6)(setq num (apply '/ numlst)))
- ((= K 7)(setq num (/ (apply '+ numlst) (length numlst))));;平均数
- (T (setq num (apply '+ numlst)))
- )
- (princ num)
-
- (setq insPt0 (getpoint "\n请输入计算结果插入点: "));;;计算结果显示在图中位置
- (setq bb (strcat "Z="(rtos num 2 3 )""));;;rtos num 2 2中 表示输出第一个2表示输出十进制,如果是1就是科学计数,第二个2表示输出2位小数
- (command "_text" insPt0 300 "" bb 0 );;;300字高
- (setq textEnt (entlast))
- (entmod (append (entget textEnt) '((62 . 1))));;;设置文本颜色为红色
- (princ)
- )
- (princ)
- (defun prin()
- (princ "\n*************心雨编写2023-9,QQ12369867*************** ")
- (princ)
- )
|