해치 물량을 한 번에 합산
마감·포장·도장처럼 해치로 구분한 여러 영역의 면적을 선택 한 번으로 더합니다.
결과와 단위
- 연관·비연관 HATCH의 Area 속성을 읽습니다.
- 결과는 현재 도면 단위의 제곱값입니다.
- 면적을 읽을 수 없는 해치는 건너뜀 개수로 표시합니다.
사용 순서
- 1
APPLOAD로 hatch-area.lsp를 로드합니다.
- 2
HAREA를 입력합니다.
- 3
면적을 합산할 해치를 선택합니다.
- 4
필요하면 Y를 입력하고 결과 문자 위치를 클릭합니다.
코드 전문
다운로드 파일은 아래 코드와 100% 동일합니다. 붙여넣기보다 파일 다운로드 후 APPLOAD 로드를 권장합니다.
;;; ------------------------------------------------------------
;;; AutoCATS 리습 자료실
;; 명령: HAREA
;; 기능: 선택한 HATCH 객체의 면적 합계 계산 + 도면 기입(선택)
;; 출처: https://www.autocats.co.kr/lisp/hatch-area
;; 버전: 1.0 (2026-07-23)
;; 라이선스: 자유 사용·수정, 재배포 시 출처(autocats.co.kr) 표기
;; 안전: *error* 핸들러 + UNDO 그룹, 원본 해치 수정 없음
;;; ------------------------------------------------------------
(vl-load-com)
(defun autocats-harea-value (ent / result)
(setq result
(vl-catch-all-apply
'(lambda ()
(command "_.AREA" "_Object" ent)
(getvar "AREA"))))
(if (vl-catch-all-error-p result) nil result))
(defun autocats-harea-text (point value precision / wcs)
(setq wcs (trans point 1 0))
(entmakex
(list
(cons 0 "TEXT")
(cons 10 wcs)
(cons 40 (getvar "TEXTSIZE"))
(cons 1 (rtos value 2 precision))
(cons 7 (getvar "TEXTSTYLE")))))
(defun c:HAREA (/ *error* doc undo-open ss idx ent value total counted skipped precision answer point)
(defun *error* (msg)
(if undo-open
(progn (vla-EndUndoMark doc) (setq undo-open nil)))
(if (and msg (not (wcmatch (strcase msg) "*CANCEL*,*QUIT*,*EXIT*,*취소*")))
(princ (strcat "\n[HAREA] 중단: " msg)))
(princ))
(princ "\n[HAREA] 면적을 합산할 HATCH 객체를 선택하세요.")
(setq ss (ssget '((0 . "HATCH"))))
(if ss
(progn
(setq total 0.0 counted 0 skipped 0 idx 0
precision (getvar "DIMDEC"))
(while (< idx (sslength ss))
(setq ent (ssname ss idx)
value (autocats-harea-value ent))
(if value
(setq total (+ total value) counted (1+ counted))
(setq skipped (1+ skipped)))
(setq idx (1+ idx)))
(princ (strcat "\n[HAREA] 면적 합계: " (rtos total 2 precision)
" (합산 " (itoa counted) "개 / 건너뜀 " (itoa skipped)
"개, 현재 도면 단위 기준)"))
(if (> counted 0)
(progn
(initget "Y N")
(setq answer
(getkword "\n합계를 도면에 문자로 기입할까요? [예(Y)/아니오(N)] <N>: "))
(if (= answer "Y")
(progn
(setq point (getpoint "\n문자 삽입 위치: "))
(if point
(progn
(setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
(vla-StartUndoMark doc)
(setq undo-open T)
(autocats-harea-text point total precision)
(vla-EndUndoMark doc)
(setq undo-open nil))))))))
(princ "\n[HAREA] 선택된 해치가 없습니다."))
(princ))
(princ "\n[AutoCATS] HAREA 로드 완료 - 명령행에 HAREA 를 입력하세요.")
(princ)
호환 CAD
위 환경에서 확인했습니다. 목록에 없는 CAD는 샘플 도면에서 먼저 결과를 대조한 뒤, CAD 종류·버전과 함께 네이버 카페에 알려주세요.
이 기능, CATS Pro에는 버튼으로 있습니다
HART / CATS_HARTCATS Pro의 조회 도구에서 해치 면적 작업을 바로 실행합니다.CATS Pro는 계속 무료입니다. 리습 로드 없이 버튼 클릭으로 같은 작업을 처리할 수 있습니다.
함께 쓰면 좋은 CATS 명령
자주 묻는 질문
㎡로 자동 변환되나요?
아닙니다. 결과는 현재 도면 단위 기준입니다. mm 도면의 값을 ㎡로 사용할 때는 단위 환산이 필요합니다.
해치 경계를 수정하나요?
아닙니다. HAREA는 Area 속성만 읽으며 원본 해치는 변경하지 않습니다.