> 1 <
Автор | Сообщение |
карл
2 сообщений |
#7627 2015-05-05 19:59 GMT+3 часа(ов) |
Не знаю, в чем дело. Прога может запуститься один раз (и то не всегда), потом перестает. Что не так, кто подскажет?
код прикрепил во вложения. код dcl-окна prog45: dialog { label = "Свайный фундамент"; :row { :boxed_column { label = "Введите параметры"; :edit_box { label = "Глубина промерзания"; width = 10; key = "DEEP"; value = "2000"; } :edit_box { label = "Ширина и длина сваи"; width = 10; key = "COLUMN_B"; value = "500"; } :edit_box { label = "Длина фундамента"; width = 10; key = "HEIGHT"; value = "15000"; } :edit_box { label = "Ширина фундамента"; width = 10; key = "WIDTH"; value = "8000"; } :edit_box { label = "Расстояние между сваями"; width = 10; key = "DIST"; value = "2000"; } :edit_box { label = "Толщина ростверка"; width = 10; key = "ARNI"; value = "400"; } }} ok_cancel;} lsp-код (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 2)") (setq res (start_dialog)) (unload_dialog id) (if (= res 1) (progn (command "_-layer" "_s" "0" "" "") (DrawFront DEEP1 COLUMN_B1 BASE1 HEIGHT1 WIDTH1 DIST1 ARNI1))) (defun DrawFront (DEEP1 COLUMN_B1 BASE1 HEIGHT1 WIDTH1 DIST1 ARNI1) (setq DEEP (atoi DEEP1)) (setq COLUMN (atoi COLUMN_B1)) (setq HEIGHT (atoi HEIGHT1)) (setq WIDTH (atoi WIDTH1)) (setq DIST (atoi DIST1)) (setq ARNI (atoi ARNI1)) ; РОСТВЕРК-ПЛИТА (setq p0 '(0 0)) (setq p1 (list (+ (nth 0 p0) HEIGHT) (+ (nth 1 p0) WIDTH) )) (command "_.rectang" p0 p1) (command "_.extrude" (entlast) "" ARNI) ; СВАЯ (setq p2 (list (+ (nth 0 p0) COLUMN) (+ (nth 1 p0) COLUMN) )) (command "_.rectang" p0 p2) (command "_.extrude" (entlast) "" (- 0 (+ DEEP 300))) (setq sv0 (entlast)) ; ОСНОВАНИЕ СВАИ (setq p3 (list (+ (nth 0 p0) (/ COLUMN 2)) (+ (nth 1 p0) (/ COLUMN 2)) )) (command "_.CIRCLE" p3 (/ (* COLUMN (sqrt 2)) 2) ) ; Соединение сваи с основанием (command "_.move" (entlast) "" "" (list 0 0 (- 0 (+ DEEP 300)) )) (setq sv1 (entlast)) (command "_.CIRCLE" p3 (* COLUMN 1.2) ) ; Основание сваи (command "_.move" (entlast) "" "" (list 0 0 (- 0 (+ DEEP 1000)) )) (setq sv2 (entlast)) (command "_.loft" sv1 sv2 "" "") (command "_.union" (entlast) sv0 "") (setq FULL_COLUMN (entlast)) ; УСТАНОВКА СВАЙ В УГЛЫ (command "_.copy" FULL_COLUMN "" "" (list 0 (- WIDTH COLUMN) 0)) (setq CORNER1 (entlast)) (command "_.copy" FULL_COLUMN "" "" (list (- HEIGHT COLUMN) 0 0)) (setq CORNER2 (entlast)) (command "_.copy" FULL_COLUMN "" "" (list (- HEIGHT COLUMN) (- WIDTH COLUMN) 0)) (setq CORNER3 (entlast)) ; УСТАНОВКА СВАЙ ПО ПОЛОЩАДИ РОСТВЕРКА-ПЛИТЫ (setq n (round (/ HEIGHT DIST) 1) ) (setq ss DIST) (setq k (round (/ WIDTH DIST) 1) ) ( REPEAT (- n 1) (command "_.copy" FULL_COLUMN "" "" (list ss 0 0)) (setq kk DIST) ( REPEAT (- k 1) (command "_.copy" (entlast) "" "" (list 0 DIST 0)) (setq kk (+ kk DIST)) ) (setq ss (+ ss DIST)) ) (setq n (round (/ WIDTH DIST) 1) ) (setq ss DIST) ( REPEAT (- n 1) (command "_.copy" FULL_COLUMN "" "" (list 0 ss 0)) (setq ss (+ ss DIST)) ) (setq n (round (/ HEIGHT DIST) 1) ) (setq ss DIST) ( REPEAT (- n 1) (command "_.copy" CORNER1 "" "" (list ss 0 0)) (setq ss (+ ss DIST)) ) (setq n (round (/ WIDTH DIST) 1) ) (setq ss DIST) ( REPEAT (- n 1) (command "_.copy" CORNER2 "" "" (list 0 ss 0)) (setq ss (+ ss DIST)) ) ) |
|
карл
2 сообщений |
#7629 2015-05-06 03:16 GMT+3 часа(ов) |
И у вас после этого заработала? Даже после перезапуска? у меня нет..
|
|
gomer![]()
24 сообщений |
#7658 2015-08-16 13:46 GMT+3 часа(ов) |
Вероятно все дело в глобальных переменных и их неумелом использовании
|
|
> 1 <