오토캐드 (AutoCAD) AutoLisp 연습예제 - 선택한 원에 넘버링 작성하기

오토캐드 (AutoCAD) AutoLisp 연습예제 - 선택한 원에 넘버링 작성하기

AutoCAD를 사용하다 보면 원안에 넘버링 숫자를 작성해야 할 경우 있습니다.
선택한 원 순서대로 또는 원이 그려진 순서대로 선택하여 작성할 수 있으며, 넘버링의 시작 값을 입력하여 넘버링을 작성할 수 있습니다.


이 예제는 원을 기준으로 하였지만, 사용하실 경우 다른 객체를 기준으로 작성할 수 있습니다.

(defun c:draw-circles ()

  (setq draw-mode (getint "\n모드 선택: 1 (선택한 순서대로), 2 (그려진 순서대로): ")) ; 모드 선택

  (setq num (getint "\n시작할 숫자입력<1>:"))

  (if (not num) (setq num 1))


 (if (or (= draw-mode 1) (= draw-mode 2)) ; 올바른 모드인지 확인

    (progn

      (setq ss (ssget '((0 . "CIRCLE")))) ; 원 선택

      (if ss

        (progn

          (setq i 0)

          (repeat (sslength ss)

            (if (= draw-mode 1) ; 선택한 순서대로 그리기

              (setq circle (ssname ss i))

              (setq circle (ssname ss (1- (- (sslength ss) i) ) ) )) ; 그려진 순서대로 그리기


            (setq center (cdr (assoc 10 (entget circle)))) ; 원의 중심 좌표

(command "TEXT" "j" "mc" center (getvar 'textsize) 0 num) ; 중심에 텍스트 추가 (높이 0.5)

            (setq i (1+ i))

            (setq num(1+ num))

          )

        )

        (princ "\n선택된 원이 없습니다.") ; 원이 선택되지 않았을 때 메시지 출력

      )

    )

    (princ "\n잘못된 모드 선택입니다.") ; 잘못된 모드 선택 시 메시지 출력

  )

  (princ)

)

사용 방법:

1. 위 코드를 LISP 파일(.lsp)로 저장합니다.

2. AutoCAD에서 APPLOAD 명령어를 사용하여 파일을 로드합니다.

3. 명령어 입력란에 draw-circles를 입력하고 Enter를 누릅니다.

4. 선택모드 : 선택한 순서 1, 그려진 순서 2를 선택합니다.

5. 넘버링 초기값을 입력합니다.

6. 원을 선택하면, 넘버링이 작성됩니다.

이 코드는 선택한 원의 중심에 사용자가 입력한 숫자를 텍스트로 추가해줍니다. 필요에 따라 텍스트의 높이와 다른 속성을 조정할 수 있습니다.

이 코드는 여러분이 도면에 사용하시라는 것은 아니고, AutoLisp을 연습할 수 있는 예제임을 알려 드립니다.

캐드(AutoCAD)에서 응용프로그램(Appload) 로드 / 사용방법 자세히 알아보기