직접 입력과 참조 맞춤
정확한 높이를 입력하거나 이미 올바른 문자 하나를 골라 나머지 문자 높이를 빠르게 맞춥니다.
안전한 선택 변경
- TEXT와 MTEXT를 함께 선택할 수 있습니다.
- 0 이하 높이는 받지 않습니다.
- 잠긴 레이어와 변경할 수 없는 객체는 건너뜁니다.
사용 순서
- 1
APPLOAD로 text-height.lsp를 로드합니다.
- 2
THEIGHT를 입력합니다.
- 3
Value 또는 Match 모드를 선택하고 높이를 지정합니다.
- 4
높이를 변경할 TEXT 또는 MTEXT를 선택합니다.
코드 전문
다운로드 파일은 아래 코드와 100% 동일합니다. 붙여넣기보다 파일 다운로드 후 APPLOAD 로드를 권장합니다.
;;; ------------------------------------------------------------
;;; AutoCATS 리습 자료실
;; 명령: THEIGHT
;; 기능: 선택한 TEXT 및 MTEXT의 높이를 값 또는 참조 문자로 일괄 변경
;; 출처: https://www.autocats.co.kr/lisp/text-height
;; 버전: 1.0 (2026-07-27)
;; 라이선스: 자유 사용·수정, 재배포 시 출처(autocats.co.kr) 표기
;; 안전: *error* 핸들러 + UNDO 그룹, 잠긴 레이어 건너뜀
;;; ------------------------------------------------------------
(vl-load-com)
(defun autocats-theight-locked-p (ent / row)
(setq row (tblsearch "LAYER" (cdr (assoc 8 (entget ent)))))
(and row (= 4 (logand 4 (cdr (assoc 70 row))))))
(defun autocats-theight-value (ent / value)
(setq value (cdr (assoc 40 (entget ent))))
(if (and value (> value 0.0)) value nil))
(defun autocats-theight-apply (ent height / data pair updated)
(setq data (entget ent)
pair (assoc 40 data))
(if pair
(progn
(setq updated (entmod (subst (cons 40 height) pair data)))
(if updated (progn (entupd ent) T) nil))
nil))
(defun c:THEIGHT (/ *error* doc undo-open mode pick height ss idx ent changed skipped)
(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[THEIGHT] 중단: " msg)))
(princ))
(initget "Value Match")
(setq mode (getkword "\n[THEIGHT] 높이 지정 [Value/Match] <Value>: "))
(if (null mode) (setq mode "Value"))
(if (= mode "Match")
(progn
(setq pick (entsel "\n[THEIGHT] 참조 TEXT 또는 MTEXT를 선택하세요: "))
(if (and pick
(member (cdr (assoc 0 (entget (car pick)))) '("TEXT" "MTEXT")))
(setq height (autocats-theight-value (car pick)))))
(progn
(initget 6)
(setq height (getdist "\n[THEIGHT] 적용할 문자 높이: "))))
(if (null height)
(princ "\n[THEIGHT] 올바른 문자 높이를 지정해야 합니다.")
(progn
(princ "\n[THEIGHT] 높이를 변경할 TEXT 또는 MTEXT를 선택하세요.")
(setq ss (ssget '((0 . "TEXT,MTEXT"))))
(if ss
(progn
(setq doc (vla-get-ActiveDocument (vlax-get-acad-object))
idx 0 changed 0 skipped 0)
(vla-StartUndoMark doc)
(setq undo-open T)
(while (< idx (sslength ss))
(setq ent (ssname ss idx))
(if (or (autocats-theight-locked-p ent)
(not (autocats-theight-apply ent height)))
(setq skipped (1+ skipped))
(setq changed (1+ changed)))
(setq idx (1+ idx)))
(vla-EndUndoMark doc)
(setq undo-open nil)
(princ (strcat "\n[THEIGHT] 완료: " (itoa changed)
"개 변경 / " (itoa skipped) "개 건너뜀 / 높이 "
(rtos height 2 4))))
(princ "\n[THEIGHT] 선택된 문자가 없습니다."))))
(princ))
(princ "\n[AutoCATS] THEIGHT 로드 완료 - 명령행에 THEIGHT 를 입력하세요.")
(princ)
호환 CAD
위 환경에서 확인했습니다. 목록에 없는 CAD는 샘플 도면에서 먼저 결과를 대조한 뒤, CAD 종류·버전과 함께 네이버 카페에 알려주세요.
이 기능, CATS Pro에는 버튼으로 있습니다
PG_TXTHEIGHT / CATS_PG_TXTHEIGHTCATS Pro에서는 문자 도구 모음과 연결해 높이 변경 결과를 더 빠르게 관리합니다.CATS Pro는 계속 무료입니다. 리습 로드 없이 버튼 클릭으로 같은 작업을 처리할 수 있습니다.
함께 쓰면 좋은 CATS 명령
자주 묻는 질문
문자 스타일의 고정 높이도 바꿀 수 있나요?
스타일에 의해 높이가 고정되어 변경할 수 없는 문자는 건너뜁니다.
잘못 적용하면 되돌릴 수 있나요?
명령 전체가 하나의 UNDO 그룹이므로 U 한 번으로 되돌릴 수 있습니다.