马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
 - (defun c:layercount (/ lst)
- (vlax-for blk (vla-get-blocks
- (vla-get-activedocument (vlax-get-acad-object))
- )
- (vlax-for obj blk
- (setq lst (layercount:assoc++ (vla-get-layer obj) lst))
- (if (and (= "AcDbBlockReference" (vla-get-objectname obj))
- (= :vlax-true (vla-get-hasattributes obj))
- )
- (foreach att (vlax-invoke obj 'getattributes)
- (setq lst (layercount:assoc++ (vla-get-layer att) lst))
- )
- )
- )
- )
- (princ (layercount:padbetween "\n\n" "" "-" 62))
- (princ (layercount:padbetween "\nLayer" "Objects" " " 61))
- (princ (layercount:padbetween "\n" "" "-" 61))
- (foreach itm (vl-sort lst '(lambda (a b) (> (cdr a) (cdr b))))
- (princ (layercount:padbetween
- (strcat "\n" (car itm))
- (itoa (cdr itm))
- "."
- 61
- )
- )
- )
- (princ (layercount:padbetween "\n" "" "-" 61))
- (princ (layercount:padbetween
- "\nTotal"
- (itoa (apply '+ (mapcar 'cdr lst)))
- "."
- 61
- )
- )
- (princ (layercount:padbetween "\n" "" "-" 61))
- (textpage)
- (princ)
- )
- (defun layercount:assoc++ (key lst / itm)
- (if (setq itm (assoc key lst))
- (subst (cons key (1+ (cdr itm))) itm lst)
- (cons (cons key 1) lst)
- )
- )
- (defun layercount:padbetween (s1 s2 ch ln)
- ((lambda (a b c)
- (repeat (- ln (length b) (length c)) (setq c (cons a c)))
- (vl-list->string (append b c))
- )
- (ascii ch)
- (vl-string->list s1)
- (vl-string->list s2)
- )
- )
- (vl-load-com)
- (princ)
|