zhb236623 发表于 2011-12-2 17:40:22

如何用VLISP 程序实现:把CAD里面文字复制粘贴板里面,可以用CTRL+V,在文本里粘贴

本帖最后由 zhb236623 于 2011-12-3 19:13 编辑

如何用VLISP 程序实现如下功能:


在图形里面有文字   “砖”   利用LISP程序复制这个文字。。然后可以把这个文字放到粘贴板里面。也就是说可以打开一个文本文件,然后可以把这个文字粘贴在这个文本文件里面。。。

用_.ddedit命令可以实现,如何用命令方式怎么实现呢。


想实现的功能是图纸里面文字“123/456/789”-》“123-456-789”到剪切板里面,然后可以在打开的文本文本文件里面粘贴得到“123-456-789”

lzh720 发表于 2023-8-8 18:21:19

Gu_xl 发表于 2011-12-2 18:02
为何不直接用(open filename "a")方法将文字写入文件?
下面提供两个剪贴板操作函数!

这东西怎么用啊,我加载之后按a没反应啊

菜鸟初来乍到 发表于 2022-11-25 12:57:56

zhb236623 发表于 2011-12-3 19:13
借用了yucpp 的程序   http://bbs.mjtd.com/thread-85614-1-1.html
也谢谢Gu_xl

非常感谢您的分享

758586 发表于 2024-4-21 07:55:50

真好用 感谢您的分享:lol
CTRL+V,在文本里粘贴时 不能换行,
能换行就更好用,

Gu_xl 发表于 2011-12-2 18:02:51

本帖最后由 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:14

本帖最后由 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所以需要这个功能。。。

zyhandw 发表于 2011-12-3 15:21:38

同行啊!

zhb236623 发表于 2011-12-3 19:13:07

本帖最后由 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)
)


zhb236623 发表于 2011-12-3 19:23:32

zyhandw 发表于 2011-12-3 15:21 static/image/common/back.gif
同行啊!

程序弄好,欢迎试用下。。。

zhb236623 发表于 2011-12-3 22:14:47

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    谢谢。。

zyhandw 发表于 2011-12-4 20:49:04

zhb236623 发表于 2011-12-3 19:23 static/image/common/back.gif
程序弄好,欢迎试用下。。。

试用了一下,不错!谢谢!!

zhb236623 发表于 2011-12-5 10:03:01

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
如果一张图上有新老地号都要的话可以用这个。。。

wei982984 发表于 2011-12-26 14:38:48

天天为这个问题困扰,现在终于找到解决的方法,谢谢各位!
页: [1] 2
查看完整版本: 如何用VLISP 程序实现:把CAD里面文字复制粘贴板里面,可以用CTRL+V,在文本里粘贴