1. 캐드 대문자 소문자 변환
AutoCAD에서 도면에 작성된 부품명이나 주석을 작성하면 대, 소문자 변환을 해야 할 때가 있습니다. 이미 작성된 문자를 편집을 통해 변환하는 방법은 상당히 번거로운 작업인데요. 오늘은 이미 작성된 문자를 대문자 소문자 변환하는 방법에 대해 살펴보겠습니다.
1) 대/소문자 변환하기 – Tcase (Express tools)
AutoCAD의 Express Tool에는 다양한 기능을 제공하는데요. “Tcase”라는 명령을 입력하거나 도구 팔레트 메뉴에서 Express Tool → Modify Text → Change Case를 선택하면 다양한 변환 기능을 사용할 수 있습니다.
익스프레스 툴은 사용하는 캐드 버전에 따라 지원되지 않을 수 있으며, AutoCAD LT에서는 지원하지 않습니다.
▼ 실행하면 아래와 같이 선택할 수 있는 메뉴가 나오는데요. 메뉴별로 사용하는 방법과 결과를 확인해보겠습니다.
① Sentence Case – 말 그대로 문장에 사용하는 형식으로 선택한 문자열의 첫 단어를 대문자로 변환합니다.
② lowercase – 선택한 문자열을 모두 소문자로 변환합니다.
③ UPPERCASE – 선택한 문자열을 모두 대문자로 변환합니다.
④ Title – 선택한 문자열을 띄어쓰기 기준으로 앞 문자를 대문자로 변환합니다. 띄어쓰기가 없으면, 가장 앞에 있는 문자만 대문자로 변환하고 나머지 문자는 모두 소문자로 변환됩니다.
⑤ tOGGLE cASE. – 선택한 문자열의 띄어쓰기 기준으로 앞 문자를 소문자로 변환합니다. 띄어쓰기가 없으면, 가장 앞에 있는 문장만 소문자로 변환하고 나머지 문자는 모두 대문자로 변환됩니다.
2) 문자 공백 제거 리습(lisp)
문자열의 공백을 제거하는 리습입니다. 단일 문자(dtext), 여러줄 문자(mtext)에서도 사용할 수 있습니다. 사용방법은 명령어 BRT를 입력하고 공백을 제거할 문자를 선택합니다. 다중 선택도 가능하니 꼭 수정할 문자만 선택하시기 바랍니다. 리습(lisp) 사용방법은 아래 포스팅을 참고하시기 바랍니다.
(DEFUN C:BRT (/ txt i ent txt1 txt2 txt3 ent)
(princ "\nSelect a character:")
(setq txt (ssget '((0 . "TEXT,MTEXT"))))
(setq i 0)
(repeat (sslength txt)
(setq ent (entget (ssname txt i)))
(setq txt1 (assoc 1 ent))
(setq txt2 (cdr txt1))
(setq txt3 (cdr txt1))
(while (/= (vl-string-search " " txt2) nil)
(setq txt2 (vl-string-subst "" " " txt2))) ; 모든 공백 제거
(entmod (subst (cons 1 txt2) (cons 1 txt3) ent))
(setq i( + i 1))
(princ)))
3) 대문자 변환 리습
아래는 대문자 변환 리습입니다. 문자열을 다중으로 선택할 수 있으며, 단일 문자(dtext), 여러줄 문자(mtext) 모두 사용할 수 있는 리습입니다. 실행 명령은 upc를 입력하고 객체를 선택하면 해당 문자열을 모두 대문자로 변환합니다.
(DEFUN C:upc (/ txt i ent txt1 txt2 txt3 ent)
(princ "\nSelect a character:")
(setq txt (ssget '((0 . "TEXT,MTEXT"))))
(setq i 0)
(repeat (sslength txt)
(setq ent (entget (ssname txt i)))
(setq txt1 (assoc 1 ent))
(setq txt2 (cdr txt1))
(setq txt3 (strcase txt2))
(entmod (subst (cons 1 txt3) (cons 1 txt2) ent))
(setq i( + i 1))
(princ)))
4) 소문자 변환 리습
소문자 변환 리습입니다. 명령은 lpc이며, 아쉽게도 단일 문자(dtext)만 사용할 수 있습니다. 여러줄 문자는 explode를 이용하여 단일 문자로 변경 후 사용하시면 됩니다. 단일 문자에서 여러줄 문자로 변환하는 방법은 아래 포스팅을 참고하세요.
오토캐드(AUTO CAD) 여러 문자(DTEXT)를 여러 줄 문자(MTEXT)로 합치기
(DEFUN C:lpc (/ txt i ent txt1 txt2 txt3 ent)
(princ "\nSelect a character:")
(setq txt (ssget '((0 . "TEXT"))))
(setq i 0)
(repeat (sslength txt)
(setq ent (entget (ssname txt i)))
(setq txt1 (assoc 1 ent))
(setq txt2 (cdr txt1))
(setq txt3 (strcase txt2 t))
(entmod (subst (cons 1 txt3) (cons 1 txt2) ent))
(setq i( + i 1))
(princ)))