3D модель фундамента в acad - второй раз программа не запускается - Lisp
Формулировка задачи:
Не знаю, в чем дело. Прога может запуститься один раз (и то не всегда), потом перестает. Что не так, кто подскажет?
код прикрепил во вложения
Решение задачи: «3D модель фундамента в acad - второй раз программа не запускается»
textual
Листинг программы
(defun c:FrontDraw ( / id *error* res DEEP1 COLUMN_B1 HEIGHT1 BASE1GHT1 WIDTH1 DIST1 ARNI1 ) (defun *error* (msg) (alert msg) (princ) ) (if (< (setq id (load_dialog "mywindow45.dcl")) 0) (exit) ) (if (not (new_dialog "prog45" id)) (exit) ) (action_tile "DEEP" "(setq DEEP1 $value)") (action_tile "COLUMN_B" "(setq COLUMN_B1 $value)") (action_tile "HEIGHT" "(setq HEIGHT1 $value)") (action_tile "BASE" "(setq BASE1GHT1 $value)") (action_tile "WIDTH" "(setq WIDTH1 $value)") (action_tile "DIST" "(setq DIST1 $value)") (action_tile "ARNI" "(setq ARNI1 $value)") (action_tile "accept" "(done_dialog 1)") (action_tile "cancel" "(done_dialog 0)") (setq res (start_dialog)) (unload_dialog id) (if (= res 1) (progn (command "_-layer" "_s" "0" "" "") (DrawFront DEEP1 COLUMN_B1 BASE1 HEIGHT1 WIDTH1 DIST1 ARNI1) ) ) (*error* nil) )
Объяснение кода листинга программы
- Определение функции
c:FrontDraw
. - Определение функции
*error*
. - Проверка: была ли загружена диалоговая панель
mywindow45.dcl
. - Проверка: создана ли диалоговая панель
prog45
. - Ввод значений переменных
DEEP
,COLUMN_B
,HEIGHT
,BASE
,WIDTH
,DIST
,ARNI
с помощью командыaction_tile
. - Вызов функции
done_dialog
для сохранения введенных значений. - Запуск функции
start_dialog
для отображения диалоговой панелиprog45
. - Проверка: был ли нажат кнопка
accept
в диалоговой панелиprog45
. - Если кнопка
accept
была нажата, то вызов функцииDrawFront
с введенными значениями переменных. - Если кнопка
cancel
была нажата, то выход из программы. - Выгрузка диалоговой панели
mywindow45.dcl
. - Вызов функции
command
для создания слоя0
и его активации. - Вызов функции
DrawFront
с введенными значениями переменных. - Вызов функции
alert
с сообщением об ошибке. - Вызов функции
princ
для очистки консоли. - Вызов функции
unload_dialog
для выгрузки диалоговой панелиprog45
. - Выход из программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д