日常练习:
[color=#8b4513]; Block on Line, Grrr[/color][b][color=BLACK]([/color][/b]defun C:test [color=#8b4513];| credits to: Lee Mac |; [b][color=FUCHSIA]([/color][/b] / b bn p e [b][color=FUCHSIA])[/color][/b][/color][b][color=FUCHSIA]([/color][/b]setvar 'errno 0[b][color=FUCHSIA])[/color][/b][b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]/= 52 [b][color=MAROON]([/color][/b]getvar 'errno[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]setq b [b][color=MAROON]([/color][/b]car [b][color=GREEN]([/color][/b]entsel [color=#2f4f4f]"\nSelect block to reinsert <exit>: "[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]cond [b][color=MAROON]([/color][/b] [b][color=GREEN]([/color][/b]= 7 [b][color=BLUE]([/color][/b]getvar 'errno[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]princ [color=#2f4f4f]"\nMissed, try again."[/color][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setvar 'errno 0[b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b] [b][color=GREEN]([/color][/b]and [b][color=BLUE]([/color][/b]= 'ENAME [b][color=RED]([/color][/b]type b[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]/= [b][color=RED]([/color][/b]cdr [b][color=PURPLE]([/color][/b]assoc 0 [b][color=TEAL]([/color][/b]entget b[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [color=#2f4f4f]"INSERT"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]princ [color=#2f4f4f]"\nThis is not a block."[/color][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq b nil[b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]b [b][color=GREEN]([/color][/b]setq bn [b][color=BLUE]([/color][/b]vla-get-EffectiveName [b][color=RED]([/color][/b]vlax-ename->vla-object b[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]while [b][color=BLUE]([/color][/b]/= 52 [b][color=RED]([/color][/b]getvar 'errno[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]and [b][color=RED]([/color][/b]setq p [b][color=PURPLE]([/color][/b]getpoint [color=#2f4f4f]"\nSelect a line to insert on it: <exit>"[/color][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]setq e [b][color=PURPLE]([/color][/b]car [b][color=TEAL]([/color][/b]nentselp p[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cond [b][color=RED]([/color][/b][b][color=PURPLE]([/color][/b]not p[b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]setvar 'errno 52[b][color=PURPLE])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=PURPLE]([/color][/b]not e[b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]princ [color=#2f4f4f]"\nMissed, try again."[/color][b][color=PURPLE])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b] [b][color=PURPLE]([/color][/b]and p [b][color=TEAL]([/color][/b]vl-catch-all-error-p [b][color=OLIVE]([/color][/b]vl-catch-all-apply 'vlax-curve-getFirstDeriv [b][color=GRAY]([/color][/b]list e [b][color=AQUA]([/color][/b]vl-catch-all-apply 'vlax-curve-getParamAtPoint [b][color=LIME]([/color][/b]list e p[b][color=LIME])[/color][/b][b][color=AQUA])[/color][/b][b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b] [b][color=TEAL])[/color][/b] [b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]princ [color=#2f4f4f]"\nThis object is not a curve."[/color][b][color=PURPLE])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b]T [b][color=PURPLE]([/color][/b]and bn p e [b][color=TEAL]([/color][/b]vla-InsertBlock [b][color=OLIVE]([/color][/b]vlax-get-property [b][color=GRAY]([/color][/b]vla-get-ActiveDocument [b][color=AQUA]([/color][/b]vlax-get-acad-object[b][color=AQUA])[/color][/b][b][color=GRAY])[/color][/b] [b][color=GRAY]([/color][/b]if [b][color=AQUA]([/color][/b]= 1 [b][color=LIME]([/color][/b]getvar 'CVPORT[b][color=LIME])[/color][/b][b][color=AQUA])[/color][/b] 'Paperspace 'Modelspace[b][color=GRAY])[/color][/b] [b][color=OLIVE])[/color][/b] [color=#8b4513]; AcSpc[/color] [b][color=OLIVE]([/color][/b]vlax-3D-point p[b][color=OLIVE])[/color][/b] bn 1. 1. 1. [b][color=OLIVE]([/color][/b]alg-ang e p[b][color=OLIVE])[/color][/b] [b][color=TEAL])[/color][/b] [b][color=TEAL]([/color][/b]setvar 'errno 52[b][color=TEAL])[/color][/b] [b][color=PURPLE])[/color][/b] [b][color=RED])[/color][/b] [b][color=BLUE])[/color][/b] [b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]T nil[b][color=MAROON])[/color][/b] [b][color=NAVY])[/color][/b][color=#8b4513]; cond[/color][b][color=FUCHSIA])[/color][/b][color=#8b4513]; while[/color][b][color=FUCHSIA]([/color][/b]princ[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b][color=#8b4513];| defun |; [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][color=#8b4513]; BIGAL's example of [color=#2f4f4f]"vlax-curve-getFirstDeriv"[/color] usage:[/color][b][color=BLACK]([/color][/b]defun alg-ang [b][color=FUCHSIA]([/color][/b]obj pnt[b][color=FUCHSIA])[/color][/b][b][color=FUCHSIA]([/color][/b]angle '[b][color=NAVY]([/color][/b]0. 0. 0.[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]vlax-curve-getFirstDeriv obj [b][color=MAROON]([/color][/b]vlax-curve-getParamAtPoint obj pnt[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b][color=#8b4513]; defun[/color]