wanchj 发表于 2004-12-17 17:38:00

小弟有一个图里面很多的这种块,怎么才能一次把他的颜色改了。

小弟有一个图里面很多的这种块,怎么才能一次把他的颜色改了。初次接触LISP,大哥们帮帮小弟

xstlf 发表于 2004-12-17 17:47:00

现在知道了,所有自己做的块不是0层做的,不是颜色随层的麻烦了吧,呵呵,一个最简单的方法,不用LISP/,就是所有你自己做的块都设成0层,颜色尽量不要设。

wanchj 发表于 2004-12-17 17:57:00

是呀,不管在哪个层上,我都不会改,请多指教,告诉我


关键已经是这样了,怎么办?救命呀

aaddff 发表于 2005-1-5 18:40:00

command:refedit

yemm 发表于 2005-1-5 21:05:00

制块时,颜色用byblock,之后就可以改块的颜色啦!


想怎么改都可以!

龙龙仔 发表于 2005-1-7 08:23:00

;;By 龙龙仔(LUCAS)
(defun C:BLK_COL (/ ENT N NAME SS)   (defun GETATT(ENT)
       (while (/= (DXF 0 (entget (setq ENT (entnext ENT)))) "SEQEND")
         (MODD ENT 62 COL)
       )
       (princ)
   )   ;|
   (defun GETATT(E / N ATT E1 EN EN1 RSLT)
       (setq EN (entget E)
   E1 E
       )
       (if(and (= (DXF 0 EN) "INSERT")
         (= (DXF 66 EN) 1)
)
         (progn
(setq E1 (entnext E1))
(while (and E1
         (setq EN1 (entget E1))
         (= (DXF 0 EN1) "ATTRIB")
               )
   (MODD E1 62 COL)
   (setq E1 (entnext E1))
)
         )
       )
   )|;   (defun DXF (A1 A2)
       (cdr (assoc A1 A2))
   )   (defun MODD (E EE COL)
       (setq E (entget E))
       (if(= (assoc EE E) NIL)
         (setq E (append E (list (cons EE COL))))
         (setq E (subst (cons EE COL) (assoc EE E) E))
       )
       (entmod E)
   )   (if (and (setq ENT (car (entsel "\nSelect Block: ")))
       (= "INSERT" (DXF 0 (setq ENT (entget ENT))))
         )
       (progn
         (setq COL (acad_colordlg 7))
         (setq NAME (assoc 2 ENT))
         (if (= (DXF 66 ENT) 1)
(progn
   (setqSS (ssget "x"
         (list(cons 0 "INSERT")
      NAME
         )
         )
    N   0
   )
   (repeat (sslength SS)
         (GETATT (ssname SS N))
         (setq N (1+ N))
   )
)
         )
         (setq ENT
         (cdr
               (assoc
   -2
   (tblsearch "BLOCK" (cdr NAME))
               )
         )
         )
         (while ENT
(MODD ENT 62 COL)
(setq ENT (entnext ENT))
         )
         (command "_.REGEN")
       )
   )
   (princ)
)
页: [1]
查看完整版本: 小弟有一个图里面很多的这种块,怎么才能一次把他的颜色改了。