선택 범위 구성 빠르게 확인
복잡한 도면이나 전달받은 파일에서 어떤 객체가 얼마나 포함됐는지 즉시 확인합니다.
도면을 바꾸지 않는 조회 도구
- LINE, LWPOLYLINE, TEXT, INSERT 같은 DXF 유형명으로 집계합니다.
- 결과는 이름순으로 출력합니다.
- 객체 속성이나 선택 상태를 변경하지 않습니다.
사용 순서
- 1
APPLOAD로 object-count.lsp를 로드합니다.
- 2
OBJCOUNT를 입력합니다.
- 3
집계할 객체를 선택하고 Enter를 누릅니다.
- 4
유형별 수량과 TOTAL을 확인합니다.
코드 전문
다운로드 파일은 아래 코드와 100% 동일합니다. 붙여넣기보다 파일 다운로드 후 APPLOAD 로드를 권장합니다.
;;; ------------------------------------------------------------
;;; AutoCATS 리습 자료실
;; 명령: OBJCOUNT
;; 기능: 선택한 객체를 CAD 객체 유형별로 집계
;; 출처: https://www.autocats.co.kr/lisp/object-count
;; 버전: 1.0 (2026-07-27)
;; 라이선스: 자유 사용·수정, 재배포 시 출처(autocats.co.kr) 표기
;; 안전: *error* 핸들러, 조회 전용으로 도면 객체를 변경하지 않음
;;; ------------------------------------------------------------
(defun autocats-objcount-add (name rows / found)
(if (setq found (assoc name rows))
(subst (cons name (1+ (cdr found))) found rows)
(cons (cons name 1) rows)))
(defun autocats-objcount-data (ss / idx ent rows)
(setq idx 0 rows nil)
(while (< idx (sslength ss))
(setq ent (ssname ss idx)
rows (autocats-objcount-add (cdr (assoc 0 (entget ent))) rows)
idx (1+ idx)))
(vl-sort rows '(lambda (left right) (< (car left) (car right)))))
(defun c:OBJCOUNT (/ *error* ss rows)
(defun *error* (msg)
(if (and msg (not (wcmatch (strcase msg) "*CANCEL*,*QUIT*,*EXIT*,*취소*")))
(princ (strcat "\n[OBJCOUNT] 중단: " msg)))
(princ))
(princ "\n[OBJCOUNT] 집계할 객체를 선택하세요.")
(setq ss (ssget))
(if ss
(progn
(setq rows (autocats-objcount-data ss))
(princ "\n[OBJCOUNT] 객체 유형별 개수")
(foreach row rows
(princ (strcat "\n " (car row) ": " (itoa (cdr row)))))
(princ (strcat "\n TOTAL: " (itoa (sslength ss)))))
(princ "\n[OBJCOUNT] 선택된 객체가 없습니다."))
(princ))
(princ "\n[AutoCATS] OBJCOUNT 로드 완료 - 명령행에 OBJCOUNT 를 입력하세요.")
(princ)
호환 CAD
위 환경에서 확인했습니다. 목록에 없는 CAD는 샘플 도면에서 먼저 결과를 대조한 뒤, CAD 종류·버전과 함께 네이버 카페에 알려주세요.
이 기능, CATS Pro에는 버튼으로 있습니다
PG_OBJCOUNT / CATS_PG_OBJCOUNTCATS Pro에서는 다른 조회·분석 기능과 함께 객체 구성을 확인합니다.CATS Pro는 계속 무료입니다. 리습 로드 없이 버튼 클릭으로 같은 작업을 처리할 수 있습니다.
함께 쓰면 좋은 CATS 명령
자주 묻는 질문
블록 내부 객체도 펼쳐서 집계하나요?
선택한 블록 참조는 INSERT 한 개로 집계하며 블록 정의 내부를 펼치지 않습니다.
도면 전체도 집계할 수 있나요?
명령 실행 후 Ctrl+A로 현재 선택 가능한 도면 객체 전체를 선택할 수 있습니다.