> 1 <

Автор Сообщение

Cheburaxa

Members


Статус

1 сообщений

Где: Russia
Род занятий:
Возраст:

#3660   2010-12-11 23:24 GMT+3 часа(ов)      
Здравствуйте!
Помогите решить проблему.
Создали диалоговое окно, в котором есть несколько полей и флажок. Если он выбран, то при нажатии ОК, создается рамка чертежа, которая заполняется ввденными в поля данными. Если флажок снят, то данные выводятся в командную строку. Так вот. У нас создается таблица и при нажатом и при снятом флажке. Никак не можем найти ошибку.

;;;-------------------------------------------------------------------------------
;;;ТАБЛИЦА
;;;-------------------------------------------------------------------------------
 
 
;запоминаем значения системных переменных
(defun SaveOldSysVars ()
(setq ThisProgOldMenuecho (getvar "Cmdecho"))
;управляет выводом сообщений
(setq ThisProgOldSnMode (getvar "Osmode")) ;объектная привязка
(setq ThisProgOldTxtStyle (getvar "Textstyle"))
; текущий текстовой стиль
)
 
; устанавливаем новые значения системных переменных
(defun SetNewSysVarsVal ()
 
(setvar "Osmode" 0) ; привязку отключить необходимо!!!
 
)
 
; устанавливаем исходные значения системных переменных
(defun SetOldSysVars ()
(setvar "Osmode" ThisProgOldSnMode)
(setvar "Textstyle" ThisProgOldTxtStyle)
(command "ucs" "w") ; теоретически, надо то же бы запоминать
(setvar "Cmdecho" ThisProgOldMenuecho)
)
 
(defun SetMyTxtStyle ()
(command "-style" "MYCAD_st" "Arial" "0" "0.8" "0" "N" "N")
)
 
(defun tabl ()
(SaveOldSysVars) ;сохраняем старые значения сист. переменных
; (setq a (getpoint "\nПравый нижний угол")) ;спрашиваем точку вставки
(SetNewSysVarsVal) ; устанавливаем системные переменные
; (SetMyTxtStyle) ;устанавливаем текстовой стиль
; (command "ucs" "N" a) ; создаем новую систему координат с центром в указ. точке
(command "-lweight" "0.1")
; (setq ff (open "Project.ini" "r")) ; открывает файл для чтения
; (setq tmp "***") ;если вдруг файл не будет найден
 
; рамка
(command "line" "0,0" "185,0" "185,287" "0,287" "c")
 
;таблица
(command "line" "7,55" "7,30" "")
(command "line" "0,0" "185,0" "185,55" "0,55" "_C")
(command "line" "17,55" "17,0" "")
(command "line" "65,55" "65,0" "")
(command "line" "135,40" "135,0" "")
(command "line" "0,40" "185,40" "")
(command "line" "0,50" "65,50" "")
(command "line" "0,45" "65,45" "")
(command "line" "0,35" "65,35" "")
(command "line" "0,30" "65,30" "")
(command "line" "0,25" "65,25" "")
(command "line" "0,20" "65,20" "")
(command "line" "0,15" "185,15" "")
(command "line" "0,10" "65,10" "")
(command "line" "0,5" "65,5" "")
(command "line" "40,55" "40,0" "")
(command "line" "55,55" "55,0" "")
(command "line" "135,35" "185,35" "")
(command "line" "135,20" "185,20" "")
(command "line" "155,20" "155,15" "")
(command "line" "140,35" "140,20" "")
(command "line" "145,35" "145,20" "")
(command "line" "150,40" "150,20" "")
(command "line" "167,40" "167,20" "")
 
(command "-lweight" "0.1")
(command "-text" "1,31" "2.5" "0" "Изм.")
(command "-text" "8,31" "2.5" "0" "Лист")
(command "-text" "18,31" "2.5" "0" "N докум.")
(command "-text" "41,31" "2.5" "0" "Подп.")
(command "-text" "56,31" "2.5" "0" "Дата")
(command "-text" "136,36" "2.5" "0" "Лит")
(command "-text" "151,36" "2.5" "0" "Масса")
(command "-text" "168,36" "2.5" "0" "Масштаб")
(command "-text" "1,26" "2.5" "0" "Разраб.")
(command "-text" "1,21" "2.5" "0" "Пров.")
(command "-text" "1,16" "2.5" "0" "T.контр.")
(command "-text" "1,6" "2.5" "0" "Н.контр.")
(command "-text" "1,1" "2.5" "0" "Утв.")
)
;;;-------------------------------------------------------------------------------------------------
;;;ДИАЛОГОВОЕ ОКНО
;;;-------------------------------------------------------------------------------------------------
(defun dd_lab ( / ret_value1 dcl_id what_next on_ed2 on_ed1 on_ed3 on_ed4 on_ed5 on_tog1)
; функция, вызываемая по OK (формирование списка данных на выход)
(defun ok_tab ( / )
(setq ret_value1 (list (list "ed1" on_ed1) (list "ed2" on_ed2) (list "ed3" on_ed3)
(list "ed4" on_ed4) (list "ed5" on_ed5) (list "tog1" on_tog1)))
)
; загрузка диалога
(setq dcl_id (load_dialog "ot_tab.dcl"))
; проверка существования диалога, если не существует - выход
(if (not (new_dialog "dd_edit" dcl_id))(progn
(alert "Выбранный диалог не загрузился")
(exit)))
; начальные установки переменных и элементов
(set_tile "edit5" "Материал") (set_tile "edit4" "Деталь") (set_tile "edit3" "Название") (set_tile "edit2" "Ф.И.О.") (set_tile "edit1" "Ф.И.О")
(setq on_ed1 "Чертил" on_ed2 "Проверил" on_ed3 "Название" on_ed4 "Деталь" on_ed5 "Материал")
 
(setq what_next 8)
; цикл создания Полей
 
(while (< 2 what_next)
(action_tile "edit1" "(setq on_ed1 $value)")
(action_tile "edit2" "(setq on_ed2 $value)")
(action_tile "edit3" "(setq on_ed3 $value)")
(action_tile "edit4" "(setq on_ed4 $value)")
(action_tile "edit5" "(setq on_ed5 $value)")
 
(action_tile "accept" "(done_dialog 1) (ok_tab)")
(setq what_next (start_dialog))
)
 
;Создание флажка
; функция установки включенных позиций
(setq on_tog1 "1")
(set_tile "tog1" "1")
; Инициализация ключей в зависимости от введенных параметров
(on_txt on_tog1)
(setq what_next 8)
; цикл
(while (< 2 what_next)
(action_tile "accept" "(done_dialog 1) (ok_tab)")
(action_tile "tog1" "(setq on_tog1 $value)(on_txt on_tog1)")
(setq what_next (start_dialog))
)
 
 
(defun kkk (x / )
 
(tabl)
(command "text" "18,26" "2.5" "0" on_ed1)
(command "text" "18,21" "2.5" "0" on_ed2)
(command "text" "85,45" "4" "0" on_ed3)
(command "text" "80,25" "5" "0" on_ed4)
(command "text" "80,5" "3.5" "0" on_ed5)
 
)
 
(defun on_txt( x / )
(if (= x "1")
(set_tile "tog1" (kkk) )
(set_tile "tog1" " ")
 
)
)
 
; выгрузка диалога из памяти
(unload_dialog dcl_id)
; возвращаемое значение:
ret_value1
)
> 1 <


Онлайн :

0 пользователь(ей), 31 гость(ей) :