치수 소수 자리 변경 리습 (DPREC)

여러 치수의 기본 단위 표시 정밀도를 0자리부터 8자리까지 한 번에 맞춥니다.

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

치수 표기 정밀도 통일

도면마다 다르게 보이는 치수 소수 자리를 선택 범위에서 빠르게 통일합니다.

객체별 재지정

  • 선택한 치수 객체에만 적용합니다.
  • 입력 범위는 0~8이며 기본값은 2입니다.
  • 지원하지 않는 치수 형식과 잠긴 레이어는 건너뜁니다.
HOW TO USE

사용 순서

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

    APPLOAD로 dimension-precision.lsp를 로드합니다.

  2. 2

    DPREC를 입력합니다.

  3. 3

    변경할 치수를 선택합니다.

  4. 4

    표시할 소수 자리 0~8을 입력합니다.

SOURCE

코드 전문

명령 DPREC

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

.lsp 다운로드
;;; ------------------------------------------------------------
;;; AutoCATS 리습 자료실
;; 명령: DPREC
;; 기능: 선택 치수의 기본 단위 표시 소수 자리 일괄 변경
;; 출처: https://www.autocats.co.kr/lisp/dimension-precision
;; 버전: 1.0 (2026-07-27)
;; 라이선스: 자유 사용·수정, 재배포 시 출처(autocats.co.kr) 표기
;; 안전: *error* 핸들러 + UNDO 그룹, 지원하지 않는 치수 건너뜀
;;; ------------------------------------------------------------

(vl-load-com)

(defun autocats-dprec-locked-p (ent / row)
  (setq row (tblsearch "LAYER" (cdr (assoc 8 (entget ent)))))
  (and row (= 4 (logand 4 (cdr (assoc 70 row))))))

(defun autocats-dprec-apply (ent precision / old-value result)
  (setq old-value (getvar "DIMDEC")
        result
        (vl-catch-all-apply
          '(lambda ()
             (setvar "DIMDEC" precision)
             (command "_.DIMOVERRIDE" "DIMDEC" precision "" ent "")
             T)))
  (setvar "DIMDEC" old-value)
  (if (vl-catch-all-error-p result) nil result))

(defun autocats-dprec-value (ent / xdata items result)
  (setq xdata (assoc -3 (entget ent '("ACAD")))
        items (if xdata (cdr (car (cdr xdata))) nil)
        result nil)
  (while (and items (null result))
    (if (and (= (caar items) 1070)
             (= (cdar items) 271)
             (cadr items)
             (= (caadr items) 1070))
      (setq result (cdadr items))
      (setq items (cdr items))))
  result)

(defun c:DPREC (/ *error* doc undo-open precision 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[DPREC] 중단: " msg)))
    (princ))

  (initget 4)
  (setq precision (getint "\n[DPREC] 표시 소수 자리 0~8 <2>: "))
  (if (null precision) (setq precision 2))
  (if (> precision 8)
    (princ "\n[DPREC] 소수 자리는 0부터 8까지 입력해야 합니다.")
    (progn
      (princ "\n[DPREC] 정밀도를 변경할 치수를 선택하세요.")
      (setq ss (ssget '((0 . "DIMENSION"))))
      (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-dprec-locked-p ent)
                    (not (autocats-dprec-apply ent precision)))
              (setq skipped (1+ skipped))
              (setq changed (1+ changed)))
            (setq idx (1+ idx)))
          (vla-EndUndoMark doc)
          (setq undo-open nil)
          (princ (strcat "\n[DPREC] 완료: " (itoa changed)
                         "개 변경 / " (itoa skipped) "개 건너뜀")))
        (princ "\n[DPREC] 선택된 치수가 없습니다."))))
  (princ))

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

호환 CAD

AutoCAD 2021AutoCAD 2026

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

ONE-CLICK ALTERNATIVE

이 기능, CATS Pro에는 버튼으로 있습니다

PG_DIMPRECISION / CATS_PG_DIMPRECISIONCATS Pro에서는 통합 치수 도구에서 정밀도와 다른 치수 속성을 함께 정리합니다.

CATS Pro는 계속 무료입니다. 리습 로드 없이 버튼 클릭으로 같은 작업을 처리할 수 있습니다.

WORKS WELL WITH

함께 쓰면 좋은 CATS 명령

전체 명령 보기
PG_DIMPRECISION / CATS_PG_DIMPRECISIONCATS Pro에서 선택 치수의 Dimdec 값을 일괄 변경합니다.
FAQ

자주 묻는 질문

치수 스타일 전체가 바뀌나요?

아니요. 선택한 치수 객체의 표시 정밀도만 재지정합니다.

대체 단위 정밀도도 바뀌나요?

이 핵심 기능판은 기본 단위 정밀도만 변경합니다.

WORKFLOW PRODUCTS

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

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

FREE LISP + FREE ADD-IN

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

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