start4444 发表于 2013-9-5 17:10:20

请教以下这段关于全体改颜色的命令有什么错误,谢谢。

我在论坛搜到了以下一段关于改颜色的命令,但是有时候会出现以下错误:选择对象:; 错误: 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)
)

coolpoom 发表于 2013-9-5 19:13:03

选到代理图形了吧

q3_2006 发表于 2013-9-5 19:28:49

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=59143
页: [1]
查看完整版本: 请教以下这段关于全体改颜色的命令有什么错误,谢谢。