안녕하세요? 눈팅만 하다 용기를 내어 처음 질문을 올려봅니다.
면적리습을 사용하고 있는데, 결과 값이 클립보드에 자동으로 복사되도록 수정할 수 있을까요?
그래서 ctrl+v만 하면 면적값을 붙여넣을 수 있는 상태가 되도록 하려 합니다.
게시판에 있는 많은 면적리습을 찾아보아도 그런 것은 없는 것 같아서요..
구글링을 하다가 다른 종류의 리습이지만 결과값이 클립보드로 복사되는 것을 발견했는데,
리습 다룰 줄을 몰라서 아무리 응용해 보려고 해도 작동하지 않더라구요. ㅜㅜ
혹시 다른 방법으로도 가능한 분 있으시면 가르침을 부탁드립니다.
공유
;; http://www.theswamp.org/index.php?topic=21764.msg263322#msg263322
(defun _SetClipBoardText ( text / htmlfile result )
;; Caller’s sole responsibility is to pass a
;; text string. Anything else? Pie in face.
(setq result
(vlax-invoke
(vlax-get
(vlax-get (setq htmlfile (vlax-create-object “htmlfile”)) ‘ParentWindow)
‘ClipBoardData
)
‘SetData “Text” text)
)
(vlax-release-object htmlfile)
text
)
Code: [Select]
;; MP
(defun _GetClipBoardText( / htmlfile result )
(setq result
(vlax-invoke
(vlax-get
(vlax-get (setq htmlfile (vlax-create-object “htmlfile”)) ‘ParentWindow)
‘ClipBoardData
)
‘GetData “Text”)
)
(vlax-release-object htmlfile)
result
)
님의 코드에 필요한 부분에 추가만 하면 되겠네요.
실행하고나서 ^V 하면 될 것 같습니다.
(defun c:test ( / ss index asum e obj tmparea msp spt txtobj )
(if (setq ss (ssget (list (cons 0 “CIRCLE,ARC,LWPOLYLINE,ELLIPSE,SPLINE”))))
(progn
(setq msp (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
(setq index 0 asum 0)
(repeat (sslength ss)
(setq e (ssname ss index))
(setq obj (vlax-ename->vla-object e))
(setq tmparea (vla-get-area obj))
(setq asum (+ asum tmparea))
(setq index (1+ index))
)
(_SetClipBoardText (strcat “n총 면적 = ” (rtos asum 2 8)))
(initget 1)
)
)
(princ)
)
오 세상에..ㅠㅠ 아주 잘 되네요.
친절한 답변 감사드립니다!!
.gif)