VisualLisp在AutoCAD文本窗口中搜索某字符串,如果找到则清空AutoCAD文本窗口

 1 ;;;编程语言:VisualLisp
 2 ;;;功能:
 3 ;;;一、利用AutoCAD的copyhist命令将命令行历史记录多行文字复制到剪贴板
 4 ;;;二、获取剪贴板的内容,赋值给变量str
 5 ;;;三、在字符串变量str中搜索指定子串,如"LOAD"
 6 ;;;四、如果找到则清空AutoCAD文本窗口
 7 
 8 (vl-load-com);;加载VLISP所提供的“扩展AutoLISP函数”
 9 
10 (defun c:tt(/ htm Clip_Bord str szStrcase)
11     (command "_.copyhist");;将命令行历史记录文字复制到剪贴板
12     (setq htm (vlax-create-object "htmlfile"))
13     (setq Clip_Bord (Vlax-Get-Property (Vlax-Get htm 'ParentWindow) 'ClipboardData))
14     (setq str (Vlax-Invoke Clip_Bord 'GetData "text"));;获取剪贴板
15     (setq szStrcase (strcase str))
16     (if (vl-string-search "LOAD" szStrcase);;在字符串szStrcase中搜索指定子串"LOAD"
17         (progn
18             (alert "LOAD")
19             (setenv "CmdHistLines" "25");;需要 25 和 2048 之间的整数,命令历史行数减少到最少,其中"CmdHistLines"严格区分大小写
20             (princ "\n\n\n\n\n\n\n\n\n\n
21                     \n\n\n\n\n\n\n\n\n\n
22                     \n\n\n\n\n\n\n\n\n\n")
23         )
24     )
25 
26     (princ)
27 )
28 
29 (princ "\n程序加载完成")
30 (princ)
31 
32 ;参考了其他网友在QQ群里的聊天记录、某高手的博客

 

posted @ 2020-03-05 20:02  insipid  阅读(1454)  评论(0)    收藏  举报