Lệnh AN
Tính Giá trị trung bình cộng của các Text dạng số được chọn.
Ghi kết quả bao gồm: Số lớn nhất/Số nhỏ nhất/Trung bình cộng ra dòng lệnh
1 Thêm class AN.lsp
Lưu mã sau dưới dạng tệp tin AN.lsp
Code:
;PROGRAM AverageNumbers.LSP
;Reports the Min, Max, and Average of a selection of Text objects
;that start with numeric characters
;v1.0 (11-21-03)
;v1.1 (09-02-05) added '(1 . "#*") to SS filter
(defun c:AverageNumbers ( / *error* cmdecho dimzin SS i N Num Nmin Nmax Total)
(gc)
(or *acad* (setq *acad* (vlax-get-acad-object)))
(or *doc* (setq *doc* (vla-get-ActiveDocument *acad*)))
(defun *error* (error)
(if (= (type cmdecho) 'INT)(setvar "cmdecho" cmdecho))
(if (= (type dimzin) 'INT)(setvar "dimzin" dimzin))
(vla-endundomark *doc*)
(cond
((not error))
((wcmatch (strcase error) "*QUIT*,*CANCEL*"))
(1 (princ (strcat "\nERROR: " error)))
)
(princ)
)
(or *acad* (setq *acad* (vlax-get-acad-object)))
(or *doc* (setq *doc* (vla-get-ActiveDocument *acad*)))
(vla-endundomark *doc*)
(vla-startundomark *doc*)
(setq cmdecho (getvar "cmdecho"))
(setq dimzin (getvar "dmzin"))
(setvar "cmdecho" 0)
(if (= dimzin 1)
(setq dimzin nil)
(setvar "dimzin" 1)
)
(command "_.setvar" "USERS1" (getvar "USERS1"))
(and
(setq ss (ssget '((0 . "TEXT")(1 . "#*,`-#*"))))
(setq i 0 N 0 Total 0.0)
(repeat (sslength ss)
(if (setq Num (atof (cdr (assoc 1 (entget (ssname ss i))))))
(progn
(setq N (1+ N)
Total (+ Total Num)
)
(if (or (not Nmin)(< Num Nmin))
(setq Nmin Num)
)
(if (or (not Nmax)(> Num Nmax))
(setq Nmax Num)
)
)
)
(setq i (1+ i))
)
(or
Nmin
(prompt "\nNo numeric text selected")
)
(princ
(strcat
"\n" (itoa N) " numbers:"
" Min=" (rtos Nmin 2 2)
" Max=" (rtos Nmax 2 2)
" Average=" (rtos (/ Total N) 2 2)
)
)
)
(*error* nil)
)
(defun C:AN ()(C:AverageNumbers))
Xem thêm:
Lọc số lớn nhất/nhỏ nhất https://www.lisp.vn/2025/08/lisp-mien-phi-loc-text-max-min-smax.html
Link tải (MediaFire)
---------------------------------------------------------------------------------------------
Mọi thông tin xin liên hệ Fanpage AutoLISP Thật là đơn giản!
Cảm ơn bạn đã theo dõi!

Không có nhận xét nào:
Đăng nhận xét