把块的颜色置为随层,可是块的颜色并没有变为所在图层上的颜色啊。
我插入块后,把块置为特定层,然后选中这个块把它的颜色置为随层,可是块的颜色并没有变为所在图层上的颜色啊。这种情况应如何解决? 龙龙仔 发表于 2003-10-8 17:12;;这是一个改全图颜色程序(注:对Mtext中颜色无效)
;;有兴趣的网友可把它改为对单一图块修改颜色
;;改好了 ...
感谢分享~
工作上需要,已经用上了~
龙龙仔 发表于 2003-10-8 17:12
;;这是一个改全图颜色程序(注:对Mtext中颜色无效)
;;有兴趣的网友可把它改为对单一图块修改颜色
;;改好了 ...
我去悬赏,看看有没高手改一下 因为你的块在创建时,是采用了 byblock (随块) 的颜色。
也是说,在你创建块的时候,颜色要选择 bylayer(随层)就可以了 分解掉后再修改 在你建塊的時候,圖形的顏色要是隨層才可以 上面两位大侠说的我知道,可是问题是我的数据是由其他格式转过来的,然后又不想破坏其整体性。看来真没办法了?
------------------------------------
我是一只小小小笨鸟,大家千万不要无奈地把头摇摇,一笑而过。 双击块,修改块的属性。修改颜色可以吗 不行 ;;这是一个改全图颜色程序(注:对Mtext中颜色无效)
;;有兴趣的网友可把它改为对单一图块修改颜色
;;改好了记得上传!!
;;By 龙龙仔(LUCAS)
(defun C:CHGBLKENTCOL (/ BLKCOL DOC OBJ COL)
(vl-load-com)
(arxload "acetutil.arx" NIL)
(defun CHGCOL (OBJ BCL COL / ATT CATT ENT1 ENT ENTNAME)
(vlax-for ENT OBJ
(setq ENTNAME (vla-get-objectname ENT))
(if (= ENTNAME "AcDbBlockReference")
(progn
(if (= (vl-catch-all-apply 'vla-get-hasattributes (list ENT))
:vlax-true
)
(progn
(setq ATT (vlax-variant-value (vla-getattributes ENT))
CATT (vlax-variant-value
(vla-getconstantattributes ENT)
)
)
(if (safearray-value ATT)
(foreach ENT1 (vlax-safearray->list ATT)
(vla-put-color ENT1 COL)
)
)
(if (safearray-value CATT)
(foreach ENT1 (vlax-safearray->list CATT)
(vla-put-color ENT1 COL)
)
)
)
)
(CHGCOL (vla-item BCL (vla-get-name ENT)) BCL COL)
;;(VLA-UPDATE ENT)
)
(if (vlax-property-available-p ENT 'COLOR)
(vla-put-color ENT COL)
)
)
(if (or (= ENTNAME "AcDbLeader") (= ENTNAME "AcDbFcf"))
(vla-put-dimensionlinecolor ENT COL)
)
(if (= ENTNAME "AcDbFcf")
(vla-put-textcolor ENT COL)
)
)
)
(setq COL (acad_colordlg 7))
(setq BLKCOL (vla-get-blocks
(setq DOC (vla-get-activedocument
(vlax-get-acad-object)
)
)
)
)
(acet-ui-progress "颜色转换中..." (vla-get-count BLKCOL))
(vlax-for OBJ BLKCOL
(if ;;(and
;;(= (vla-get-islayout OBJ) :vlax-false)
(= (vla-get-isxref OBJ) :vlax-false)
;;)
(CHGCOL OBJ BLKCOL COL)
)
(acet-ui-progress -1)
)
(acet-ui-progress)
;;(setvar "DIMCLRD" COL)
;;(setvar "DIMCLRE" COL)
;;(setvar "DIMCLRT" COL)
(vla-regen DOC acallviewports)
(vlax-release-object DOC)
(vlax-release-object BLKCOL)
(princ)
) 版主的程序非常完美的解决了我的问题,谢谢分享,不过处理的图形比较大的时候比较慢,要耐心一点 建块的时候建在0层并随层。
页:
[1]
2