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群里的聊天记录、某高手的博客