Тема: Что нужно прописать в лиспе, чтобы программка начала работать заново?

что нужно прописать в лиспе, какую использовать команду, чтобы, нажимая на кнопку в диалоговом окне, программка начала работать заново

Re: Что нужно прописать в лиспе, чтобы программка начала работать заново?

В лиспе
(Setq P11 (getpoint "\n  начало первой прямой :"))
(Setq P12 (getpoint "\n  конец первой прямой :"))
(Setq P21 (getpoint "\n  начало второй прямой:"))
(Setq P22 (getpoint "\n  конец второй прямой:"))
(Setq p (inters p11 p12 p21 p22 nil))
(Command "_point" p )
(princ "\nProdolgit")(princ)
  ; Load Dialog
  (setq Dcl_Id (load_dialog "Prodolgit.dcl"))
  (new_dialog "Prodolgit" Dcl_Id)
  ; Dialog Actions
  (action_tile "ok1" "(done_dialog 1)");
  (action_tile "cancel" "(done_dialog 0)")
  (setq Return (start_dialog))
  ; Unload Dialog
  (unload_dialog Dcl_Id)
  (princ "\n")(princ Return);Optional
  (princ)
В dcl
Prodolgit : dialog {
  label = "Продолжить?";
  spacer;
  : row {
    fixed_width = true;
    alignment = centered;
    : button {label="Да"; key="ok1"; width = 11;}
    : cancel_button {label="Нет"; width = 11;}
}
}//Prodolgit
что сделать, чтобы нажимая на кнопку "да", программка опять пошла по второму кругу

Re: Что нужно прописать в лиспе, чтобы программка начала работать заново?

Вынести необходимую часть программы в отдельную фунцию. Для примера работы, без анализа кода.

(defun test ( / Dcl_Id )
  (setq Dcl_Id (load_dialog "Prodolgit.dcl"))
  (test1)
  (new_dialog "Prodolgit" Dcl_Id)
  (while (= 1 (start_dialog))
    (test1)
    (new_dialog "Prodolgit" Dcl_Id)
  ) ; while
  (unload_dialog Dcl_Id)
) ; defun test
(defun test1 ( / )
  (Setq P11 (getpoint "\n начало первой прямой :"))
  (Setq P12 (getpoint "\n конец первой прямой :"))
  (Setq P21 (getpoint "\n начало второй прямой:"))
  (Setq P22 (getpoint "\n конец второй прямой:"))
) ; defun test1

Файл DCL

Prodolgit : dialog {
label = "Продолжить?";
spacer;
: row {
fixed_width = true;
alignment = centered;
: ok_button {label="Да"; key="ok1"; width = 11; action="(done_dialog 1)";}
: cancel_button {label="Нет"; width = 11;}
}
}//Prodolgit

Re: Что нужно прописать в лиспе, чтобы программка начала работать заново?

спасибо большое, Юрий