Change Block Color---改变块的颜色
2008-11-08 10:37:49 AM
我把我的"改随层"改了几个字
要是改块中部分实体的颜色呢?
aeo斑竹: 这正是我要写的, 不过只是基本功能:
(defun c:test ()
(l-load-com)
(setq ent (car (entsel)))
(setq obj (lax-ename->la-object ent))
(setq col (acad_colordlg 7))
(lax-for
item
(la-item
(la-get-blocks
(la-get-actiedocument
(lax-get-acad-object)))
(la-get-name obj)
)
(la-put-color item col)
)
)
那就用nentsel 函数:
(defun c:test ()
(l-load-com)
(setq ent (car (nentsel)))
(setq obj (lax-ename->la-object ent))
(setq col (getstring "\nNew Color Number: "))
(la-put-color obj col)
(l-cmdf "regen" "")
)
看不明白
寫個一次點選圖塊多個物件的好嗎?
好像已经有人写了一个该层的程序,可惜没有源代码。
"点选"只能一次点一个呀。 这样行不行? :
(defun c:test ( / ss)
(l-load-com)
(setq col (getstring "\nNew Color Number: "))
(while (setq ent (car (nentsel)))
(setq obj (lax-ename->la-object ent))
(la-put-color obj col)
(l-cmdf "regen" "")
)
)
不错, 增加了"框选". 可你问的是点选呀!------"寫個一次點選圖塊多個物件的好嗎?"
其实, 去除repeat还会更简单:
(defun c:test ( / ss n)
(setq HOLDPICKADD (getar "PICKADD"))
(setar "pickadd" 1)
(prompt "\n点选要改颜色对象...(可多次点选图块内对象)")
(setq LIS (ssnamex (ssget ":N")))
(setq col (getstring "\nNew Color Number: "))
(setar "pickadd" HOLDPICKADD)
(foreach i lis
(if (= (type (cadr i)) 'ENAME)
(la-put-color (lax-ename->la-object (cadr i)) col)
)
)
(l-cmdf "regen")
(princ)
)
能提供文件吗?
看不懂,能提供文件吗?
高手。
应该是好东西(版主奖励了好多爱心币!),厉害,高手!可这些代码要放在哪里呢?又怎么用呢?望指点。
lsjjm,你好,工作中用到了你的不少好东东,
编程偶看不懂,但里面的两个中文字偶还好认识,看了一下好像没有我想要的情况,偶想选中块中的一种颜色如兰色,窗选我想改变颜色的块,将其中的全部兰色变成我想要的颜色。
0 条评论:
发表评论
订阅 帖子评论 [Atom]
<< 主页