你好,阿道夫,
下载并加载我的Write CSV函数,然后尝试以下快速编写的代码:
- (defun c:countmat ( / a e f i l s v x )
- (if (and (setq s (ssget '((0 . "INSERT") (66 . 1))))
- (setq f (getfiled "Output File" "" "csv" 1))
- )
- (progn
- (repeat (setq i (sslength s))
- (setq e (entnext (ssname s (setq i (1- i))))
- x (entget e)
- )
- (while (= "ATTRIB" (cdr (assoc 0 x)))
- (if (wcmatch (cdr (assoc 2 x)) "MAT-[123]")
- (if (setq a (assoc (setq v (cdr (assoc 1 x))) l))
- (setq l (subst (cons v (1+ (cdr a))) a l))
- (setq l (cons (cons v 1) l))
- )
- )
- (setq e (entnext e)
- x (entget e)
- )
- )
- )
- (LM:writecsv (mapcar '(lambda ( x ) (list (car x) (itoa (cdr x)))) l) f)
- )
- )
- (princ)
- )
以上未经测试。 |