嗨,试试这个:
[b][color=BLACK]([/color][/b]defun C:test [b][color=FUCHSIA]([/color][/b] / *error* p1 p2 right top lr lt main [b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]defun *error* nil [b][color=NAVY]([/color][/b]redraw[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]princ[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]and [b][color=MAROON]([/color][/b]setq p1 [b][color=GREEN]([/color][/b]getpoint [color=#2f4f4f]"\nSpecify bottom left corner <exit>: "[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq p2 [b][color=GREEN]([/color][/b]getcorner p1 [color=#2f4f4f]"\nSpecify top right corner <exit>: "[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]and [b][color=MAROON]([/color][/b]setq p1 [b][color=GREEN]([/color][/b]trans p1 1 0[b][color=GREEN])[/color][/b] p2 [b][color=GREEN]([/color][/b]trans p2 1 0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq right [b][color=GREEN]([/color][/b]lambda [b][color=BLUE]([/color][/b]x[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]polar x 0. 25.4[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq top [b][color=GREEN]([/color][/b]lambda [b][color=BLUE]([/color][/b]x[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]polar x [b][color=RED]([/color][/b]/ PI 2[b][color=RED])[/color][/b] 25.4[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq lr [b][color=GREEN]([/color][/b]mapcar 'right [b][color=BLUE]([/color][/b]list p2 [b][color=RED]([/color][/b]list [b][color=PURPLE]([/color][/b]car p2[b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]cadr p1[b][color=PURPLE])[/color][/b] 0.[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]setq lt [b][color=GREEN]([/color][/b]mapcar 'top [b][color=BLUE]([/color][/b]list p2 [b][color=RED]([/color][/b]list [b][color=PURPLE]([/color][/b]car p1[b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]cadr p2[b][color=PURPLE])[/color][/b] 0.[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]setq lr [b][color=GREEN]([/color][/b]append [b][color=BLUE]([/color][/b]reverse [b][color=RED]([/color][/b]mapcar 'right lr[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] lr[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq lt [b][color=GREEN]([/color][/b]append [b][color=BLUE]([/color][/b]reverse [b][color=RED]([/color][/b]mapcar 'top lt[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] lt[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq main [b][color=GREEN]([/color][/b]list p1 [b][color=BLUE]([/color][/b]list [b][color=RED]([/color][/b]car p1[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]cadr p2[b][color=RED])[/color][/b] 0.[b][color=BLUE])[/color][/b] p2 [b][color=BLUE]([/color][/b]list [b][color=RED]([/color][/b]car p2[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]cadr p1[b][color=RED])[/color][/b] 0.[b][color=BLUE])[/color][/b] [b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]not [b][color=GREEN]([/color][/b]redraw[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]not [b][color=GREEN]([/color][/b]grvecs [b][color=BLUE]([/color][/b]cons -1 [b][color=RED]([/color][/b]apply 'append [b][color=PURPLE]([/color][/b]mapcar 'list main [b][color=TEAL]([/color][/b]cons [b][color=OLIVE]([/color][/b]last main [b][color=OLIVE])[/color][/b] main[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]LWPoly lr 1[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]LWPoly lt 1[b][color=MAROON])[/color][/b] [b][color=NAVY])[/color][/b] [b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]redraw[b][color=FUCHSIA])[/color][/b][b][color=FUCHSIA]([/color][/b]princ[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b][color=#8b4513]; Lee Mac[/color][b][color=BLACK]([/color][/b]defun LWPoly [b][color=FUCHSIA]([/color][/b]lst cls[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]entmakex [b][color=NAVY]([/color][/b]append [b][color=MAROON]([/color][/b]list [b][color=GREEN]([/color][/b]cons 0 [color=#2f4f4f]"LWPOLYLINE"[/color][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]cons 100 [color=#2f4f4f]"AcDbEntity"[/color][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]cons 100 [color=#2f4f4f]"AcDbPolyline"[/color][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]cons 90 [b][color=BLUE]([/color][/b]length lst[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]cons 70 cls[b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]mapcar [b][color=GREEN]([/color][/b]function [b][color=BLUE]([/color][/b]lambda [b][color=RED]([/color][/b]p[b][color=RED])[/color][/b] [b][color=RED]([/color][/b]cons 10 p[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] lst[b][color=MAROON])[/color][/b] [b][color=NAVY])[/color][/b] [b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]