如何用VLISP 程序实现:把CAD里面文字复制粘贴板里面,可以用CTRL+V,在文本里粘贴
本帖最后由 zhb236623 于 2011-12-3 19:13 编辑如何用VLISP 程序实现如下功能:
在图形里面有文字 “砖” 利用LISP程序复制这个文字。。然后可以把这个文字放到粘贴板里面。也就是说可以打开一个文本文件,然后可以把这个文字粘贴在这个文本文件里面。。。
用_.ddedit命令可以实现,如何用命令方式怎么实现呢。
想实现的功能是图纸里面文字“123/456/789”-》“123-456-789”到剪切板里面,然后可以在打开的文本文本文件里面粘贴得到“123-456-789”
Gu_xl 发表于 2011-12-2 18:02
为何不直接用(open filename "a")方法将文字写入文件?
下面提供两个剪贴板操作函数!
这东西怎么用啊,我加载之后按a没反应啊 zhb236623 发表于 2011-12-3 19:13
借用了yucpp 的程序 http://bbs.mjtd.com/thread-85614-1-1.html
也谢谢Gu_xl
非常感谢您的分享 真好用 感谢您的分享:lol
CTRL+V,在文本里粘贴时 不能换行,
能换行就更好用, 本帖最后由 Gu_xl 于 2011-12-2 18:06 编辑
为何不直接用(open filename "a")方法将文字写入文件?
下面提供两个剪贴板操作函数!
;;;将文本复制到剪贴板
(defun CopytoClipboard(text / Clip_board)
(setq Clip_board (Vlax-Get-Property (Vlax-Get (vlax-create-object "htmlfile") 'ParentWindow) 'ClipboardData))
(Vlax-Invoke Clip_board 'SetData "text" text)
(vlax-release-object Clip_board)
text
)
;;;从剪贴板拷贝文本
defun GetClipboard(/ Clip_board text)
(setq Clip_board (Vlax-Get-Property (Vlax-Get (vlax-create-object "htmlfile") 'ParentWindow) 'ClipboardData))
(setq text (Vlax-Invoke Clip_board 'GetData "text"))
(vlax-release-object Clip_board)
text
)
本帖最后由 zhb236623 于 2011-12-3 14:10 编辑
Gu_xl 发表于 2011-12-2 18:02 http://bbs.mjtd.com/static/image/common/back.gif
为何不直接用(open filename "a")方法将文字写入文件?
下面提供两个剪贴板操作函数!
谢谢楼主。下来看一下。宗地图里面有地号:350000/222/222/222/000 然后图形存盘的时候要把这个地号加在DWG图形文件名中 即 宗地图.dwg-> 宗地图(350000-222-222-222-000).dwg所以需要这个功能。。。 同行啊! 本帖最后由 zhb236623 于 2011-12-3 19:13 编辑
借用了yucpp 的程序 http://bbs.mjtd.com/thread-85614-1-1.html
也谢谢Gu_xl
;;程序中的字符串哪里来的?我有个从cad中复制到剪切板的。
;;;=================================================================*
;;;功能:向系统剪贴板写入文字 *
(defun ZML-CLIP-SETSTRING (STR / HTML RESULT)
(and (= (type STR) 'STR)
(setq HTML (vlax-create-object "htmlfile"))
(setq RESULT (vlax-invoke
(vlax-get (vlax-get HTML 'PARENTWINDOW)
'CLIPBOARDDATA
)
'SETDATA
"Text"
STR
)
)
(vlax-release-object HTML)
)
)
;;;=================================================================*
;;函数测试
(defun c:wc ()
(vl-load-com)
(setq txtss (ssget '((0 . "*TEXT"))))
(while (> (sslength txtss) 1)
(alert "只能选择一个文字串,请重新选择!")
(setq txtss (ssadd))
(setq txtss (ssget '((0 . "*TEXT"))))
)
(setq txtcon (cdr (assoc 1 (entget (ssname txtss 0)))))
(setq ent_str_last (vl-string-translate "/" "-" txtcon))
(setq ent_str_last_kuahao (strcat "(" ent_str_last ")"))
(ZML-CLIP-SETSTRING ent_str_last_kuahao)
(princ "\n文字已复制到剪切板,可以直接粘贴了!")
(princ)
)
zyhandw 发表于 2011-12-3 15:21 static/image/common/back.gif
同行啊!
程序弄好,欢迎试用下。。。 Gu_xl 发表于 2011-12-2 18:02 static/image/common/back.gif
为何不直接用(open filename "a")方法将文字写入文件?
下面提供两个剪贴板操作函数!
再次麻烦下版主。如何去掉字符串是的引号 ""呢。。http://bbs.mjtd.com/forum.php?mod=viewthread&tid=90830&page=1&extra=#pid495181pid495181 谢谢。。 zhb236623 发表于 2011-12-3 19:23 static/image/common/back.gif
程序弄好,欢迎试用下。。。
试用了一下,不错!谢谢!! zyhandw 发表于 2011-12-4 20:49 static/image/common/back.gif
试用了一下,不错!谢谢!!
可以再试一下这个。http://bbs.mjtd.com/forum.php?mod=viewthread&tid=90830&page=1&extra=#pid495181pid495181
如果一张图上有新老地号都要的话可以用这个。。。 天天为这个问题困扰,现在终于找到解决的方法,谢谢各位!
页:
[1]
2