선택한 문자의 내용을 클립보드(Clipboard)에 복사하는 리습
도면에 있는 문자를 복사해서, 다른 곳에 Ctrl + V로 붙여 넣는 작업은 불편합니다. 문자를 Ctrl + C를...
blog.naver.com
이걸 기초로 MTEXT를 폭파한 뒤 문자열을 가져온 후 다시 "TXT2MTXT"로 복구시킨 급하게 만든 리습
위 링크가 더 고급지지만... 일단 만들어 봄
(defun c:XX ( / mt p tx en html)
(setq mt (entsel))
(setq p (nth 0 (cdr mt)))
(command "explode" mt)
(setq tx (nentselp p))
(setq tx (cdr (assoc 1 (entget (car tx)))))
(vlax-invoke (vlax-get (vlax-get (setq html (vlax-create-object "htmlfile")) 'ParentWindow) 'ClipBoardData) 'setData "Text" tx)
(vlax-release-object html)
(command "TXT2MTXT" (nentselp p) "")
(princ)
)
더 고급진 코드임
;Copy Text To Clipboard
(defun c:CopyText2ClipBoard ( / en tx html)
(and (setq en (ssget ":S" '((0 . "*TEXT"))))
(setq en (ssname en 0))
(setq en (vlax-ename->vla-object en))
(vlax-property-available-p en 'textstring)
(setq tx (lm:unformat (vla-get-textstring en) T))
(vlax-invoke (vlax-get (vlax-get (setq html (vlax-create-object "htmlfile")) 'ParentWindow) 'ClipBoardData) 'setData "Text" tx)
(vlax-release-object html)
)
(princ)
)
;;-------------------=={ UnFormat String }==------------------;;
;; ;;
;; Returns a string with all MText formatting codes removed. ;;
;;------------------------------------------------------------;;
;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;;
;;------------------------------------------------------------;;
;; Arguments: ;;
;; str - String to Process ;;
;; mtx - MText Flag (T if string is for use in MText) ;;
;;------------------------------------------------------------;;
;; Returns: String with formatting codes removed ;;
;;------------------------------------------------------------;;
(defun LM:UnFormat ( str mtx / _replace rx )
(defun _replace ( new old str )
(vlax-put-property rx 'pattern old)
(vlax-invoke rx 'replace str new)
)
(if (setq rx (vlax-get-or-create-object "VBScript.RegExp"))
(progn
(setq str
(vl-catch-all-apply
(function
(lambda ( )
(vlax-put-property rx 'global actrue)
(vlax-put-property rx 'multiline actrue)
(vlax-put-property rx 'ignorecase acfalse)
(foreach pair
'(
("\032" . "\\\\\\\\")
(" " . "\\\\P|\\n|\\t")
("$1" . "\\\\(\\\\[ACcFfHLlOopQTW])|\\\\[ACcFfHLlOopQTW][^\\\\;]*;|\\\\[ACcFfHLlOopQTW]")
("$1$2/$3" . "([^\\\\])\\\\S([^;]*)[/#\\^]([^;]*);")
("$1$2" . "\\\\(\\\\S)|[\\\\](})|}")
("$1" . "[\\\\]({)|{")
)
(setq str (_replace (car pair) (cdr pair) str))
)
(if mtx
(_replace "\\\\" "\032" (_replace "\\$1$2$3" "(\\\\[ACcFfHLlOoPpQSTW])|({)|(})" str))
(_replace "\\" "\032" str)
)
)
)
)
)
(vlax-release-object rx)
(if (null (vl-catch-all-error-p str))
str
)
)
)
)
LEE MAC 은 대단 분 ^^
반응형
'autocad' 카테고리의 다른 글
| 모든 라인 중 가장 작은 X 좌표 lisp acad (0) | 2026.07.10 |
|---|---|
| 태그 블럭 안에 있는 해치 레이어 바꾸기 (0) | 2026.07.06 |
| 모든 해치 삭제하기 (0) | 2026.06.26 |
| Xref > Bind > Saveas (0) | 2026.06.25 |
| 열린 도면 모두 저장하기 (0) | 2026.06.24 |