求明经达人解答,当多重块中包含高程点时,高程点中文本颜色如何改过来
我的意思是 图块中包含高程点,高程点作为主图块一个属性快,
此时高程点中文本颜色如何改过来。
附单独修改高程点中文本颜色程序:
(defun mgs (ename / vn)
(setq vn (vlax-ename->vla-object ename))
(vla-put-color vn color)
(if
(and
(/= (setq ename (entnext ename)) nil)
(/= (assoc 0 (entget ename)) "SEQEND")
) ;andover
(mgs ename)
) ;ifover
) ;defunover
属性快改色程序:
(defun c:mtkgs (/ ss n color ename vla-obj name doc blocks block ent)
(vl-load-com)
(setq ss (ssget (list (cons 0 "insert"))))
(setq n (sslength ss))
(setq color (acad_colordlg 8))
(repeat n
(setq ename (ssname ss (setq n (1- n))))
(setq vla-obj (vlax-ename->vla-object ename))
(setq doc(vla-get-activedocument (vlax-get-acad-object))
blocks (vla-get-blocks doc)
)
(mdck vla-obj)
) ;repeatover
(vla-regen doc acactiveviewport)
(vlax-release-object vla-obj)
(vlax-release-object doc)
(vlax-release-object blocks)
(gc)
) ;defun over
(defun mdck (vla-obj)
(vla-put-color vla-obj color)
(vlax-for ent (vla-item blocks (vla-get-name vla-obj))
(vla-put-color ent color)
(if (= (vla-get-objectname ent) "AcDbBlockReference")
(mdck ent)
)
)
) ;defunover
楼主提供的程序,为什么只选一个块,会把所有的块同名块全部改变颜色了?
undo后,需要加regen才能还原颜色,否则一直是改过的颜色 试下这个程序能否满足要求
回复 ljttjl 的帖子
兄弟,有源码么?
页:
[1]