ПЗ (1218806), страница 13

Файл №1218806 ПЗ (Автоматизация проектирования элементов железнодорожных станций) 13 страницаПЗ (1218806) страница 132020-10-05СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 13)

(action_tile "accept" "(num_CSP_opr) (done_dialog 1)")

(action_tile "cancel" "(done_dialog 0)")

(setq ddi (start_dialog))

(unload_dialog dcl_id)

(if (= ddi 1)

(num_CSP getTypeNum)

)

(princ)

)

;-----------------------------------------------------------

;------------------- панель настроек-------------------------

(defun made (getWidthMainPut getWidthStancPut getWidthStr

getWidthSmezhStr getMaxNum getSizeSymbols / )

(alert "Параметры изменены!")

)

(defun getParam()

(setq getWidthMainPut (atof (get_tile "mainPUT")))

(setq getWidthStancPut (atof (get_tile "stancPUT")))

(setq getWidthStr (atof (get_tile "str_easy")))

(setq getWidthSmezhStr (atof (get_tile "smezh_str")))

(setq getMaxNum (atoi (get_tile "maxnum")))

(setq getSizeSymbols (get_tile "sizeS"))

)

(defun c:dialog_settings (/ dcl_id)

(setq dcl_id

(load_dialog

"C:/Users/Игорь/Desktop/diplom/group/Dialogs/settings.dcl"

)

)

(if (null (new_dialog "fix" dcl_id))

(exit)

)

(action_tile "accept" "(getParam) (done_dialog 1)")

(action_tile "cancel" "(done_dialog 0)")

(setq ddi (start_dialog))

(unload_dialog dcl_id)

(if (= ddi 1)

(made getWidthMainPut getWidthStancPut getWidthStr getWidthSmezhStr getMaxNum getSizeSymbols

)

)

(princ)

)

;--------------------------------------------------------

;---------------- ПАРАЛЛЕЛЬНОЕ СОЕДИНЕНИЕ -----------------

(DEFUN soed (R e mark type_r stolb / m a0 b0 q b1 k_m k_a0 k_x k_t k_b1 k_d k_d2 osm s1 s2 tan X TG K f Lp l1 l2 dist_sv1 sv0

sv1 sv2 sv3 sv4 svc1 svc2 svc3 sv00 sv01 sv02 sv03 svc01 svc02 svc03 sv000 sv001 sv002 sv003 sv004 svc001 svc002 svc003 k_rad st1 st2 st3 P ctan Lpr circ dist_tg tg01 tg02 tg03 tg04 tg05 tg06 k_rady rad rad_txt)

(if (and (= mark "1") (= type_r "1")) ; стрелочный перевод 11-65

(progn

(setq alpha 0.09066015836748323)

(setq m 2.769)

(setq a0 11.294)

(setq b0 16.754)

(setq q 2.550)

(setq b 19.304)

); end progn

) ;end if

(if (and (= mark "1") (= type_r "0")) ; стрелочный перевод 11-50

(progn

(setq alpha 0.09066015836748323)

(setq m 4.327)

(setq a0 10.148)

(setq b0 16.754)

(setq q 2.300)

(setq b 19.054)

); end progn

);end if

(if (and (= mark "0") (= type_r "1")) ; стрелочный перевод 9-65

(progn

(setq alpha 0.11065872271325158)

(setq m 2.769)

(setq a0 12.458)

(setq b0 13.722)

(setq q 2.090)

(setq b 15.812)

); end progn

);end if

(if (and (= mark "0") (= type_r "0")) ; стрелочный перевод 9-50

(progn

(setq alpha 0.11065872271325158)

(setq m 4.327)

(setq a0 11.132)

(setq b0 13.722)

(setq q 1.880)

(setq b 15.602)

); end progn

) ;end if

(setq tan (/ (sin alpha) (cos alpha))) ; расчет соединения

(setq X (/ e tan))

(setq TG (* R (/ (sin (/ alpha 2)) (cos (/ alpha 2)))))

(setq K (* R alpha))

(setq f (- (/ e (sin alpha)) b TG))

(setq Lp (+ X TG a0))

(setq ang (getangle "Укажите угол"))

(setq k_m0 (getpoint "\n Укажите точку начала перевода:"))

(setq k_m (polar k_m0 ang m)); устанавливаем координаты точи m

(setq k_a0 (polar k_m ang a0)); устанавливаем координаты точи a0

(setq k_x (polar k_a0 ang X)); устанавливаем координаты точи

(setq k_t (polar k_x ang TG));

(setq k_b1 (polar k_a0 (+ ang alpha) (/ e (sin alpha))))

; устанавливаем координаты точи b1

(setq k_d2 (polar k_a0 (+ ang alpha) (- (/ e (sin alpha)) TG)))

;первый тангенс

(setq k_d (polar k_b1 ang TG)) ;второй тангенс

;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;расстановка тангенсов

(setq tg01 (polar k_d2 (+ (/ pi 2) ang alpha) 0.5))

(setq tg02 (polar tg01 (+ pi ang alpha) 1.5))

(setq tg03 (polar tg01 (+ (* pi 2) ang alpha) 1.5))

(setq tg04 (polar k_d (+ (/ pi 2) ang) 0.5))

(setq tg05 (polar tg04 (+ pi ang) 1.5))

(setq tg06 (polar tg04 (+ (* pi 2) ang) 1.5))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(setq dist_tg (/ (distance tg01 tg04) 2))

(setq k_rad (polar tg01 (/ pi 2) 2)) ; позиция x надписи

(setq k_rady (polar k_rad ang (- dist_tg 4)))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(setq osm (getvar "osmode")); запоминаем привязки пользователя

(setq s1 (polar k_a0 (+ (/ pi 2) ang) 2)); координаты точек штриха в центре перевода

(setq s2 (polar k_a0 (- (/ (* 3 pi) 2) (- ang)) 2))

(setq rad_txt (strcat "R" (itoa R)))

(setvar "osmode" 1); отключаем привязки

(setvar "PLINEWID" getWidthStr) ; устанавливаем толщину линий

(command "_.pline" k_m0 k_m k_a0 k_x k_t "") ;отрисовываем отрезки

(command "_.pline" k_a0 k_b1 "")

(setq l1 (entlast))

(command "_.pline" k_b1 k_d "")

(setq l2 (entlast))

(command "_.pline" s1 s2 "")

(setq rad R)

(command "_fillet" "_r" rad "_fillet" k_d2 k_d "")

(command "_text" k_rady getSizeSymbols (angtos ang) rad_txt "")

(setvar "osmode" 0)

;;огр. столбики ;;;;

(if (= stolb 1)

(progn

(setq P (/ e 2))

(setq ctan (/ (cos (/ alpha 2)) (sin (/ alpha 2))))

(setq Lpr (* P ctan)) ; расположение столбика по оси X

(setq st1 (polar k_a0 ang Lpr))

(setq st2 (polar st1 (+ (/ pi 2) ang) P))

(setq st3 (polar st2 (+ (/ pi 2) alpha ang) P))

(command "_.circle" st2 0.2)

(setq circ (entlast))

(command "_.hatch" "solid" circ "")

)

) ; end if

;;;;;;;;;;;;;;;;;;;

;;тип тяги ;;

(if (= taga 0)

(progn

(setq dist_sv1 50)

)

(progn

(setq dist_sv1 300)

)

)

;;;;;;;;;;;;;;;;;;;

;;;светофор перед центром перевода

(if (= svet_before 1)

(progn

(setq sv0 (polar k_m (/ (* 3 pi) 2) (/ e 2)))

(setq sv1 (polar sv0 (+ pi ang) dist_sv1))

(setq sv2 (polar sv1 (+ (/ (* 3 pi) 2) ang) 1))

(setq sv3 (polar sv1 (+ (/ pi 2) ang) 1))

(setq sv4 (polar sv1 ang 5.0))

(setq svc1 (polar sv4 ang 1.0)) ; окр1

(setq svc2 (polar svc1 ang 2.0)) ; окр2

(setq svc3 (polar svc2 ang 2.0)) ; окр3

(command "_.line" sv1 sv2 "")

(command "_.line" sv1 sv3 "")

(command "_.line" sv1 sv4 "")

(command "_.circle" svc1 1.0)

(command "_.circle" svc2 1.0)

(command "_.circle" svc3 1.0)

)

); end if

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; --------светофор внутри перевода

(if (= svet_inside 1)

(progn

(setq sv00 (polar st2 ang dist_sv1))

(setq sv01 (polar sv00 (+ (/ pi 2) ang) 1.0))

(setq sv02 (polar sv00 (+ (/ (* 3 pi) 2) ang) 1.0))

(setq sv03 (polar sv00 (+ pi ang) 5.0))

(setq svc01 (polar sv03 (+ pi ang) 1.0)) ; окр1

(setq svc02 (polar svc01 (+ pi ang) 2.0)) ; окр2

(setq svc03 (polar svc02 (+ pi ang) 2.0)) ; окр3

(command "_.line" sv00 sv01 "")

(command "_.line" sv00 sv02 "")

(command "_.line" sv00 sv03 "")

(command "_.circle" svc01 1.0)

(command "_.circle" svc02 1.0)

(command "_.circle" svc03 1.0)

)

)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;----светофор снаружи ------

(if (= svet_outside 1)

(progn

(setq sv000 (polar st2 (+ (/ pi 2) ang) 10))

; высота светофора над столбом

(setq sv001 (polar sv000 (+ ang alpha) 3.5))

(setq sv002 (polar sv001 (+ (/ pi 2) ang alpha) 1.0))

(setq sv003 (polar sv001 (+ (/ (* 3 pi) 2) ang alpha) 1.0))

(setq sv004 (polar sv001 (+ pi ang alpha) 5.0))

(setq svc001 (polar sv004 (+ pi ang alpha) 1.0))

(setq svc002 (polar svc001 (+ pi ang alpha) 2.0))

(setq svc003 (polar svc002 (+ pi ang alpha) 2.0))

(command "_.line" sv001 sv002 "")

(command "_.line" sv001 sv003 "")

(command "_.line" sv001 sv004 "")

(command "_.circle" svc001 1.0)

(command "_.circle" svc002 1.0)

(command "_.circle" svc003 1.0)

)

)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(command "_.line" k_d2 tg01 "")

(command "_.line" tg01 tg02 "")

(command "_.line" tg01 tg03 "")

(command "_.line" k_d tg04 "")

(command "_.line" tg04 tg05 "")

(command "_.line" tg04 tg06 "")

(setvar "osmode" 7)

); end defun soed()

(defun raz_soed ()

(setq e (atof (get_tile "e")))

(setq R (atoi (get_tile "R")))

(setq type_r (get_tile "type_r"))

(setq mark (get_tile "mark"))

(setq stolb (atoi (get_tile "stolb_checkbox")))

(setq taga (atoi (get_tile "tyaga")))

(setq svet_before (atoi (get_tile "svet_beforecent_checkbox")))

(setq svet_inside (atoi (get_tile "svet_inside_checkbox")))

(setq svet_outside (atoi (get_tile "svet_outside_checkbox")))

)

;--------------------диалоговое окно----------------------

(DEFUN c:paral_s (/ dcl_id R e mark type_r stolb)

(setq dcl_id

(load_dialog

"C:/Users/Игорь/Desktop/diplom/group/Dialogs/soed_nesok_odin.dcl"

)

) ; загружаем диалог (файл DCL)

(if (null (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 R e mark type_r stolb)

)

(princ)

); end defun paral_s()

;----------------------------------------------------------------

;---------------Нумерация путей (арабские цифры)------------

(defun num_paths (getNumbers / v1 v2 v3 v4 v5 osm k o m)

(if (= getNumbers 0);--четные

(progn

(setq k 2)

(while (<= k getMaxNum)

(setq osm (getvar "osmode"))

(setvar "osmode" 0)

(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) k "")

(setq k (+ k 2))

(if (> k getMaxNum)

(alert "Нумерация завершена")

)

)

)

)

(if (= getNumbers 1);---нечетные

(progn

(setq m 1)

(while (<= m getMaxNum)

(setq osm (getvar "osmode"))

(setvar "osmode" 0)

(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) m "")

(setq m (+ m 2))

(if (> m getMaxNum)

(alert "Нумерация завершена")

)

)

)

)

(if (= getNumbers 2);---нечетные

(progn

(setq o 1)

(while (<= o getMaxNum)

(setq osm (getvar "osmode"))

(setvar "osmode" 0)

Характеристики

Тип файла
Документ
Размер
4,42 Mb
Высшее учебное заведение

Список файлов ВКР

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6540
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее