오토캐드 선택 블록 수량 집계 리습 (BCOUNT)

도면에서 선택한 블록 참조를 블록 이름별로 묶어 수량을 보여주는 BCOUNT 리습입니다. 수량 산출 전 선택 구역의 블록 개수를 빠르게 대조할 때 활용하세요.

코드 전문 공개 · 다운로드 파일과 100% 동일 · 출처 표기 후 자유 사용

블록 수를 다시 세고 있다면

문, 기둥, 장비 기호처럼 같은 블록이 도면 곳곳에 반복되면 수량을 다시 세는 일부터 시간이 듭니다. 특히 구역별로 선택한 뒤 소계를 확인해야 할 때는 이름이 비슷한 블록을 놓치기 쉽습니다.

BCOUNT는 사용자가 선택한 블록 참조만 대상으로 블록 이름별 개수와 전체 선택 수를 명령행에 표시합니다. 도면을 저장하거나 객체를 수정하지 않는 읽기 전용 집계 흐름입니다.

동작 방식과 주의할 점

  • INSERT 객체(블록 참조)를 선택해 DXF 블록 이름을 기준으로 집계합니다.
  • 동적 블록과 외부참조 블록은 CAD가 반환하는 내부 또는 익명 이름으로 표시될 수 있으므로, 결과를 물량표에 옮기기 전 이름을 확인하세요.
  • 선택한 블록만 집계하며 도면을 저장·수정·삭제하지 않습니다.
  • AutoCAD에서 실제 샘플 도면 96개 블록을 선택해 이름별 수량과 전체 선택 수가 일치하는지 스모크 테스트했습니다.

결과를 물량표에 옮기기 전

  • 필요한 구역만 선택했는지 먼저 확인합니다. 전체 도면을 선택하면 다른 층·구역의 같은 블록도 함께 합산됩니다.
  • 명령행의 이름별 수량 합계와 전체 선택 블록 수가 일치하는지 확인합니다.
  • 도면에서 같은 모양이라도 블록 이름이 다르면 별도 항목으로 표시되므로, 표준 블록 이름을 함께 점검하세요.
HOW TO USE

사용 순서

리습 로드가 처음이라면
  1. 1

    APPLOAD 명령으로 block-count.lsp를 로드합니다.

  2. 2

    명령행에 BCOUNT를 입력합니다.

  3. 3

    집계할 블록만 윈도우 또는 걸침 선택한 뒤 Enter를 누릅니다.

  4. 4

    명령행에 블록 이름별 수량과 전체 선택 수가 표시됩니다.

  5. 5

    물량표에 옮기기 전, 필요한 구역만 선택했는지와 블록 이름을 대조합니다.

SOURCE

코드 전문

명령 BCOUNT

다운로드 파일은 아래 코드와 100% 동일합니다. 붙여넣기보다 파일 다운로드 후 APPLOAD 로드를 권장합니다.

.lsp 다운로드
;;; ------------------------------------------------------------
;;; AutoCATS 리습 자료실
;; 명령: BCOUNT
;; 기능: 선택한 블록 참조(INSERT)를 블록 이름별로 집계해 명령행에 표시
;; 출처: https://www.autocats.co.kr/lisp/block-count
;; 버전: 1.0 (2026-07-23)
;; 라이선스: 자유 사용·수정, 재배포 시 출처(autocats.co.kr) 표기
;; 안전: *error* 핸들러 포함, 도면 저장·종료·객체 수정 등 파괴적 동작 없음
;; 검증: AutoCAD 실제 샘플 도면에서 이름별 수량 및 전체 선택 수 확인
;;; ------------------------------------------------------------

(defun c:BCOUNT (/ *error* bcount-add ss idx data name counts total item)

  (defun *error* (msg)
    (if (and msg (not (wcmatch (strcase msg) "*CANCEL*,*QUIT*,*EXIT*,*취소*")))
      (princ (strcat "\n[BCOUNT] 중단: " msg)))
    (princ))

  ;; 이름별 집계 목록에 1을 더하거나 새 항목을 추가한다.
  (defun bcount-add (key rows / found)
    (if (setq found (assoc key rows))
      (subst (cons key (1+ (cdr found))) found rows)
      (append rows (list (cons key 1)))))

  (princ "\n[BCOUNT] 수량을 집계할 블록을 선택하세요.")
  (setq ss (ssget '((0 . "INSERT"))))
  (if ss
    (progn
      (setq idx 0 counts '() total 0)
      (while (< idx (sslength ss))
        (setq data (entget (ssname ss idx))
              name (cdr (assoc 2 data)))
        (if name
          (progn
            (setq counts (bcount-add name counts))
            (setq total (1+ total))))
        (setq idx (1+ idx)))
      (princ "\n[BCOUNT] 블록별 수량:")
      (foreach item counts
        (princ (strcat "\n  " (car item) ": " (itoa (cdr item)) "개")))
      (princ (strcat "\n[BCOUNT] 전체 선택 블록: " (itoa total) "개")))
    (princ "\n[BCOUNT] 선택된 블록이 없습니다."))
  (princ))

(princ "\n[AutoCATS] BCOUNT 로드 완료 - 명령행에 BCOUNT 를 입력하세요.")
(princ)
COMPATIBILITY

호환 CAD

AutoCAD (실제 스모크 테스트 확인)

위 환경에서 확인했습니다. 목록에 없는 CAD는 샘플 도면에서 먼저 결과를 대조한 뒤, CAD 종류·버전과 함께 네이버 카페에 알려주세요.

WORKS WELL WITH

함께 쓰면 좋은 CATS 명령

전체 명령 보기
LOADLISPSATFOLDER / CATS_LOADLISPSATFOLDER검증 후 받은 리습 파일을 폴더째 한 번에 로드할 때 사용합니다. BLOCKLIB / CATS_BLOCKLIB자주 쓰는 블록과 로컬 DWG를 라이브러리로 관리할 때 사용합니다.
FAQ

자주 묻는 질문

어떤 CAD에서 확인됐나요?

현재는 AutoCAD에서만 실제 스모크 테스트를 확인했습니다. 다른 CAD는 검증 전이므로 호환 목록에 넣지 않았습니다. 다른 제품에서 사용하기 전에는 샘플 도면에서 결과를 수동 수량과 먼저 대조하세요.

동적 블록과 외부참조 블록도 정확히 집계되나요?

선택된 INSERT 객체의 DXF 블록 이름을 읽어 집계합니다. 동적 블록이나 외부참조 블록은 내부 또는 익명 이름으로 표시될 수 있으므로, 실무 물량표에 옮기기 전 결과의 이름을 확인하세요.

WORKFLOW PRODUCTS

업무 분야에 맞는 전용 자동화도 확인해 보세요.

공통 CAD 작업은 CATS Pro로, 분야별 도면과 산출 업무는 전용 제품으로 이어갈 수 있습니다.

FREE LISP + FREE ADD-IN

리습과 CATS Pro를 함께 쓰세요.

리습은 가볍게, 반복 작업은 CATS Pro 버튼으로. 둘 다 무료입니다.