我不久前写了这段代码的一部分,它应该可以满足您的需要-虽然它使用Visual LISP,因此与R14不兼容,但它将在2008年工作。
如果可以清除块,则返回T:
- [i][color=#990099];; Check Purge -- by Lee McDonnell (Lee Mac) ~ 27.11.2009[/color][/i]
- [i][color=#990099];; Returns T if Block can be Purged.[/color][/i]
- [i][color=#990099];; Arguments: bNme - Block Name [string][/color][/i]
- [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] CheckPurge [b][color=RED]([/color][/b]bNme[b][color=RED])[/color][/b]
-
- [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] BlkCount [b][color=RED]([/color][/b]Blk [b][color=BLUE]/[/color][/b] GetNest i j ss *blk[b][color=RED])[/color][/b]
- [i][color=#990099];; Block Counter by Lee McDonnell (Lee Mac) ~ 22.08.2009[/color][/i]
- [i][color=#990099];; Copyright © August 2009[/color][/i]
- [i][color=#990099];; Will Count all instances of a block, including nested.[/color][/i]
-
- [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] i [b][color=#009900]0[/color][/b] Blk [b][color=RED]([/color][/b][b][color=BLUE]strcase[/color][/b] Blk[b][color=RED])[/color][/b] j [b][color=#009900]-1[/color][/b]
- *blk [b][color=RED]([/color][/b][b][color=BLUE]vla-get-Blocks[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveDocument[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-acad-object[/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]defun[/color][/b] GetNest [b][color=RED]([/color][/b]Obj Nme[b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcase[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-Name[/color][/b] Obj[b][color=RED])[/color][/b][b][color=RED])[/color][/b] Nme[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] i [b][color=RED]([/color][/b][b][color=BLUE]1+[/color][/b] i[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]vlax-for[/color][/b] Sub Obj
- [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#ff00ff]"AcDbBlockReference"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ObjectName[/color][/b] Sub[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b]GetNest [b][color=RED]([/color][/b][b][color=BLUE]vla-item[/color][/b] *blk [b][color=RED]([/color][/b][b][color=BLUE]vla-get-EffectiveName[/color][/b] Sub[b][color=RED])[/color][/b][b][color=RED])[/color][/b] Nme[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]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ss [b][color=RED]([/color][/b][b][color=BLUE]ssget[/color][/b] [b][color=#ff00ff]"_X"[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#ff00ff]"INSERT"[/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]while[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ent [b][color=RED]([/color][/b][b][color=BLUE]ssname[/color][/b] ss [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] j [b][color=RED]([/color][/b][b][color=BLUE]1+[/color][/b] j[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]GetNest
- [b][color=RED]([/color][/b][b][color=BLUE]vla-item[/color][/b] *blk
- [b][color=RED]([/color][/b][b][color=BLUE]vla-get-EffectiveName[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]vlax-ename->vla-object[/color][/b] ent[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] Blk[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
-
- i[b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]zerop[/color][/b] [b][color=RED]([/color][/b]BlkCount bNme[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
-
|