Пояснительная записка (1230110), страница 11
Текст из файла (страница 11)
(setq k_t1 (polar k_b1 (+ pi sumangle) TG)
k_t11 (polar k_t1 (+ (- (/ pi 2)) beta) 1)
k_t111 (polar k_t11 (+ pi beta) 1)
k_t112 (polar k_t11 (+ 0 beta) 1)
k_t22 (polar k_d (+ (- (/ pi 2)) beta) 1)
k_t221 (polar k_t22 (+ pi beta) 1)
k_t222 (polar k_t22 (+ 0 beta) 1)
k_rad (polar k_b1 (+ (/ pi 8) beta) 4)
)
)
(command "_text" k_rad "1.5" (angtos beta) rad "")
(command "_line" k_t1 k_t11 k_t111 k_t112 "" "_line" k_d k_t22 k_t221 k_t222 "")
(command "_pline" k_m0 k_m k_a0 k_x k_t "")
(command "_pline" s1 s2 "")
(setvar "osmode" osm)
) ; soed
;-------------------- функция raz_soed -----------------------
(DEFUN raz_soed ()
(setq e (atof (get_tile "e"))
R (atoi (get_tile "R"))
napr (get_tile "napr")
ugol (get_tile "ugol")
d (atof (get_tile "d"))
svet (get_tile "svet")
L_svet (atof (get_tile "L_svet"))
)
)
;------------------------ Диалоговое окно ------------------
(setq dcl_id (load_dialog "dialogs.dcl"))
(if (not (new_dialog "soed_nesok_odin" dcl_id))(exit))
(action_tile "accept" "(raz_soed) (done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(setq ddi (start_dialog))
(unload_dialog dcl_id)
(if (= ddi 1) ( soed mark type_r e R napr ugol d svet L_svet))
(princ)
) ; mp_soed
(DEFUN c:soed_11_50 (/ type_r mark)
(setq mark "1")
(setq type_r "0")
(mp_soed mark type_r)
)
(DEFUN c:soed_11_65 (/ type_r mark)
(setq mark "1")
(setq type_r "1")
(mp_soed mark type_r)
)
(DEFUN c:soed_9_50 (/ type_r mark)
(setq mark "0")
(setq type_r "0")
(mp_soed mark type_r)
)
(DEFUN c:soed_9_65 (/ type_r mark)
(setq mark "0")
(setq type_r "1")
(mp_soed mark type_r)
)
(DEFUN c:strel_P65_1/11 ( / alpha m a0 b0 q b k_m0_k_a0 k_b0 k_q k_b1 osm s1 s2 p ctan Lpr k_p0 k_p beta)
(setq alpha 0.09066015836748323)
(setq m 2.769)
(setq a0 11.294)
(setq b0 16.754)
(setq q 2.550)
(setq b 19.304)
(setq beta (getangle "\n Задайте угол:"))
(setq k_m0 (getpoint "\n Укажите точку начала перевода:"))
(setq k_m (polar k_m0 (+ 0 beta) m)) ;устанавливаем координаты точи m
(setq k_a0 (polar k_m (+ 0 beta) a0)) ;устанавливаем координаты точи a0
(setq k_b0 (polar k_a0 (+ 0 beta) b0)) ;устанавливаем координаты точи b0
(setq k_q (polar k_b0 (+ 0 beta) q)) ;устанавливаем координаты точи q
(setq k_b1 (polar k_a0 (+ alpha beta) b)) ;устанавливаем координаты точи b1
(setq osm (getvar "osmode")) ; запоминаем привязки пользователя
(setq s1 (polar k_a0 (+ (/ pi 2) beta) 2))
(setq s2 (polar k_a0 (+ (-(/ pi 2)) beta) 2))
(setq osm (getvar "osmode"))
(setvar "osmode" 0)
(setvar "PLINEWID" 0.3)
(command "_pline" k_m0 k_m k_a0 k_b0 k_q "")
(command "_pline" k_a0 k_b1 "")
(command "_pline" s1 s2 "")
(setvar "osmode" osm))
ПРИЛОЖЕНИЕ Б
(рекомендуемое)
Содержание файла dialogs.dcl
soed_nesok_odin: dialog {label = "Несокращенное одиночное соединение";
: spacer{height=1;}
: boxed_column {label = "Положение элемента";
: popup_list{label="Направление перевода:"; key="napr"; list="Левосторонний" "\nПравосторонний"; edit_width=15;}
: toggle {label = "Повернуть путь"; key = "ugol";}
}
: spacer{height=1;}
: boxed_column {label = "Параметры соединения";
: edit_box {label = "Ширина междупутья е, [м]:"; key = "e"; edit_width=10; value = "5.3";} // Ширина междупутья
: edit_box {label = "Радиус сопрягающей кривой R, [м]:"; key = "R"; edit_width=10; value = "200";} // Радиус сопрягающей кривой
: edit_box {label = "Вставка + a, [м]:"; key = "d"; edit_width=10; value = "0";} // Вставка
}
: spacer{height=1;}
: boxed_column {label = "Дополнительные элементы";
: toggle {label = "Светофор"; key = "svet";}
: edit_box {label = "Растояние от предельного столбика, [м]:"; key = "L_svet"; edit_width=10; value = "50";} // Расстояние от стобика до светофора
}
ok_cancel;
}
platform_high: dialog {label = "Платформа высокая";
: spacer{height=1;}
: edit_box {label = "Длина платформы, [м]:"; key = "dl"; edit_width=10; value = "400";}
: boxed_column { label = "Параметры прохода";
: popup_list{label="Тип:"; key="type_p"; list="Мост" "\nТоннель"; edit_width=15;}
: edit_box {label = "Ширина, [м]:"; key = "Bsh"; edit_width=10; value = "2.25";}
: toggle {label = "Вход с торца"; key = "border";}
}
: radio_row { label = "Чертить"; key = "dir";
: radio_button {label = "Вверх"; key = "up"; value = "1";}
: radio_button {label = "Вниз"; key = "down";}
}
: spacer{height=1;}
: toggle {label = "Ось пассажирского здания"; key = "OY";}
ok_cancel; }
platform_low: dialog {label = "Платформа низкая";
: spacer{height=1;}
: edit_box {label = "Длина платформы, [м]:"; key = "dl"; edit_width=10; value = "400";}
: boxed_column { label = "Параметры прохода";
: popup_list{label="Тип:"; key="type_p"; list="Мост" "\nНастил" "\nТоннель"; edit_width=15;}
: edit_box {label = "Ширина, [м]:"; key = "Bsh"; edit_width=10; value = "2.25";}
: toggle {label = "Вход с торца"; key = "border";}
}
: radio_row { label = "Чертить"; key = "dir";
: radio_button {label = "Вверх"; key = "up"; value = "1";}
: radio_button {label = "Вниз"; key = "down";}
}
: spacer{height=1;}
: toggle {label = "Ось пассажирского здания"; key = "OY";}
ok_cancel;
}
coord: dialog {label = "Координаты элементов";
: edit_box {label = "Нумерация с:"; key = "numb"; edit_width=5; value = "";}
ok_cancel;
}











