考虑一下这个函数:
[color=#990099];;---------------=={ Apply to Block Objects }==---------------;;[/color][color=#990099];; ;;[/color][color=#990099];; Applies a supplied function to all objects in a block ;;[/color][color=#990099];; definition. ;;[/color][color=#990099];;------------------------------------------------------------;;[/color][color=#990099];; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;;[/color][color=#990099];;------------------------------------------------------------;;[/color][color=#990099];; Arguments: ;;[/color][color=#990099];; _blockname - name of block to apply function ;;[/color][color=#990099];; _function - function to apply to all objects in block ;;[/color][color=#990099];;------------------------------------------------------------;;[/color][color=#990099];; Returns: T if block is found, else nil ;;[/color][color=#990099];;------------------------------------------------------------;;[/color][color=RED]([/color][color=BLUE]defun[/color] [color=black]LM:ApplytoBlockObjects[/color] [color=RED]([/color] _blockname _function [color=RED])[/color] [color=RED]([/color][color=BLUE]vl-load-com[/color][color=RED])[/color] [color=#990099];; © Lee Mac 2010[/color] [color=RED]([/color] [color=RED]([/color][color=BLUE]lambda[/color] [color=RED]([/color] _function [color=BLUE]/[/color] def [color=RED])[/color] [color=RED]([/color][color=BLUE]if[/color] [color=RED]([/color][color=BLUE]not[/color] [color=RED]([/color][color=BLUE]vl-catch-all-error-p[/color] [color=RED]([/color][color=BLUE]setq[/color] def [color=RED]([/color][color=BLUE]vl-catch-all-apply[/color] [color=DARKRED]'[/color][color=BLUE]vla-item[/color] [color=RED]([/color][color=BLUE]list[/color] [color=RED]([/color][color=BLUE]vla-get-blocks[/color] [color=RED]([/color][color=BLUE]vla-get-ActiveDocument[/color] [color=RED]([/color][color=BLUE]vlax-get-acad-object[/color][color=RED]))[/color] [color=RED])[/color] _blockname [color=RED])[/color] [color=RED])[/color] [color=RED])[/color] [color=RED])[/color] [color=RED])[/color] [color=RED]([/color][color=BLUE]vlax-for[/color] obj def [color=RED]([/color]_function obj[color=RED]))[/color] [color=RED])[/color] [color=RED])[/color] [color=RED]([/color][color=BLUE]eval[/color] _function[color=RED])[/color] [color=RED])[/color][color=RED])[/color][color=#990099];; Test Function to Move all Objects in a Block to Layer "0"[/color][color=RED]([/color][color=BLUE]defun[/color] [color=black]c:test[/color] [color=RED]([/color] [color=BLUE]/[/color] ss l [color=RED])[/color] [color=RED]([/color][color=BLUE]if[/color] [color=RED]([/color][color=BLUE]setq[/color] ss [color=RED]([/color][color=BLUE]ssget[/color] [color=#a52a2a]"_+.:E:S"[/color] [color=DARKRED]'[/color][color=RED](([/color][color=#009900]0[/color] [color=DARKRED].[/color] [color=#a52a2a]"INSERT"[/color][color=RED]))))[/color] [color=RED]([/color][color=BLUE]progn[/color] [color=RED]([/color][color=black]LM:ApplytoBlockObjects[/color] [color=RED]([/color][color=BLUE]cdr[/color] [color=RED]([/color][color=BLUE]assoc[/color] [color=#009900]2[/color] [color=RED]([/color][color=BLUE]setq[/color] l [color=RED]([/color][color=BLUE]entget[/color] [color=RED]([/color][color=BLUE]ssname[/color] ss [color=#009900]0[/color][color=RED])))))[/color] [color=RED]([/color][color=BLUE]function[/color] [color=RED]([/color][color=BLUE]lambda[/color] [color=RED]([/color] obj [color=RED])[/color] [color=RED]([/color][color=BLUE]vla-put-Layer[/color] obj [color=#a52a2a]"0"[/color][color=RED]))[/color] [color=RED])[/color] [color=RED])[/color] [color=RED]([/color][color=BLUE]if[/color] [color=RED]([/color][color=BLUE]=[/color] [color=#009900]1[/color] [color=RED]([/color][color=BLUE]cdr[/color] [color=RED]([/color][color=BLUE]assoc[/color] [color=#009900]66[/color] l[color=RED])))[/color] [color=RED]([/color][color=BLUE]vl-cmdf[/color] [color=#a52a2a]"_.attsync"[/color] [color=#a52a2a]"_N"[/color] [color=RED]([/color][color=BLUE]cdr[/color] [color=RED]([/color][color=BLUE]assoc[/color] [color=#009900]2[/color] l[color=RED])))[/color] [color=RED])[/color] [color=RED])[/color] [color=RED])[/color] [color=RED]([/color][color=BLUE]princ[/color][color=RED])[/color][color=RED])[/color]