・ 連続するポイント指示中に一つ前に戻る
ユーザーに連続するポイントを指示させて、LINE や POLYLINE
を作図する場合、ユーザーが、誤ったポイントを指示してしまうことがあります。こういった場合、ユーザーに
"U"を入力させて一つ前の状態に戻れるようにすると親切です。
そうしないと、最初からやり直さなければなりませんからね・・・。
(defun Jof_lst_pt ( / pt lst_pt)
(setq lst_pt (cons (setq pt (getpoint "\n始点を指示")) lst_pt))
(while pt
(initget 32 "U")
(setq pt (getpoint pt "\n次の点を指示 (U=直前取消 / Enter=指定終了):"))
(mapcar '(lambda (x y) (grdraw x y -1 1)) (reverse (cdr (reverse lst_pt))) (cdr lst_pt))
(cond
((= pt "U")
(setq lst_pt (cdr lst_pt))
(setq pt (car lst_pt)))
(pt
(setq lst_pt (cons pt lst_pt)))
)
(mapcar '(lambda (x y) (grdraw x y -1 1)) (reverse (cdr (reverse lst_pt))) (cdr lst_pt))
)
(mapcar '(lambda (x y) (grdraw x y -1 1)) (reverse (cdr (reverse lst_pt))) (cdr lst_pt))
(reverse lst_pt)
)