(defun c:NN()
(setq name(vl-filename-base(getvar “dwgname”)));;
(setq ent_text (ssget (list (cons 0 “text”))) c 0)
(setq text_num (sslength ent_text))
(repeat text_num
(setq ent_lst (entget (ssname ent_text c)))
(entmod (subst (cons 1 name) (assoc 1 ent_lst) ent_lst))
(setq c ( + 1 c))
);;repeat
);;;NN
위에 리습은 이곳에서 얻은 임의의 텍스트를 파일 이름으로 바꾸는 리습입니다..
예를 들어 가나다라마.DWG 파일안에 있는 임의의 텍스트를 선택하면 가나다라마 라는 텍스트로 바뀌는 리습인데요…. 이걸 뒤에서 2자리를 뺀 가나다 텍스트로 출력할려면 어찌 해야 하나요??
나름 검색도 하고 찾아 봤지만 도통 알수가 없네요..
고수님들의 도움 부탁드립니다.
(defun c:NN( / name ent_text text_num ent_lst c )(vl-load-com)
(setq name(substr(vl-filename-base(getvar “dwgname”))1 6))
(setq ent_text (ssget (list (cons 0 “text”))) c 0)
(setq text_num (sslength ent_text))
(repeat text_num
(setq ent_lst (entget (ssname ent_text c)))
(entmod (subst (cons 1 name) (assoc 1 ent_lst) ent_lst))
(setq c ( + 1 c))
);;repeat
);;;NN
;; ex. (substr “string” 1 3) 문자의 1번째 부터 3번째까지만 출력하라 입니다
;; 그러나 한글은 한 문자당 2바이트씩 차지 하기 때문에 영문보다 2배 크게 사용합니다.
;;첨언합니다 (substr “ABCD” 1 3)이면 출력값이 “ABC” 이지만
;;(substr “가나다라마” 1 4)이면 출력값은 “가나” 입니다
연휴라 이렇게 빠른 답변글 기대 못했는데 정말 감사합니다…..하나 더 여쭙고 싶은게 있는데 파일명이
^^;; 간단합니다 저 위에 구문 응용하면 되죠..
(defun c:NN( / name len mu ent_text text_num ent_lst c )(vl-load-com)
(setq name(vl-filename-base(getvar “dwgname”)))
(setq len(strlen name))
(setq mu(- len 8)) ;; 여기서 8은 뒷자리 고정문자값 ex)xxxx-yyy-zzz 일때 -yyy-zzz 값
(setq name(substr name 1 mu))
(setq ent_text (ssget (list (cons 0 “text”))) c 0)
(setq text_num (sslength ent_text))
(repeat text_num
(setq ent_lst (entget (ssname ent_text c)))
(entmod (subst (cons 1 name) (assoc 1 ent_lst) ent_lst))
(setq c ( + 1 c))
);;repeat
);;;NN
오~~~~ 정말 감사합니다… 여긴 정말 고수분들이 많군요….