这将帮助您关闭OSNAP,但如果您想在此例程中实现完全的“安全”,则需要添加错误处理程序,以便在用户点击Esc时重新打开OSNAP。
- [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:box1 [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] oldos len leng dist pt1 pt2 pt3 pt4 pt5 pt6[b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] oldos [b][color=RED]([/color][/b][b][color=BLUE]getvar[/color][/b] [b][color=#ff00ff]"OSMODE"[/color][/b][b][color=RED])[/color][/b] [i][color=#990099]; Collect Old OSMODE setting[/color][/i]
- [i][color=#990099]; Define Functions and Localise Variables[/color][/i]
- len [b][color=RED]([/color][/b][b][color=BLUE]getdist[/color][/b] [b][color=#ff00ff]"\nLength1: "[/color][/b][b][color=RED])[/color][/b]
-
- leng [b][color=RED]([/color][/b][b][color=BLUE]getdist[/color][/b] [b][color=#ff00ff]"\nLength2: "[/color][/b][b][color=RED])[/color][/b]
- [i][color=#990099]; I'd be more inclined to use "getdist"[/color][/i]
- [i][color=#990099]; so that the user can pick the distance.[/color][/i]
-
- dist [b][color=RED]([/color][/b][b][color=BLUE]getdist[/color][/b] [b][color=#ff00ff]"\nDistance: "[/color][/b][b][color=RED])[/color][/b]
-
- pt1 [b][color=RED]([/color][/b][b][color=BLUE]getpoint[/color][/b] [b][color=#ff00ff]"\nInsertion: "[/color][/b][b][color=RED])[/color][/b]
-
- pt2 [b][color=RED]([/color][/b][b][color=BLUE]polar[/color][/b] pt1 [b][color=RED]([/color][/b][b][color=BLUE]*[/color][/b] [b][color=BLUE]pi[/color][/b] [b][color=#009999]0.5[/color][/b][b][color=RED])[/color][/b] dist[b][color=RED])[/color][/b]
-
- [i][color=#990099];;; + pt2[/color][/i]
- [i][color=#990099];;; |[/color][/i]
- [i][color=#990099];;; |[/color][/i]
- [i][color=#990099];;; + pt1[/color][/i]
-
- pt3 [b][color=RED]([/color][/b][b][color=BLUE]polar[/color][/b] pt2 [b][color=BLUE]pi[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]*[/color][/b] len [b][color=#009999]0.5[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
-
- [i][color=#990099];;; +--------+ pt2[/color][/i]
- [i][color=#990099];;; pt3 |[/color][/i]
- [i][color=#990099];;; |[/color][/i]
- [i][color=#990099];;; + pt1[/color][/i]
-
-
- pt4 [b][color=RED]([/color][/b][b][color=BLUE]polar[/color][/b] pt3 [b][color=RED]([/color][/b][b][color=BLUE]*[/color][/b] [b][color=BLUE]pi[/color][/b] [b][color=#009999]0.5[/color][/b][b][color=RED])[/color][/b] leng[b][color=RED])[/color][/b]
-
- [i][color=#990099];;; pt4[/color][/i]
- [i][color=#990099];;; +[/color][/i]
- [i][color=#990099];;; |[/color][/i]
- [i][color=#990099];;; |[/color][/i]
- [i][color=#990099];;; +--------+ pt2[/color][/i]
- [i][color=#990099];;; pt3 |[/color][/i]
- [i][color=#990099];;; |[/color][/i]
- [i][color=#990099];;; + pt1[/color][/i]
-
-
- pt5 [b][color=RED]([/color][/b][b][color=BLUE]polar[/color][/b] pt4 [b][color=#009999]0.0[/color][/b] len[b][color=RED])[/color][/b]
-
- [i][color=#990099];;; pt4 pt5[/color][/i]
- [i][color=#990099];;; +-----------------+[/color][/i]
- [i][color=#990099];;; |[/color][/i]
- [i][color=#990099];;; | pt2[/color][/i]
- [i][color=#990099];;; +--------+--------+[/color][/i]
- [i][color=#990099];;; pt3 | pt6[/color][/i]
- [i][color=#990099];;; |[/color][/i]
- [i][color=#990099];;; + pt1[/color][/i]
-
-
- pt6 [b][color=RED]([/color][/b][b][color=BLUE]polar[/color][/b] pt3 [b][color=#009999]0.0[/color][/b] len[b][color=RED])[/color][/b]
- [b][color=RED])[/color][/b] [i][color=#990099]; End Setq[/color][/i]
- [b][color=RED]([/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=#ff00ff]"OSMODE"[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b] [i][color=#990099]; Turn off the OSnaps![/color][/i]
-
- [b][color=RED]([/color][/b][b][color=BLUE]command[/color][/b] [b][color=#ff00ff]"_.pline"[/color][/b] pt3 pt4 pt5 pt6 pt3 [b][color=#ff00ff]""[/color][/b][b][color=RED])[/color][/b]
- [i][color=#990099]; Remember to use "_." prefix to make it[/color][/i]
- [i][color=#990099]; compatible for all language versions.[/color][/i]
-
- [b][color=RED]([/color][/b][b][color=BLUE]command[/color][/b] [b][color=#ff00ff]"_.rotate"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entlast[/color][/b][b][color=RED])[/color][/b] [b][color=#ff00ff]""[/color][/b] pt1 pause[b][color=RED])[/color][/b]
- [i][color=#990099]; Use "entlast" to detect last entity[/color][/i]
- [i][color=#990099]; added to database (hence created).[/color][/i]
- [b][color=RED]([/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=#ff00ff]"OSMODE"[/color][/b] oldos[b][color=RED])[/color][/b] [i][color=#990099]; Turn OSMODE back on[/color][/i]
-
- [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b]
- [i][color=#990099]; Exit Cleanly[/color][/i]
-
- [b][color=RED])[/color][/b] [i][color=#990099]; End box1[/color][/i]
|