请教以下这段关于全体改颜色的命令有什么错误,谢谢。
我在论坛搜到了以下一段关于改颜色的命令,但是有时候会出现以下错误:选择对象:; 错误: AutoCAD.Application: 此代理不允不知道是什么原因,请大侠指点,谢谢。
(defun c:test (/ SS BLKS I BNLst)
(princ "\n选择要修改颜色的对象: ")
(if (and (setq SS (ssget))
(or $ChColor$ (setq $ChColor$ 7))
(setq $ChColor$ (acad_colordlg $ChColor$))
)
(progn
(setq BLKS(vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))))
(defun ChColor (OBJ / oName BlkName)
(setq oName (vla-get-ObjectName OBJ))
(cond
((wcmatch oName "*Dimension,AcDbLeader,AcDbFcf")
(vla-put-DimensionLineColor OBJ $ChColor$)
(if (wcmatch oName "*Dimension")
(progn
(vla-put-ExtensionLineColor OBJ $ChColor$)
(if (setq BlkName (assoc 2 (entget (vlax-vla-object->ename OBJ))))
(vlax-for OBJ (vla-item Blks (cdr BlkName))
(vla-put-color OBJ $ChColor$)
)
)
)
)
(if (wcmatch oName "*Dimension,AcDbFcf")
(vla-put-TextColor OBJ $ChColor$)
)
)
((= oName "AcDbBlockReference")
(setq BlkName (vla-get-name OBJ))
(if (not (member BlkName BNLst))
(progn
(setq BNLst (cons BlkName BNLst))
(vlax-for X (vla-item Blks BlkName)
(ChColor X)
)
)
)
(if (= (vla-get-HasAttributes OBJ) :vlax-true)
(foreach X (vlax-invoke OBJ 'getattributes)
(vla-put-color X $ChColor$)
)
)
)
)
(vla-put-color obj $ChColor$)
)
(repeat (setq I (sslength SS))
(setq OBJ (vlax-ename->vla-object (ssname SS (setq I (1- I)))))
(ChColor OBJ)
)
)
)
(princ)
)
选到代理图形了吧 http://bbs.mjtd.com/forum.php?mod=viewthread&tid=59143
页:
[1]