ПЗ (1218806), страница 14
Текст из файла (страница 14)
(setq v1(getpoint "Укажите место для нумерации. Чтобы завершить - нажмите ESC"
)
)
(setq v2 (polar v1 pi 5))
(setq v3 (polar v1 0 5))
(setq v4 (polar v1 pi 1.0))
(setq v5 (polar v4 (/ (* 3 pi) 2) 1.0))
(command "_break" v2 v3)
(command "_text" v5 getSizeSymbols (angtos 0) o "")
(setq o (+ o 1))
(if (> o getMaxNum)
(alert "Нумерация завершена")
)
)
)
)
); end defun
(defun getpar ()
(setq getNumbers (atoi (get_tile "how")))
)
(defun c:dialog_num_paths (/ dcl_id getNumbers)
(setq dcl_id
(load_dialog
"C:/Users/Игорь/Desktop/diplom/group/Dialogs/dialog_num_paths.dcl"
)
) ; загружаем диалог (файл DCL)
(if (null (new_dialog "num_p" dcl_id))
(exit)
) ; ; проверка существования диалога
(action_tile "accept" "(getpar) (done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)") ;Если нажата кнопка "cancel"
(setq ddi (start_dialog))
(unload_dialog dcl_id) ; выгрузить Диалоговое окно
(if (= ddi 1)
(num_paths getNumbers)
)
(princ)
)
;---------------------------------------------------------------
;------------Нумерация путей (Римские цифры)--------------------
(defun numbersRoman (getNumRom /)
(setq
oo1 (getpoint
"\nУкажите место нумерации. Чтобы завершить - нажмите ESC"
)
)
(setq oo2 (polar oo1 pi 5))
(setq oo3 (polar oo1 0 5))
(setq oo4 (polar oo1 pi 1))
(setq oo5 (polar oo4 (/ (* 3 pi) 2) 1))
(command "_break" oo2 oo3)
(command "_text" oo5 getSizeSymbols (angtos 0) getNumRom "")
)
(defun getRom ()
(setq getNumRom (get_tile "rom_num"))
)
(defun c:dialog_num_paths_rome (/ dcl_id getNumRom)
(setq dcl_id
(load_dialog
"C:/Users/Игорь/Desktop/diplom/group/Dialogs/dialog_num_paths_roman.dcl"
)
); загружаем диалог (файл DCL)
(if (null (new_dialog "roman" dcl_id))
(exit)); проверка существования диалога
(action_tile "accept" "(getRom) (done_dialog 1)");Если нажата кнопка "аccept"
(action_tile "cancel" "(done_dialog 0)");Если нажата кнопка "cancel"
(setq ddi (start_dialog))
(unload_dialog dcl_id); выгрузить Диалоговое окно
(if (= ddi 1)
(numbersRoman getNumRom)
)
(princ)
)
;-----------------------конец файла main_file2.lsp----------
приложение б
(рекомендуемое)
Листинг DCL-программ диалоговых окон в редакторе Visual Lisp
// ------------------------нумерация путей--------------
num_p : dialog {label = "Нумерация путей"; key = "num_win";
: text {label = "Укажите необходимые параметры нумерации"; key = "num_p";
}
: spacer {height = 1;}
: popup_list {
label = "Нумерация";
key = "how";
list = "Четная" "\nНечетная" "\nОбычная";
edit_width = 20;
}
: spacer {height = 1;}
ok_cancel;
}
//---------------------------------------------
//----------------нумерация римскими цифрами------------
roman : dialog {label = "Нумерация главных путей"; key="romka";
: text {label = "Введите римскую цифру, которой нужно пронумеровать путь"; key ="txt_rom";}
: text {label = "ВНИМАНИЕ! Использовать нужно только символы: I, V, X, L, C, D, M"; key ="warning";}
//:spacer {height = 1;}
: edit_box {
label="Цифра: ";
key = "rom_num";
edit_width = 20;
value = "" ;
}
ok_cancel;
}
//---------------------------------------------------------
//--------------нумерация ЦСП------------------------------
numberCSP : dialog {label = "Нумерация стрелочных переводов";key = "numCSPwindow";
:text {label = "Выберите тип нумерации"; key="txt_numCSP";}
:popup_list {
label = "Тип чисел: ";
key = "num_type";
list = "Четные" "\nНечетные";
edit_width = 15;
}
:spacer {height = 1;}
ok_cancel;
}
//-------------------------------------------------------------
//---------------параллельная укладка стрелочных переводов-----
parallel : dialog {label = "Смежные стрелочные переводы с параллельной укладкой"; key = "paral_w";
: text {
label = "Укажите необходимые параметры"; key = "txt_paral";}
: spacer {height = 1;}
:popup_list {
label = "Тип путей: ";
key = "paths";
list = "Главные" "\nПриемоотправочные" "\nПрочие";
edit_width = 20;
}
:popup_list {
label = "Тип рельс:";
key = "type_r_paral";
edit_width = 20;
list = "P65" "\nP50";
}
:popup_list {
label = "Марка двух переводов:";
key = "marka_paral";
list = "1/11 - 1/11" "\n1/9 - 1/9";
edit_width = 20;
}
: spacer {height = 1;}
:popup_list {
label = "Направление первого стрелочного перевода:";
key = "first_napr";
edit_width = 20;
list = "Пошерстное" "\nПротивошерстное";
}
:popup_list {
label = "Направление второго стрелочного перевода:";
key = "second_napr";
edit_width = 20;
list = "Пошерстное" "\nПротивошерстное";
}
:popup_list {
label = "Вид стрелочного перевода:";
key = "view_paral";
edit_width = 20;
list = "Левосторонний" "\nПравосторонний";
}
:edit_box {
label = "Междупутье [e]: ";
value = "";
key = "e";
edit_width = 21;
}
ok_cancel;
}
//------------------------------------------
//-------------попутная укладка----------------
poput : dialog {label = "Смежный стрелочный перевод с попутной укладкой"; key = "poputt";
: text {label = "Укажите необходимые параметры"; key= "txt_pop";}
: spacer {height = 1;}
:popup_list {
label = "Тип путей:";
list = "Главные" "\nПриемоотправочные" "\nПрочие"; // 0 , 1 and 2
edit_width = 31;
key = "type_paths_pop";
}
:popup_list {
label = "Скорости движения:";
list = "До 120 км/ч" "\nПассажирских поездов до 121 км/ч"; //0 and 1
edit_width = 31;
key = "speed_pop";
}
: spacer {height = 1;}
:popup_list {
label = "Тип рельс";
key = "type_r_pop";
edit_width = 31;
list = "P65" "\nP50";
}
:popup_list {
label = "Марки двух стрелочных переводов";
key = "mark_two_pop";
edit_width = 31;
list = "1/11 - 1/11" "\n1/11 - 1/9" "\n1/9 - 1/11" "\n1/9 - 1/9"; //0, 1, 2, 3
}
: spacer {height = 1;}
ok_cancel;
}
//----------------------------------------
//-----------------------окно настроек---------------------------
fix : dialog {label = "Окно настроек свойств примитивов и надписей"; key = "prim_win";
:text {label= "В области ввода отображены рекомендуемые значения (по умолчанию)"; key = "default";}
:text {label = "Толщина линий путей: "; key = "put_wid";}
: edit_box {
label = "Главные пути: ";
edit_width = 25;
key = "mainPUT";
value = 0.5;
}
: edit_box {
label = "Станционные пути: ";
edit_width = 25;
key = "stancPUT";
value = 0.3;
}
:spacer {height = 1;}
:text {label = "Толщина линий стрелочных переводов и параллельных соединений: "; key = "str_wid";}
: edit_box {
label = "Простые стрелочные переводы: ";
edit_width = 25;
key = "str_easy";
value = 0.3;
}
: edit_box {
label = "Смежные стрелочные переводы: ";
edit_width = 25;
key = "smezh_str";
value = 0.3;
}
: spacer {height = 1;}
: edit_box {
label = "Максимальное число нумерации: ";
edit_width = 25;
key = "maxnum";
value = 50;
}
: edit_box {
label = "Размер надписи: ";
edit_width = 25;
key = "sizeS";
value = "3";
}
ok_cancel;
}
//---------------------------------------------
//-------------------сопряжение путей--------------
skrug : dialog {label = "Сопряжение пути"; key = "sk";
: edit_box {
label = "Введите радиус сопряжения";
key = "Rad_skrug";
value = "";
edit_width = "20";
}
ok_cancel;
}
//--------------------------------------------------
//----------------соединение параллельных путей-----
soed_nesok_odin: dialog {label = "Несокращенное одиночное соединение";
: spacer{height=1;} //
: edit_box {
label = "Ширина междупутья е, [м]:";
key = "e";
edit_width=30;
value = "";
} // Ширина междупутья
: edit_box {
label = "Радиус сопрягающей кривой R, [м]:";
key = "R";
edit_width=30;
value = "";
} // Радиус сопрягающей кривой
: spacer{height=1;}
:popup_list {
label="Марка стрелочного перевода:";
key="mark";
list="1/9" "\n1/11";
edit_width=30;
} // Марка перевода
:popup_list {
label="Тип рельсов:";
key="type_r";
list="Р50" "\nР65";
edit_width=30;
} // Тип рельсов
: spacer{height=1;}
:popup_list {
label = "Тип тяги: ";
key = "tyaga";
list = "Тепловозная" "\nЭлектровозная";
edit_width = 25;
}
:toggle {
label = "Предельный столбик";
key = "stolb_checkbox";
value = 0;
}
:toggle {
label = "Мачтовый светофор перед центром перевода";
key = "svet_beforecent_checkbox";
value = 0;
}
:toggle {
label = "Мачтовый светофор внутри перевода (требуется ограничительный столбик)";
key = "svet_inside_checkbox";
value = 0;
}
:toggle {
label = "Мачтовый светофор снаружи перевода (требуется ограничительный столбик)";
key = "svet_outside_checkbox";
value = 0;
}
ok_cancel;
}
//--------------------------------------------------
//---------------стрелочные переводы(универсальная)----
strelka : dialog {label = "Варианты стрелочного перевода"; key = "var_strel";
: text {label = "Выберите нужный вариант стрелочного перевода";}
: spacer {height = 1;}
: popup_list {
label = "Тип рельс: ";
list = "P65" "\nP50";
key = "list_type_r";
edit_width = 20;
}
: popup_list {
label = "Марка стрелочного перевода: ";
list = "1/11" "\n1/9";
key = "list_mark";
edit_width = 20;
}
: popup_list {
label = "Вид стрелочного перевода: ";
key = "view";
list = "Левостороний" "\nПравосторонний";
edit_width = 20;
}
:popup_list {
label = "Направление: ";
list = "Противошерстное" "\nПошерстное";
key = "direction";
edit_width = 20;
}
:edit_box {