cad中的lsp多数求和小插件

;=============================Sum function=============================
(
Defun C:Sum( / cmdmode sset ssl nsset temp ssl1 total)
(if *error* quit) ;Exit CAD when error exists
(setq cmdmode (getvar "cmdecho")) ;store the content of "cmdecho" in variable cmdmode
(setvar "cmdecho" 0);
(prompt "\nSelect numbers : ")
(setq sset (ssget))
(if (null sset)
(progn
(princ "\nError: Nothing selected!\n")
(princ)
)
(progn
(setq ssl (sslength sset)) ; return the length of sset
(setq nsset (ssadd)) ; construct a new null selections set
(while (> ssl 0)
(setq temp (ssname sset (setq ssl(1- ssl))))
;assign the ss1th member name of sset to temp
(if (= (cdr (assoc 0 (entget temp))) "TEXT")
(ssadd temp nsset) ; add temp to nsset
)
)
(setq ssl (sslength nsset))
(print ssl)
(princ "text entities are found.")
(setq total 0)
(setq ssl1 ssl)
(while (> ssl 0)
(setq temp (ssname nsset (setq ssl (1- ssl))))
(setq number (atof(cdr(assoc 1 (entget temp)))))
(if (= 0 number)
(setq ssl1 (1- ssl1))
(setq total (+ total number))
)
)
(princ "\nThe Sum of the ")
(princ ssl1)
(princ " numbers selected is ")
(princ total)
)
)
(setq cmdecho cmdmode)
(princ)

)
;=============================End=======================================

相关主题
相关文档
最新文档