有没有这样的LISP,启用后改过的字自动变颜色?
本帖最后由 puzb2001 于 2012-3-6 10:29 编辑如题,答案详8楼9楼。根据老大们的思路,写了一个简单的代码详31楼,各位老大能不能看看31楼的问题?谢谢
Gu_xl 发表于 2012-3-1 09:56
示例代码中:tt命令启动文字修改监视,tt1命令可以查看修改的文字(文字变红),tt2命令关闭文字监视,文 ...
如何保存在字典里,老大{:1_1:} Gu_xl 发表于 2012-2-29 18:53
;;文字变动监视示例代码
**** 本内容被作者隐藏 ****
牛逼的程序
真是不错的插件啊!谢谢提供! 这个问题逻辑有问题,不可能有这样的程序 本帖最后由 puzb2001 于 2012-2-29 08:54 编辑
为什么不可能?楼上的请看如下程序,不过是VBA的程序而已,使用时放到搜索文件夹,工具-宏-VBA管理器
这个确实有
看错了,我还以为是"启动"CAD呢,原来是“启动lisp”。程序一般都是叫“运行”的 这个好像不复杂吧 lrd1861 兄,yjr111 兄,langjs 兄,或各位大侠能不能弄一个共享一下啦?谢谢
;;文本编辑扩展工具,文本修改后变换颜色显示。可以设置ddedit命令修改后文本
;;的颜色,默认为当前系统颜色号加一,确认不修改为修改文本颜色号加一。
;;作者:南京市市政设计研究院 嵇龙(ll_j@21cn.com)
;; 025-3283626
(defun ett_ct()
(initget "C")
(setq s0 (entsel "\n设置颜色C / 选取文本:"))
(cond
( (= s0 "C") (ett_col))
( (= s0 "") nil)
( (and (= (type s0) 'LIST) (= (cdr (assoc 0 (entget (car s0)))) "TEXT"))
(redraw (setq sn (car s0)) 3)
(setq s1 (entget sn)
n1 (cdr (assoc 1 s1))
)
(command "_.DDEDIT" sn "")
(entupd sn)
(if (/= n1 (cdr (assoc 1 (entget sn))))
(progn
(setq s1 (entget sn))
(if (/= (assoc 62 s1) nil)
(setq s1 (subst (cons 62 c2) (assoc 62 s1) s1))
(setq s1 (cons (cons 62 c2) s1))
)
(entmod s1)
(redraw sn 1)
)
(progn
(setq s1 (entget sn) c3(+ c2 1))
(if (= c3 257) (setq c3 1))
(if (/= (assoc 62 s1) nil)
(setq s1 (subst (cons 62 c3) (assoc 62 s1) s1))
(setq s1 (cons (cons 62 c3) s1))
)
(entmod s1)
(redraw sn 1)
)
)
(setq sn nil)
(ett_ct)
)
(t (ett_ct))
)
)
(defun ett_col()
(setq c1 c2)
(setq c2 (acad_colordlg c2))
(if (= c2 nil) (setq c2 c1))
(ett_ct)
)
(defun c:ett(/ sn s0 s1 c1 c2 c3 n1)
(setq c1 (getvar "CECOLOR"))
(if (or (= c1 "BYLAYER") (= c1 "BYBLOCK"))
(setq c1 1)
(setq c1 (1+ (read c1)))
)
(if (= c1 256) (setq c1 1))
(setq c2 c1)
(princ (strcat "\n当前颜色号 " (getvar "cecolor") ",设置颜色号 " (itoa c2) "。"))
(ett_ct)
(princ)
)
(princ "\n**Text文本编辑扩展工具。作者:南京市市政设计研究院 嵇龙。**")
(princ "\n**命令:ett")
;;文字变动监视示例代码
**** Hidden Message ***** 变更后换颜色,非常有用!