・ 連続するポイント指示中に一つ前に戻る
ユーザーに連続するポイントを指示させて、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) )