vnanhvu 发表于 2022-7-6 09:25:27

修改块

我有一些积木。我是否可以将块中的所有层更改为层“0”?
包括文本。。。并且对匿名区块有不利影响。你能帮助我吗!谢谢大家!

Lee Mac 发表于 2022-7-6 09:53:11

我不久前写的一个例子:
 

;;---------------=={ 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)
)

alanjt 发表于 2022-7-6 10:01:02

为什么所有的匿名街区?

vnanhvu 发表于 2022-7-6 10:18:04

嗨,李。
我有一个区块:一个循环,2个文本。使用LISP,我只更改文本的图层,但不更改彩色文本和循环。

Lee Mac 发表于 2022-7-6 10:26:48

我的Lisp程序只会改变图层,而不会改变颜色。
页: [1]
查看完整版本: 修改块