프로그램
캐드 분류

글자 찾기 리습 수정 도와 주세요~

컨텐츠 정보

  • 374 조회
  • 8 댓글
  • 0 추천
  • 0 비추천
  • 목록

본문

안녕하세요

아래 리습은 글자 찾기 리습입니다.
글자를 입력하면 그 글자가 포함된 TEXT를  0.0에서 선으로 표시 해주는 리습인데요

아쉬운 부분이 있다면 , MTEXT는 인식을 못하는거 같아요
MTEXT도 인식 할수 있게 변경이 가능한가요??
고수님들의 도움 부탁드립니다.


(defun c:FT()
 (setvar "cmdecho" 0)
 (setq imsi (getvar "clayer"))
 (setq ob (ssget "x" '((0 . "text"))))
 (setq count (sslength ob))
 (setq a5 (getstring T "찾고 싶은 텍스트 전체를 입력해주세요 ==> "))
 (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

관련자료

댓글 8

수야12님의 댓글

제가 아는 방법으로는 strcase 함수를 사용 하여 둘다 대문자로 통일 시킵니다

비교문에서 비교 할때

엔씨벤딩님의 댓글

그리고 , 혹시 글자검색할 때 대소문자 구분없이 모두 검색하려면 어떤 코드 추가하면 되나요????

수야12님의 댓글

감사합니다 쪽지 보내 드렸어요 emoticon

엔씨벤딩님의 댓글

리습 수정 감사합니다. VBA모듈 올리는 법은 동영상 만들어서 개인 메일로 보내드릴게요. 이번주는 바쁠거 같고, 다음주 정도에 시간 될 거 같애요. 메일주소 알려주세요.

수야12님의 댓글

 (if (= text2 a5) 이부분을

(if (wcmatch text2(strcat a5 "*")) 이런식으로 바꾸면 됩니다 

엔씨벤딩님의 댓글

이거 좋은 기능인거 같은데 약간 아쉽네요. 문자내용이 완전히 일치해야만 찾아주는 것 같습니다만…. 찾는 문자가 텍스트의 일부분일 경우에도 검색이 되도록 확장하면  더 좋을 거 같아요 수정 가능하신 분 있으시면 수정 좀 부탁해봅니다.

장씨형님님의 댓글

감사합니다,, 이렇게 쉬운줄도 모르고 ㅠㅠ  좋은 하루 보내세요

상큼메론90님의 댓글

emoticon

(setq ob (ssget "x" '((0 . "text"))))    <— 이것을

(setq ob (ssget "x" '((0 . "text,mtext"))))   으로 바꾸면 간단히 해결 될 듯..

.

여분필드1 여분필드2 여분필드3
전체 7,152 / 1 페이지
번호
제목
이름
알림 0