계산기를 두드리고 있다면
수량 검토를 하다 보면 도면 위 숫자를 하나씩 읽어 계산기에 옮겨 적는 순간이 옵니다. 개수가 스무 개만 넘어가도 누락이 생기고, 다시 세어보는 시간이 더 걸립니다.
TSUM은 선택한 문자(TEXT/MTEXT) 중 숫자로만 된 항목을 골라 합산하고, 합산한 개수와 건너뛴 개수를 함께 알려줍니다. 어떤 문자가 계산에서 빠졌는지 바로 알 수 있어 검토가 끝난 뒤에도 안심할 수 있습니다.
동작 방식과 주의할 점
- 문자열 전체가 숫자인 항목만 합산합니다. "1,234.5"처럼 쉼표·공백이 섞인 표기는 자동으로 정리해 인식합니다.
- "L=1200"처럼 문자와 숫자가 섞인 항목은 건너뛰고 건너뜀 개수로 알려줍니다.
- 서식(색상·글꼴)이 입혀진 여러 줄 문자(MTEXT)는 인식되지 않을 수 있습니다. 이때는 한 줄 문자로 바꾸거나 서식을 제거한 뒤 사용하세요.
- 합계 기입 시 현재 문자 스타일과 문자 높이(TEXTSIZE)를 그대로 사용합니다.
이런 작업에 씁니다
- 물량 산출 검토: 부재별 수량 문자를 영역별로 드래그해 소계 확인
- 면적·길이 표기 합산: 이미 도면에 적혀 있는 값들의 총합 확인
- 견적 검토: 단가표·수량표에서 특정 열만 선택해 빠른 합계
사용 순서
- 1
APPLOAD 명령으로 내려받은 text-sum.lsp를 로드합니다.
- 2
명령행에 TSUM 을 입력합니다.
- 3
합산할 문자를 드래그(윈도우/걸침)로 선택하고 Enter.
- 4
명령행에서 합계와 합산·건너뜀 개수를 확인합니다.
- 5
합계를 도면에 남기려면 Y 입력 후 삽입 위치를 클릭합니다.
코드 전문
다운로드 파일은 아래 코드와 100% 동일합니다. 붙여넣기보다 파일 다운로드 후 APPLOAD 로드를 권장합니다.
;;; ------------------------------------------------------------
;;; AutoCATS 리습 자료실
;; 명령: TSUM
;; 기능: 선택한 문자(TEXT/MTEXT)의 숫자 합계 계산 + 도면 기입(선택)
;; 출처: https://www.autocats.co.kr/lisp/text-sum
;; 버전: 1.0 (2026-07-20)
;; 라이선스: 자유 사용·수정, 재배포 시 출처(autocats.co.kr) 표기
;; 안전: *error* 핸들러 포함, 도면 저장·종료 등 파괴적 동작 없음
;;; ------------------------------------------------------------
(defun c:TSUM (/ *error* tsum-clean ss idx data raw str val sum cnt skip pt)
(defun *error* (msg)
(if (and msg (not (wcmatch (strcase msg) "*CANCEL*,*QUIT*,*EXIT*,*취소*")))
(princ (strcat "\n[TSUM] 중단: " msg)))
(princ))
;; 쉼표·공백을 제거해 "1,234.5" 같은 표기도 합산 대상으로 만든다
(defun tsum-clean (s / out i ch)
(setq out "" i 1)
(while (<= i (strlen s))
(setq ch (substr s i 1))
(if (not (member ch '("," " ")))
(setq out (strcat out ch)))
(setq i (1+ i)))
out)
(princ "\n[TSUM] 합계를 구할 문자(TEXT/MTEXT)를 선택하세요.")
(setq ss (ssget '((0 . "TEXT,MTEXT"))))
(if ss
(progn
(setq idx 0 sum 0.0 cnt 0 skip 0)
(while (< idx (sslength ss))
(setq data (entget (ssname ss idx))
raw (cdr (assoc 1 data))
str (tsum-clean raw)
val (if (/= str "") (distof str 2) nil))
(if val
(setq sum (+ sum val) cnt (1+ cnt))
(setq skip (1+ skip)))
(setq idx (1+ idx)))
(princ (strcat "\n[TSUM] 합계: " (rtos sum 2 4)
" (합산 " (itoa cnt) "개 / 건너뜀 " (itoa skip) "개)"))
(if (> cnt 0)
(progn
(initget "Y N")
(if (= (getkword "\n합계를 도면에 문자로 기입할까요? [예(Y)/아니오(N)] <N>: ") "Y")
(progn
(setq pt (getpoint "\n문자 삽입 위치 클릭: "))
(if pt
(entmake (list (cons 0 "TEXT")
(cons 10 pt)
(cons 40 (getvar "TEXTSIZE"))
(cons 1 (rtos sum 2 4))
(cons 7 (getvar "TEXTSTYLE")))))))))
)
(princ "\n[TSUM] 선택된 문자가 없습니다."))
(princ))
(princ "\n[AutoCATS] TSUM 로드 완료 - 명령행에 TSUM 을 입력하세요.")
(princ)
호환 CAD
AutoLISP을 지원하는 CAD에서 동작합니다. 문제가 있다면 네이버 카페에 CAD 종류·버전과 함께 남겨주세요.
이 기능, CATS Pro에는 버튼으로 있습니다
PG_TXTSUM / CATS_PG_TXTSUM리습 로드 없이 버튼 클릭 한 번으로 숫자 문자 합계와 건너뜀 개수까지 확인합니다.CATS Pro는 계속 무료입니다. 리습 로드 없이 버튼 클릭으로 같은 작업을 처리할 수 있습니다.
함께 쓰면 좋은 CATS 명령
자주 묻는 질문
숫자에 단위가 붙어 있으면(예: 1200mm) 합산되나요?
안 됩니다. 문자열 전체가 숫자인 항목만 합산 대상이며, 단위가 붙은 문자는 건너뜀 개수로 표시됩니다. 단위 문자가 섞인 도면이 많다면 무료 CATS Pro의 문자 정리 명령으로 먼저 정리하는 것을 권장합니다.
합산이 잘못될까 걱정됩니다. 검증 방법이 있나요?
명령행에 합산 개수와 건너뜀 개수가 함께 표시됩니다. 선택한 문자 개수와 두 값의 합이 일치하는지 확인하면 누락 여부를 바로 검증할 수 있습니다.