修改块
我有一些积木。我是否可以将块中的所有层更改为层“0”?包括文本。。。并且对匿名区块有不利影响。你能帮助我吗!谢谢大家! 我不久前写的一个例子:
;;---------------=={ Apply to Block Objects }==---------------;;
;; ;;
;;Applies a supplied function to all objects in a block ;;
;;definition. ;;
;;------------------------------------------------------------;;
;;Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;;
;;------------------------------------------------------------;;
;;Arguments: ;;
;;_acblocks- block collection in which block resides ;;
;;_blockname - name of block to apply function ;;
;;_function- function to apply to all objects in block ;;
;;------------------------------------------------------------;;
;;Returns: List of results of evaluating function, else nil ;;
;;------------------------------------------------------------;;
(defun LM:ApplytoBlockObjects ( _acblocks _blockname _function / result )
(
(lambda ( _function / def )
(if
(not
(vl-catch-all-error-p
(setq def
(vl-catch-all-apply 'vla-item (list _acblocks_blockname))
)
)
)
(vlax-for obj def (setq result (cons (_function obj) result)))
)
)
(eval _function)
)
(reverse result)
)
;; Test Function to Move all Objects in a Block to Layer "0"
(defun c:test ( / acdoc acblk ss l ) (vl-load-com)
(setq acdoc (vla-get-activedocument (vlax-get-acad-object))
acblk (vla-get-blocks acdoc)
)
(if (setq ss (ssget "_+.:E:S" '((0 . "INSERT"))))
(progn
(LM:ApplytoBlockObjects acblk (cdr (assoc 2 (setq l (entget (ssname ss 0)))))
(function
(lambda ( obj ) (vla-put-Layer obj "0"))
)
)
)
)
(princ)
) 为什么所有的匿名街区? 嗨,李。
我有一个区块:一个循环,2个文本。使用LISP,我只更改文本的图层,但不更改彩色文本和循环。 我的Lisp程序只会改变图层,而不会改变颜色。
页:
[1]