객체 특성 조회 리습 (OBJINFO)

객체별 종류·핸들·레이어·길이·면적을 명령행에 출력합니다.

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

이럴 때 사용하세요

수량을 세기 전에 객체 종류와 레이어를 확인하거나 특정 객체의 핸들을 기록할 때 사용합니다.

지원 범위와 주의사항

  • 현재 선택한 최상위 객체를 조회합니다. 블록 내부 합계는 계산하지 않습니다.
  • 길이·면적 속성이 없는 객체는 -로 출력합니다. 단위 환산은 하지 않습니다.
  • 면적은 CAD 객체의 속성값입니다. 열린 곡선은 면적을 표시하지 않습니다.

코드에서 살펴볼 부분

c:OBJINFO는 입력을 받고, autocats-objinfo-로 시작하는 함수가 실제 처리를 맡습니다. 객체 선택 조건과 입력값 검사를 먼저 확인하면 다른 도면 작업에도 응용할 수 있습니다.

각 파일은 단독으로 로드할 수 있습니다. CATS Pro 설치가 필요하지 않으며, 같은 이름의 사용자 명령이 있다면 defun c: 이름을 바꿔 사용하세요.

HOW TO USE

사용 순서

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

    autocats-object-info.lsp를 다운로드하고 APPLOAD로 로드합니다.

  2. 2

    OBJINFO를 입력합니다.

  3. 3

    명령행 안내에 따라 값을 입력하거나 기준 객체를 고릅니다.

  4. 4

    대상 객체를 선택하고 Enter를 누른 뒤 결과를 확인합니다.

SOURCE

코드 전문

명령 OBJINFO

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

.lsp 다운로드
;;; AutoCATS 리습 자료실
;; 명령: OBJINFO
;; 기능: 객체별 종류·핸들·레이어·길이·면적을 명령행에 출력합니다.
;; 출처: https://www.autocats.co.kr/lisp/object-info
;; 버전: 1.0 (2026-10-23)
;; 라이선스: 자유 사용·수정, 재배포 시 출처(autocats.co.kr) 표기
;; 안전: 잠긴 레이어·외부참조 보호, 변경은 UNDO 그룹, 명령별 범위는 상세 가이드 참고

(vl-load-com)

(defun autocats-objinfo-get (ent property / result)
  (setq result (vl-catch-all-apply
      '(lambda ()
        (if (= property 'Area)
          (progn (command "_.AREA" "_Object" ent) (getvar "AREA"))
          (vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent))))))
  (if (vl-catch-all-error-p result) nil result))

(defun autocats-objinfo-metric (ent property / data kind)
  (setq data (entget ent) kind (cdr (assoc 0 data)))
  (if (or (/= property 'Area) (member kind '("CIRCLE" "REGION" "HATCH"))
      (and (= kind "LWPOLYLINE") (= 1 (logand 1 (cdr (assoc 70 data))))))
    (autocats-objinfo-get ent property)))
(defun autocats-objinfo-data (ent / data)
  (setq data (entget ent))
  (list (cdr (assoc 0 data)) (cdr (assoc 5 data)) (cdr (assoc 8 data))
    (autocats-objinfo-metric ent 'Length) (autocats-objinfo-metric ent 'Area)))
(defun autocats-objinfo-format (value) (if (numberp value) (rtos value 2 4) "-"))

(defun c:OBJINFO (/ *error* undo-open index row selection)
  (defun *error* (msg)
    (if undo-open (progn (command-s "_.UNDO" "_End") (setq undo-open nil)))
    (if (and msg (not (wcmatch (strcase msg) "*CANCEL*,*QUIT*,*EXIT*,*취소*")))
      (princ (strcat "\n[OBJINFO] 중단: " msg)))
    (princ))

  (setq selection (ssget) index 0)
  (if selection (repeat (sslength selection)
      (setq row (autocats-objinfo-data (ssname selection index)))
      (princ (strcat "\n" (car row) " #" (cadr row) " / " (caddr row)
          " / L=" (autocats-objinfo-format (nth 3 row)) " / A=" (autocats-objinfo-format (nth 4 row))))
      (setq index (1+ index))))

  (princ))

(princ "\n[AutoCATS] OBJINFO 로드 완료")
(princ)
COMPATIBILITY

호환 CAD

AutoCAD 2021AutoCAD 2026

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

WORKS WELL WITH

함께 쓰면 좋은 CATS 명령

전체 명령 보기
PG_OBJINFO / CATS_PG_OBJINFOCATS Pro의 PG_OBJINFO 관련 작업을 명령 탐색기에서 확인할 수 있습니다. 아래 리습은 설명된 범위의 독립 예제입니다.
FAQ

자주 묻는 질문

CATS Pro와 기능이 완전히 같은가요?

CATS Pro의 PG_OBJINFO 관련 작업을 명령 탐색기에서 확인할 수 있습니다. 아래 리습은 설명된 범위의 독립 예제입니다.

변경을 되돌릴 수 있나요?

도면을 변경하는 명령은 한 UNDO 그룹으로 묶습니다. 완료 후 U로 되돌릴 수 있습니다. 집계·조회 명령은 도면을 변경하지 않습니다. 작업 전 복사본에서 결과를 확인하세요.

WORKFLOW PRODUCTS

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

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

FREE LISP + FREE ADD-IN

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

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