举个例子:
- [b][color=BLACK]([/color][/b]defun C:test [b][color=FUCHSIA]([/color][/b] / L SS e o nm [b][color=FUCHSIA])[/color][/b] [color=#8b4513];; Define a function and localise the used variables[/color]
-
- [b][color=FUCHSIA]([/color][/b]setq L [b][color=NAVY]([/color][/b]mapcar 'strcase '[b][color=MAROON]([/color][/b][color=#2f4f4f]"DoorModel"[/color] [color=#2f4f4f]"DoorModel"[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [color=#8b4513];; Initially set a list of block names, capitalise all items using [b][color=FUCHSIA]([/color][/b]strcase[b][color=FUCHSIA])[/color][/b][/color]
-
- [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]setq SS [b][color=MAROON]([/color][/b]ssget '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]0 . [color=#2f4f4f]"INSERT"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [color=#8b4513];; Prompt the user for a selection set of blocks and check if user selected any[/color]
- [b][color=NAVY]([/color][/b]repeat [b][color=MAROON]([/color][/b]sslength SS[b][color=MAROON])[/color][/b] [color=#8b4513];; iterate through the selection set[/color]
- [b][color=MAROON]([/color][/b]setq e [b][color=GREEN]([/color][/b]ssname SS 0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [color=#8b4513];; first entity inside the selection set[/color]
- [b][color=MAROON]([/color][/b]setq o [b][color=GREEN]([/color][/b]vlax-ename->vla-object e[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [color=#8b4513];; convert that entity into a vla-object[/color]
- [b][color=MAROON]([/color][/b]setq nm [b][color=GREEN]([/color][/b]strcase [b][color=BLUE]([/color][/b]vla-get-EffectiveName o[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [color=#8b4513];; extract the EffectiveName property from the vla-object [b][color=MAROON]([/color][/b]the [color=#2f4f4f]"True Block Name"[/color] if you prefer[b][color=MAROON])[/color][/b][/color]
- [b][color=MAROON]([/color][/b]if [b][color=GREEN]([/color][/b]not [b][color=BLUE]([/color][/b]member nm L[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [color=#8b4513];; check if the EffectiveName is not [color=#2f4f4f]"DOORMODEL1"[/color] or [color=#2f4f4f]"DOORMODEL2"[/color][/color]
- [b][color=GREEN]([/color][/b]progn [color=#8b4513];; if the EffectiveName is not member of that list [/color]
- [b][color=BLUE]([/color][/b]vla-Explode o[b][color=BLUE])[/color][/b] [color=#8b4513];; call the Explode method [b][color=BLUE]([/color][/b]literaly explode the block[b][color=BLUE])[/color][/b][/color]
- [b][color=BLUE]([/color][/b]vla-Delete o[b][color=BLUE])[/color][/b] [color=#8b4513];; call the Delete method [b][color=BLUE]([/color][/b]erase the original block[b][color=BLUE])[/color][/b][/color]
- [b][color=GREEN])[/color][/b][color=#8b4513]; progn[/color]
- [b][color=MAROON])[/color][/b][color=#8b4513]; if[/color]
- [b][color=MAROON]([/color][/b]ssdel e SS[b][color=MAROON])[/color][/b] [color=#8b4513];; erase the first entity inside the selection set, so the next entity could be processed[/color]
- [b][color=NAVY])[/color][/b][color=#8b4513]; repeat[/color]
- [b][color=FUCHSIA])[/color][/b][color=#8b4513]; if SS[/color]
- [b][color=FUCHSIA]([/color][/b]princ[b][color=FUCHSIA])[/color][/b] [color=#8b4513];; Exit cleanly[/color]
- [b][color=BLACK])[/color][/b][color=#8b4513]; defun[/color]
- [b][color=BLACK]([/color][/b]vl-load-com[b][color=BLACK])[/color][/b][b][color=BLACK]([/color][/b]princ[b][color=BLACK])[/color][/b] [color=#8b4513];; Load the visual lisp extensions, cleanly[/color]
|