• Daum
  • |
  • 카페
  • |
  • 테이블
  • |
  • 메일
  • |
  • 카페앱 설치
 
카페정보
아키모아(Archimore)
 
 
 
카페 게시글
검색이 허용된 게시물입니다.
★ CAD/LISP/분과 Q&A [Lisp] 텍스트 변경!!!리습 질문드립니다!
바부야 추천 0 조회 205 16.12.08 09:50 댓글 20
게시글 본문내용
 
다음검색
첨부된 파일
댓글
  • 16.12.08 11:05

    첫댓글 단축키와 변경할 문자열은 아래 구문에서 변경해서 사용하세요~
    일단 설명주신대로 동작하도록 구문 작성해두었습니다.

    (defun c:pd nil (#TXCHANGE "PRESS" "DIE"))
    (defun #TXCHANGE ($TXO $TXC / ss n ob)
    (vl-load-com)
    (or (setq ss (ssget (list (cons 1 (strcat "*" $TXO "*"))))) (quit))
    (setq n (sslength ss))
    (repeat n
    (setq ob (vlax-ename->vla-object (ssname ss (setq n (1- n)))))
    (vla-put-TextString ob (vl-string-subst $TXC $TXO (vla-get-TextString ob)))
    )
    (sssetfirst nil ss)
    (prompt (strcat "\n" (rtos (sslength ss) 2 0) "개의 문자가 변경 되었습니다."))
    (princ)
    )

  • 작성자 16.12.08 11:15

    와 감사합니다 리습의고수시네요 !! 혹시 저 문자열 외적으로 설정안하고 아무거나 바로바로 123 -> 1 찍으면 123 되고 여러문구를 지정안하고 바로바로 하는 리습도 가능하시나요? ...넘욕심인거같지만 ㅠ

  • 16.12.08 11:42

    문자내용 전체를 복사하신다면 아래 주소의 리습으로 가능합니다.
    http://cafe.daum.net/archimore/ISg0/306

    문자내용 치환이라면 mtext일땐 좀 변수가 있을 수 있겠네요.
    앞서 답변 드린 구문에 아래 줄을 추가해보세요

    (defun c:tst (/ a b)
    (mapcar
    '(lambda (x y)
    (while
    (not
    (and
    (= (type (set x (entsel (strcat "\n" y "문자 객체 선택: ")))) 'LIST)
    (wcmatch (cdr (assoc 0 (set x (entget (car (eval x)))))) "*TEXT")
    )
    )
    (prompt "\n문자를 지정하세요.")
    )
    (set x (cdr (assoc 1 (eval x))))
    )
    '(a b) '("변경할 원본 내용을 가진 " "치환할 내용을 가진 ")
    )(#TXCHANGE a b)
    )

  • 작성자 16.12.08 11:59

    주소로 주신! 리습파일로 성공했습니다! 감사합니다!! 단축키 설정경우 F1 F2 (이에스시 옆라인) 자판 맨위에 줄에있는 F5로 하고싶은데 이런부분은 어떻게 설정하는지 알수있을까요?

  • 16.12.08 12:15

    @바부야 http://cafe.daum.net/archimore/ESJM/396

    저는 해보지 않았지만 위 글에서 mnu파일을 받아서 아래 부분을 수정하신 다음 올리면 작동 할 것 같습니다.

    ***accelerators
    ["F5"](c:DS)

  • 작성자 16.12.08 15:45

    @예성 초보자라 하다가 머날라가서 방금 ㅋㅋㅋ 캐드다시 깔았네요
    신경써주셔서감사합니다!. ㅅ성공햇네요 ....ㅋㅋㅋ감사합니다

  • 16.12.08 12:40

    감사합니다.

  • 작성자 16.12.08 15:57

    지금 텍스트 올렸는데 지금상태는 ex) 123 클릭 엔터 후 456 드래그 엔터 해야 123으로 바뀌는데 123 클릭후 456 찍으면 바로 바뀔수있게 수정해주실수 있으신가요?

  • 16.12.08 16:05

    ds 명령을 실행하고 모드(O)로 진입해서 실시간(R)로 변경해보세요~
    이걸 말하시는건가요?ㅎㅎ

  • 작성자 16.12.08 16:13

    제가예전에 썻던거 리습자체였었는데... 또 이렇게옵션으로도 할수 있다니.. ;; 예성님클라스!굳 입니다

  • 16.12.09 10:12


    (defun c:t1 ()
    (setvar "cmdecho" 0)
    (prompt "\n SELECT OF BASE TEXT :")
    (initget 1)
    (setq ens (entsel))
    (setq ent (entget (car ens)))
    (setq dx1(cdr (assoc 1 ent)))



    (while (/= nil)
    (prompt "\n SELECT OF change TEXT :")
    (initget 1)

    (setq ens (entsel))
    (setq ent (entget (car ens)))

    (setq dx2 (assoc 1 ent))
    (setq dx11 (cons 1 dx1))
    (setq chtext (subst dx11 dx2 ent))

    (entmod chtext)
    (princ)
    ) ;while
    )

  • 16.12.08 18:34

    간단하게 만들어 쓰고 있습니다. 참조 하세요.

  • 작성자 16.12.08 20:02

    Select object: ; error: bad argument type: FILE "B" 라고뜨면서
    ....안되네욤...;;ㅋㅋㅋㅋㅋㅋ

  • 16.12.09 09:48

    감사합니다~!!

  • 16.12.08 20:08

    잘 되는데

  • 작성자 16.12.09 08:51

    제가..초보자라 그런듯하네요 그래도감사합니다!

  • 16.12.09 09:48

    @바부야 (princ "\n dx1=" dx1) -> (princ (strcat "\n dx1=" dx1)) 바꾸면 잘 실행 됩니다..~!

  • 16.12.09 10:15

    (princ "\n dx1=" dx1) -> 삭제 해도 되는 부분 입니다.
    (princ "ent") -> 삭제 해도 되는 부분 입니다.
    위에 수정 하였습니다. ㅠㅠ
    참고로 치수 됩니다. (치수 속성 "<>")

  • 작성자 16.12.09 10:58

    오 한솔님 감사합니다! ㅋㅋ됐네요!!

  • 16.12.17 13:12

    감사합니다.

최신목록