프로그램
캐드 분류

FIND TEXT LISP 수정 가능한가요? (띄어쓰기는 인식 실패)

컨텐츠 정보

본문

안녕하세요
아래 LISP은 똑같은 TEXT를 찾아  (0.0) 에서 선으로 TEXT까지 표시해주는 LISP 입니다.
한가지 아쉬운점이 있다면 띄어쓰기된 글자는 인식을 못하는 점인데요

가령 "ABC" 라는 글자를 찾을때 "ABC" 를 입력해서 찾으면 잘 실행이 되는데요
반면 "AB C"라는 글자를 (B와 C사이는 띄어쓰기) 찾을때  "AB C"를 입력할때 오류가 납니다.

스페이스바를 LISP 실행하는걸로 인식하는듯 보이네요

"찾고 싶은 텍스트를 입력해주세요 " 라는 입력시에 스페이스바 말고 엔터키로 실행이 되게 하는 방법이 있을까요?

혹시 띄어쓰기 는 글자로 인식을 못하는건가요?

고수님들의 의견을 여쭙니다


(defun c:ft()
 (setvar "cmdecho" 0)
 (setq imsi (getvar "clayer"))
 (setq ob (ssget "x" '((0 . "text"))))
 (setq count (sslength ob))
 (setq a5 (getstring "★ 찾고 싶은 텍스트를 입력해주세요 ===> "))
 (setq num 0)
   (repeat count
    (setq name (ssname ob num))
    (setq xxlist (entget name))
     (progn
       (setq enti1  (cdr (assoc -1 xxlist)))
       (setq text2  (cdr (assoc 1 xxlist)))
       (setq dxy (assoc 10 xxlist))
       (setq x (nth 1 dxy))
       (setq xx (rtos x))
       (setq y (nth 2 dxy))
       (setq yy (rtos y))
       (setq xy (strcat xx "," yy))
       (if (= text2 a5)
        (progn
         (command "pline" "0,0″ xy "")
        );progn
       );if
      );progn
     (setq num (+ num 1))(princ)
    );repeat
);end_defun

관련자료

댓글 3

장씨형님님의 댓글

추가로 질문드립니다… 위에 lisp에서 mtext 의 글자도 찾게 하는 방법이 있을까요?  (setq ob (ssget "x" '((0 . "text,mtext"))))    <– 이렇게 바꿔도 안되드라구요,, 부탁드립니다..

수야12님의 댓글

 (setq a5 (getstring "★ 찾고 싶은 텍스트를 입력해주세요 ===> ")) 이부분에

 (setq a5 (getstring T "★ 찾고 싶은 텍스트를 입력해주세요 ===> ")) "T" 추가하시면 됩니다 
여분필드1 여분필드2 여분필드3
전체 69 / 3 페이지
번호
제목
이름
알림 0