回复 mrhvslisp 的帖子
 - ;;;修改嵌套块中所有物体颜色
- (defun blkcolor (blkname color / blk obj name att)
- (setq blk (vla-item (vla-get-blocks *ACDOCUMENT*) blkname))
- (vlax-for obj blk
- (print (vla-get-ObjectName obj))
- (cond ((or (= "AcDbMInsertBlock" (vla-get-ObjectName obj))
- (= "AcDbBlockReference" (vla-get-ObjectName obj))
- )
- (princ " AcDbMInsertBlock")
- (mapcar
- '(lambda (Att)
- (vla-put-color att color) ;_ 此处为修改属性颜色
- ) ;_ lambda
- (vlax-invoke Obj "GetAttributes")
- ) ;_ mapcar
- (setq name (vla-get-name obj))
- ;;;递归调用
- (blkcolor name color)
- )
- (t
- (vla-put-color obj color)
- )
- )
-
- )
- (princ)
- )
- ;;;对单独块属性颜色修改,使用二楼代码
- 你提供的图中高程点块就是带属性快!而非嵌套块!用二楼代码就可逐个修改属性颜色!
|