Тема: Что нужно прописать в лиспе, чтобы программка начала работать заново?
что нужно прописать в лиспе, какую использовать команду, чтобы, нажимая на кнопку в диалоговом окне, программка начала работать заново
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → DCL → Что нужно прописать в лиспе, чтобы программка начала работать заново?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
что нужно прописать в лиспе, какую использовать команду, чтобы, нажимая на кнопку в диалоговом окне, программка начала работать заново
В лиспе
(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
что сделать, чтобы нажимая на кнопку "да", программка опять пошла по второму кругу
Вынести необходимую часть программы в отдельную фунцию. Для примера работы, без анализа кода.
(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
спасибо большое, Юрий
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → DCL → Что нужно прописать в лиспе, чтобы программка начала работать заново?
Форум работает на PunBB, при поддержке Informer Technologies, Inc