求改字变色程序
要求:运行程序后,白字文字改后颜色变为绿色,非白色文字改后颜色变为白色,支持单多行文字
标注文字
测试文件
记得坛子里有这个类似的帖子。
可以搜索下,再根据自己的要求组装、修改下! zyhandw 发表于 2012-12-28 09:31 static/image/common/back.gif
记得坛子里有这个类似的帖子。
可以搜索下,再根据自己的要求组装、修改下!
找到一个,效果不是很好 本帖最后由 ll_j 于 2012-12-28 17:08 编辑
把以前的程序改一下,你再看看。
1.没有改变原来颜色变化规律(改变后颜色号加1,选定不改变加2)。
2.标注颜色全改变,标注的文字颜色是在标注类型中定义的,如果仅仅改变文字颜色,修改比较麻烦。
ll_j 发表于 2012-12-28 10:08 static/image/common/back.gif
把以前的程序改一下,你再看看。
1.没有改变原来颜色变化规律(改变后颜色号加1,选定不改变加2)。
2.标 ...
还可以,就是标注改的是标注线,不是文字 白色颜色值是多少? 本帖最后由 lisp学习 于 2012-12-28 13:50 编辑
(defun c:tmp(/ s n i e obj )
(setvar "cmdecho" 0)
(setq s(ssget '((0 . "TEXT,MTEXT"))))
(setq n(sslength s) i 0)
(while (< i n)
(setq e(ssname s i))
(setq obj(vlax-ename->vla-object e))
(setq co(vla-get-color obj))
(if(/= co 7)(progn
(command "change" e "" "p" "c" "7" "")))
(if(= co 7)(progn
(command "change" e "" "p" "c" "3" "")))
(setq i(1+ i))
)
(setvar "cmdecho" 1)
(princ)
);(if(/= co 7)(progn这里的7是白色的值,你自己修改吧。0、256、7好像都是白色。有点迷糊。标注文字在样式管理器下不就能改了吗?
(defun c:de( / ss )
(setqss(car (nentsel"请选择文本")))
(setq text(cdr (assoc 1 (entget ss))))
(command "ddedit" ss "" )
(setq text1(cdr (assoc 1 (entget ss))))
(if (equal text text1) (command)
(command "change" ss"" "p" "c" "1" "")
)
STRETCH 发表于 2012-12-28 11:27 static/image/common/back.gif
还可以,就是标注改的是标注线,不是文字
4楼的附件更新过了,你再试试。 lisp学习 发表于 2012-12-28 13:18 static/image/common/back.gif
(defun c:tmp(/ s n i e obj )
(setvar "cmdecho" 0)
(setq s(ssget '((0 . "TEXT,MTEXT"))))
0号色是“随块”,也就是当作子实体,父实体什么颜色,子实体就是什么颜色,主要是针对复杂实体的,如块、标注等。
256号色是“随层”,所在层的颜色就是实体的颜色,默认,DXF组码中会忽略。
7号色标注是“白色”,其实显示是“反色”,在浅色背景下显示黑色,在深色背景下显示白色。
255号色才是真正的“白色”,不管背景如何,不管是显示还是打印(无色)。
页:
[1]
2