嘿,史蒂夫,
我的方法只会稍有不同,考虑到漏选:
- [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:blk_mod [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] ent elst[b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ent [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entsel[/color][/b] [b][color=#ff00ff]"\nSelect a Block: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]foreach[/color][/b] sub [b][color=RED]([/color][/b]getObj [b][color=RED]([/color][/b][b][color=BLUE]tblobjname[/color][/b] [b][color=#ff00ff]"BLOCK"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]2[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entget[/color][/b] ent[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] elst [b][color=RED]([/color][/b][b][color=BLUE]entget[/color][/b] sub[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#009900]3[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]62[/color][/b] elst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]entmod[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]subst[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]62[/color][/b] [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]62[/color][/b] elst[b][color=RED])[/color][/b] elst[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]entupd[/color][/b] sub[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]command[/color][/b] [b][color=#ff00ff]"_regenall"[/color][/b][b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
- [i][color=#990099]; Get Sub-Entities from Table Def[/color][/i]
- [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] GetObj [b][color=RED]([/color][/b]bObj[b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] bObj [b][color=RED]([/color][/b][b][color=BLUE]entnext[/color][/b] bObj[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] bObj [b][color=RED]([/color][/b]GetObj bObj[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
此外,请记住,这只会改变那些未设置为BYLAYER或BYBLOCK的颜色。
至于应用到每个块,您需要循环遍历表中的每个块,也许可以使用以下方法:
- [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] getblk [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] tdef lst[b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]reverse[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] tdef [b][color=RED]([/color][/b][b][color=BLUE]tblnext[/color][/b] [b][color=#ff00ff]"BLOCK"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] tdef[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] lst [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]2[/color][/b] tdef[b][color=RED])[/color][/b][b][color=RED])[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
上面将返回表中所有块的列表,您可以将其与foreach一起使用。
在发布之前,我为自己编写了一个LISP,将特定的[color]标记添加到代码中
李 |