프로그램
캐드 분류

문자 찾아 바꾸는 리습에서 attribute 문자가 안되는데 어디를 변경해야 할까요??

컨텐츠 정보

  • 133 조회
  • 2 댓글
  • 0 추천
  • 0 비추천
  • 목록

본문

아래 리습은 문자를 찾아 바꿔주는 리습입니다.

헌데 문제는 도면안에 있는 속성문자들은 바꿔 주지 못하는데…

속성문자까지도 바꿔 주려면 어느 부분을 수정해야 할까요??

또 지금은 대,소문자를 구분해서 정확히 입력해야만 명령이 수행되는데

대소문자 구분없이 내용만 같으면 인식하여 변경하도록 할 수 있을까요??

조언 부탁드립니다^^


(defun c:fr()
           (setq OldTxt (getstring T "nEnter the old text: ")
                       NewTxt (getstring T "nEnter the new text: "))



           (setq ss (ssget "x" '((0 . "TEXT,MTEXT"))))
  (vl-load-com)



           (setq i (sslength ss))


           (while (not (minusp (setq i (1- i))))


                     (setq oText (vlax-ename->vla-object (ssname ss i)))
                     (setq Txt (vlax-get-property oText 'TextString))


                     (if (vl-string-search OldTxt txt)


                                (progn
                                          (setq newChg (vl-string-subst NewTxt OldTxt txt))


                                          (vlax-put-property oText 'TextString newchg)


                                          (vlax-invoke-method oText 'Update)


                                )
                     )
           )
           (princ)
)



 

관련자료

댓글 2

조용!!님의 댓글

(vl-load-com) (defun c:fr()   (setq OldTxt (getstring T "nEnter the old text: ")  NewTxt (getstring T "nEnter the new text: "))   (setq ss (ssget "x" '((0 . "TEXT,MTEXT")))); "x" 도면 전체 검색.   ;(setq ss (ssget '((0 . "TEXT,MTEXT,ATTDEF")))); ATTDEF 선택가능.   (setq i (sslength ss))   (while (not (minusp (setq i (1- i)))) ;nil 까지. 무한반복.     (setq oText (vlax-ename->vla-object (ssname ss i)))     (setq Txt (vlax-get-property oText 'TextString))         (setq Txt (strcase Txt));대문자로 변경.     (setq oldTxt (strcase oldTxt))         ;(setq Txt (strcase Txt T));소문자로 변경.     ;(setq oldTxt (strcase oldTxt t))         (if (vl-string-search oldTxt txt)       (progn  (setq newChg (vl-string-subst NewTxt OldTxt txt))  (vlax-put-property oText 'TextString newchg)  (vlax-invoke-method oText 'Update)  )       )     )   (princ) )

;맘에 안드실듯 하네요.. ;Today is Sunday ;new Monday ;old sunday ;-> TODAY IS Monday ;설명이 어렵네요.. ;new는 new그대로.. 나옵니다. ;바꾸실려면… newTxt 를 (strcase newTxt)  or T 추가.. 하시면 됩니다.

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