오토캐드 (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을 연습할 수 있는 예제임을 알려 드립니다.