상세 컨텐츠

본문 제목

AutoCAD 선택한 치수나 문자에 기호를 추가하는 리습

기술 자료/CAD

by loveyevol 2024. 11. 11. 07:26

본문

AutoCAD에서 선택한 치수나 문자에 기호를 추가하는 리습

AutoCAD에서 선택한 치수나 문자에 기호를 추가하는 리습 프로그램

안녕하세요, 오늘은 AutoCAD에서 작업할 때 선택한 치수나 문자에 특정 기호를 손쉽게 추가할 수 있는 리습(LISP) 프로그램을 소개하려고 합니다. 이 프로그램은 반복적인 기호 추가 작업을 자동화하여 작업 효율을 높이는 데 도움이 됩니다.

기능 소개

이 리습 프로그램은 다음과 같은 기능을 제공합니다:

  • 선택한 치수나 문자에 지정한 기호를 추가합니다.
  • 이미 해당 기호가 포함되어 있으면 추가하지 않습니다.
  • 기호를 앞이나 뒤에 추가할 수 있으며, 공백을 선택적으로 삽입할 수 있습니다.
  • 사용자가 단축키(명령 이름)를 변경하여 사용할 수 있습니다.

사용 가능한 기호 및 코드

기호를 추가할 때 두 가지 방법으로 코드를 입력할 수 있습니다:

1) %% 코드 또는 특수문자 코드 사용

코드 기호 설명
%%C 또는 %%248 지름
%%D 또는 %%176 °
%%P 또는 %%177 ± 공차
%%178 ² 제곱
%%179 ³ 세제곱
%%215 × 곱하기
%%247 ÷ 나누기
%%33 ! 느낌표
%%34 " 따옴표

2) 유니코드 사용 (\U+코드)

코드 기호 설명
\U+2205 지름
\U+00B0 °
\U+00B1 ± 공차
\U+00B2 ² 제곱
\U+00B3 ³ 세제곱
\U+0278 ɸ 전기위상
\U+0394 Δ 델타
\U+0424 Ф 파이
\U+2104 중심선
\U+2126
\U+2220 각도
\U+2248 거의 같음
\U+2260 같지 않음
\U+2261 항등
\U+214A 판/특성 선
\U+E001 사용자 정의 기호
\U+E002
\U+E003
\U+E110
\U+E111
\U+E112
\U+E234 사용자 정의 기호
참고: 일부 기호는 유니코드로 표시되지 않을 수 있으나, 필요한 경우 해당 코드를 사용하여 추가할 수 있습니다.

사용 방법

  1. 리습 파일을 AutoCAD에 로드합니다.
  2. 아래의 사용자 설정 부분에서 필요한 값을 수정합니다:
    • symbol-code: 추가할 기호의 코드 (예: "%%C" 또는 "\U+2205")
    • add-position: 기호를 추가할 위치 ("앞" 또는 "뒤")
    • add-space: 기호와 텍스트 사이에 공백 추가 여부 (T 또는 nil)
    • c:QQ: 명령어 이름을 원하는 단축키로 변경 (예: c:ADDSYMBOL)
  3. 명령창에 단축키를 입력하고, 기호를 추가할 치수나 문자를 선택합니다.

코드 설명

아래는 리습 프로그램의 전체 코드입니다:

선택한 치수 또는 문자에 기호 추가하기.lsp
4.0 kB
(defun c:QQ (/ os ss sslen elist ass1 otxt ntxt k
                 symbol-code      ; 추가할 기호의 코드
                 symbol-pattern   ; 기호가 이미 있는지 확인하는 패턴
                 add-position     ; 기호를 앞에 추가할지 뒤에 추가할지 ("앞" 또는 "뒤")
                 add-space)       ; 기호와 텍스트 사이에 공백 추가 여부 (T 또는 nil)

  ;; 사용자 설정 부분 시작
  (setq symbol-code   "%%C")   ; 추가할 기호의 코드 (예: "%%C" 또는 "\U+2205")
  (setq add-position  "앞")    ; 기호 추가 위치: "앞" 또는 "뒤"
  (setq add-space     nil)     ; 기호와 텍스트 사이에 공백 추가 여부: T 또는 nil
  ;; 사용자 설정 부분 끝

  ;; 기호가 이미 있는지 확인하는 패턴 설정
  (setq symbol-pattern (strcat symbol-code "*"))

  (setvar "cmdecho" 0)
  (setq os (getvar "osmode"))
  (setvar "osmode" 0)
  (prompt "\n기호를 추가할 치수나 문자를 선택하세요 -> ")
  (setq ss (ssget))
  (if ss
    (progn
      (setq sslen (sslength ss) k 0)
      (while (< k sslen)
        (setq elist (entget (ssname ss k)))
        (setq ass1 (assoc 1 elist))
        (setq otxt (cdr ass1))
        (if (or (not otxt) (= otxt ""))
          (setq otxt "<>"))
        ;; 텍스트에 이미 기호가 없는 경우에만 추가
        (if (not (wcmatch otxt symbol-pattern))
          (progn
            ;; 공백 추가 여부에 따라 공백 설정
            (setq space (if add-space " " ""))
            ;; 기호를 앞 또는 뒤에 추가
            (setq ntxt
              (cond
                ((equal add-position "앞") (strcat symbol-code space otxt))
                ((equal add-position "뒤") (strcat otxt space symbol-code))
                (T otxt)))
            ;; 엔티티 리스트에서 텍스트 업데이트
            (setq elist (subst (cons 1 ntxt) ass1 elist))
            ;; 엔티티 수정 적용
            (entmod elist)
          )
        )
        (setq k (1+ k))
      )
    )
  )
  (setvar "osmode" os)
  (prin1)
)

코드 커스터마이징

1. 추가할 기호 변경

(setq symbol-code   "%%C")   ; 추가할 기호의 코드 (예: "%%C" 또는 "\U+2205")

원하는 기호의 코드를 symbol-code 변수에 입력합니다.

2. 기호 추가 위치 설정

(setq add-position  "앞")    ; 기호 추가 위치: "앞" 또는 "뒤"
  • "앞": 기존 텍스트 앞에 기호를 추가합니다.
  • "뒤": 기존 텍스트 뒤에 기호를 추가합니다.

3. 공백 추가 여부 설정

(setq add-space     nil)     ; 기호와 텍스트 사이에 공백 추가 여부: T 또는 nil
  • T: 기호와 텍스트 사이에 공백을 추가합니다.
  • nil: 공백 없이 기호를 추가합니다.

4. 명령어 단축키 변경

(defun c:QQ (...)

c:QQ에서 QQ를 원하는 단축키로 변경합니다. 예를 들어 c:ADDSYMBOL로 변경하면 명령창에서 ADDSYMBOL을 입력하여 실행할 수 있습니다.

사용 예시

  1. 리습 파일을 로드합니다.
  2. 명령창에 QQ(또는 설정한 단축키)를 입력합니다.
  3. "기호를 추가할 치수나 문자를 선택하세요"라는 메시지가 나타나면, 기호를 추가할 객체를 선택합니다.
  4. 선택한 객체에 설정한 기호가 추가됩니다.
주의사항:
- 이미 해당 기호가 포함된 텍스트나 치수에는 기호가 추가되지 않습니다.
- 일부 특수 기호는 폰트나 설정에 따라 제대로 표시되지 않을 수 있습니다.

결론

이 리습 프로그램을 통해 반복적인 기호 추가 작업을 자동화하여 작업 시간을 단축하고 효율성을 높일 수 있습니다. 필요에 따라 코드를 커스터마이징하여 자신만의 작업 환경을 구축해 보세요.

즐거운 작업 되세요!

728x90
반응형