本帖最后由 竹天 于 2021-9-30 09:27 编辑
- ;---计算以"kW"(不分大小写)结尾的数字之和---
- (defun C:sump ;声明命令名称--sump
- (/ S_list sl i sum n str) ;声明局部变量
- (setq S_list (ssget '((0 . "*TEXT") ;限定被选择的对象为:文字(包括多行文字和天正文字)
- (1 . "*#kW,*#KW,*#kw,*#Kw"))));限定被选择的对象为:内容为数字加“kW”(不分大小写)结尾
- (setq sl (sslength S_list)) ;读取选择集中的对象个数
- (setq i 0) ;将循环标记设置为0
- (setq SUM 0) ;将求和结果设置为0
- (while (< i sl) ;开始循环
- (setq n (ssname S_list i)) ;取出选择集中第i个文字的对象名称
- (setq str (cdr (assoc 1 (entget n)))) ;提取当前文字的内容
- (setq SUM (+ SUM (atof str))) ;累加
- (setq i (1+ i))) ;更新循环标志
- (princ "\n功率总和为:") ;提示将要输出的内容
- (princ SUM) ;输出求和结果
- (princ "kW") ;输出单位
- (prin1)
- )
可以参考下这个,了解下通配符*
“A*”:前缀为A;“*A”:后缀为A;“*A*”:包含A;
|