Пояснительная записка (1230110), страница 9
Текст из файла (страница 9)
;------------------------ Диалоговое окно ----------------
(setq dcl_id (load_dialog "dialogs.dcl"))
(if (not (new_dialog "platform_low" dcl_id))(exit))
(action_tile "accept" "(raz_platform) (done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(setq ddi (start_dialog))
(unload_dialog dcl_id)
(if (= ddi 1) (platform_low border type_p Bsh dl dir OY))
(princ)
)
)
)
(DEFUN c:coord_grid ( / tsz osm len k_table k_rect1 k_rect2 k_t1 k_t2 k_t3 k_t4 k_t5 k_t6 k_t44 k_t66)
(setq len (getint "\n Укажите полную длину станции")
k_table (getpoint "\n Укажите расстояние от оси OX \n")
y (cadr k_table)
k_table (list 0.0 y 0.0)
)
(setq k_rect1 (polar k_table pi (+ (/ len 2) 40))
k_rect1 (polar k_rect1 (/ pi 2) 45)
k_rect2 (polar k_table 0 (/ len 2))
k_t1 (polar k_rect1 (* 3 (/ pi 2)) 15)
k_t2 (polar k_rect1 (* 3 (/ pi 2)) 30)
k_t3 (polar k_rect1 0 30)
k_t4 (polar k_t3 (* 3 (/ pi 2)) 15)
k_t5 (polar k_t3 (* 3 (/ pi 2)) 30)
k_t6 (polar k_t3 (* 3 (/ pi 2)) 45)
k_t44 (polar k_rect2 (/ pi 2) 30)
k_t55 (polar k_rect2 (/ pi 2) 15)
)
(setq tsz (getvar "textsize"))
(setq osm (getvar "osmode"))
(setvar "textsize" 3)
(setvar "osmode" 0)
(command "_rectang" k_rect1 k_rect2 "")
(command "_line" k_t3 k_t6 "")
(command "_line" k_t1 k_t44 "")
(command "_line" k_t2 k_t55 "")
(command "_mtext" k_rect1 "_j" "_mc" k_t4 "X" "")
(command "_mtext" k_t1 "_j" "_mc" k_t5 "Y" "")
(command "_mtext" k_t2 "_j" "_mc" k_t6 "Название\nточки" "")
(setvar "textsize" tsz)
(setvar "osmode" osm)
)
(DEFUN c:mp_coord_center_turnout (/ tsz osm clt numb k_m0 x_m0 y_m0 k_txt1 k_txt2 k_txt3 name k_ln dcl_id ddi)
(if (not (tblsearch "ltype" "ACAD_ISO02W100")) (alert "Загрузите штриховую линию ACAD_ISO02W100")
(progn
;функция получения значений
(DEFUN count ()
(setq numb (atoi (get_tile "numb")))
)
;фунция прорисовки
(DEFUN coord_center_turnout()
(setq tsz (getvar "textsize"))
(setq osm (getvar "osmode"))
(setq clt (getvar "CELTYPE"))
(while (< numb 999)
(setq k_m0 (getpoint "\n Укажите центр стрелочного перевода \n")
x_m0 (car k_m0)
y_m0 (cadr k_m0)
k_txt1 (list (+ x_m0 1) (+ y 31) 0.0)
k_txt2 (list (+ x_m0 1) (+ y 16) 0.0)
k_txt3 (list (+ x_m0 1) (+ y 4) 0.0)
x_m0 (rtos x_m0)
y_m0 (rtos y_m0)
numb (itoa numb)
name (strcat "ЦСП" numb)
numb (atoi numb)
numb (+ numb 2)
)
(if (= numb 2) (setq name "ЦСП"))
(setvar "textsize" 3)
(setvar "osmode" 0)
(setvar "CELTYPE" "ACAD_ISO02W100")
; вписываем координаты и название в таблицу
(command "_text" k_txt1 "2" "90" x_m0 "")
(command "_text" k_txt2 "2" "90" y_m0 "")
(command "_text" k_txt3 "2" "90" name "")
;чертим пунтирную линию
(setq x_m0 (atof x_m0)
k_ln (list x_m0 y 0.0)
)
(command "_line" k_m0 k_ln "")
(setvar "textsize" tsz)
(setvar "osmode" osm)
(setvar "CELTYPE" clt)
) ;end while
)
;диалоговое окно
(setq dcl_id (load_dialog "dialogs.dcl"))
(if (not (new_dialog "coord" dcl_id))(exit))
(action_tile "accept" "(count) (done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(setq ddi (start_dialog))
(unload_dialog dcl_id)
(if (= ddi 1) (coord_center_turnout))
(princ)
)
)
)
(DEFUN c:mp_coord_lim_bar (/ tsz osm clt numb k_m0 x_m0 y_m0 k_txt1 k_txt2 k_txt3 name k_ln dcl_id ddi)
(if (not (tblsearch "ltype" "ACAD_ISO02W100")) (alert "Загрузите штриховую линию ACAD_ISO02W100")
(progn
;функция получения значений
(DEFUN count ()
(setq numb (atoi (get_tile "numb")))
)
;фунция прорисовки
(DEFUN coord_lim_bar()
(setq tsz (getvar "textsize"))
(setq osm (getvar "osmode"))
(setq clt (getvar "CELTYPE"))
(while (< numb 999)
(setq k_m0 (getpoint "\n Укажите столбик \n")
x_m0 (car k_m0)
y_m0 (cadr k_m0)
k_txt1 (list (+ x_m0 1) (+ y 31) 0.0)
k_txt2 (list (+ x_m0 1) (+ y 16) 0.0)
k_txt3 (list (+ x_m0 1) (+ y 4) 0.0)
x_m0 (rtos x_m0)
y_m0 (rtos y_m0)
numb (itoa numb)
name (strcat "ПС" numb)
numb (atoi numb)
numb (+ numb 2)
)
(if (= numb 2) (setq name "ПС"))
(setvar "textsize" 3)
(setvar "osmode" 0)
(setvar "CELTYPE" "ACAD_ISO02W100")
; вписываем координаты и название в таблицу
(command "_text" k_txt1 "2" "90" x_m0 "")
(command "_text" k_txt2 "2" "90" y_m0 "")
(command "_text" k_txt3 "2" "90" name "")
;чертим пунтирную линию
(setq x_m0 (atof x_m0)
k_ln (list x_m0 y 0.0)
)
(command "_line" k_m0 k_ln "")
(setvar "textsize" tsz)
(setvar "osmode" osm)
(setvar "CELTYPE" clt)
) ;end while
)
;диалоговое окно
(setq dcl_id (load_dialog "dialogs.dcl"))
(if (not (new_dialog "coord" dcl_id))(exit))
(action_tile "accept" "(count) (done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(setq ddi (start_dialog))
(unload_dialog dcl_id)
(if (= ddi 1) (coord_lim_bar))
(princ)
)
)
)
(DEFUN c:mp_coord_angular_point (/ tsz osm clt numb k_m0 x_m0 y_m0 k_txt1 k_txt2 k_txt3 name k_ln dcl_id ddi)
(if (not (tblsearch "ltype" "ACAD_ISO02W100")) (alert "Загрузите штриховую линию ACAD_ISO02W100")
(progn
;функция получения значений
(DEFUN count ()
(setq numb (atoi (get_tile "numb")))
)
;фунция прорисовки
(DEFUN coord_angular_point()
(setq tsz (getvar "textsize"))
(setq osm (getvar "osmode"))
(setq clt (getvar "CELTYPE"))
(while (< numb 999)
(setq k_m0 (getpoint "\n Укажите вершину угла \n")
x_m0 (car k_m0)
y_m0 (cadr k_m0)
k_txt1 (list (+ x_m0 1) (+ y 31) 0.0)
k_txt2 (list (+ x_m0 1) (+ y 16) 0.0)
k_txt3 (list (+ x_m0 1) (+ y 4) 0.0)
x_m0 (rtos x_m0)
y_m0 (rtos y_m0)
numb (itoa numb)
name (strcat "ВУ" numb)
numb (atoi numb)
numb (+ numb 2)
)
(if (= numb 2) (setq name "ВУ"))
(setvar "textsize" 3)
(setvar "osmode" 0)
(setvar "CELTYPE" "ACAD_ISO02W100")
; вписываем координаты и название в таблицу
(command "_text" k_txt1 "2" "90" x_m0 "")
(command "_text" k_txt2 "2" "90" y_m0 "")
(command "_text" k_txt3 "2" "90" name "")
;чертим пунтирную линию
(setq x_m0 (atof x_m0)
k_ln (list x_m0 y 0.0)
)
(command "_line" k_m0 k_ln "")
(setvar "textsize" tsz)
(setvar "osmode" osm)
(setvar "CELTYPE" clt)
) ;end while
)
;диалоговое окно
(setq dcl_id (load_dialog "dialogs.dcl"))
(if (not (new_dialog "coord" dcl_id))(exit))
(action_tile "accept" "(count) (done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(setq ddi (start_dialog))
(unload_dialog dcl_id)
(if (= ddi 1) (coord_angular_point))
(princ)
)
)
)
(DEFUN c:mp_coord_input_light (/ tsz osm clt k_m0 x_m0 y_m0 k_txt1 k_txt2 k_txt3 name k_ln)
(if (not (tblsearch "ltype" "ACAD_ISO02W100")) (alert "Загрузите штриховую линию ACAD_ISO02W100")
(progn
;функция получения значений
(DEFUN count ()
(setq numb (atoi (get_tile "numb")))
)
;фунция прорисовки
(DEFUN coord_input_light()
(setq tsz (getvar "textsize"))
(setq osm (getvar "osmode"))
(setq clt (getvar "CELTYPE"))
(while (< numb 999)
(setq k_m0 (getpoint "\n Укажите входной светофор \n")
x_m0 (car k_m0)
y_m0 (cadr k_m0)
k_txt1 (list (+ x_m0 1) (+ y 31) 0.0)
k_txt2 (list (+ x_m0 1) (+ y 16) 0.0)
k_txt3 (list (+ x_m0 1) (+ y 4) 0.0)
x_m0 (rtos x_m0)
y_m0 (rtos y_m0)
numb (itoa numb)
name (strcat "Н" numb)
numb (atoi numb)
numb (+ numb 2)
)
(if (= numb 2) (setq name "Н"))
(setvar "textsize" 3)
(setvar "osmode" 0)
(setvar "CELTYPE" "ACAD_ISO02W100")
; вписываем координаты и название в таблицу
(command "_text" k_txt1 "2" "90" x_m0 "")
(command "_text" k_txt2 "2" "90" y_m0 "")
(command "_text" k_txt3 "2" "90" name "")
;чертим пунтирную линию
(setq x_m0 (atof x_m0)
k_ln (list x_m0 y 0.0)
)
(command "_line" k_m0 k_ln "")
(setvar "textsize" tsz)
(setvar "osmode" osm)
(setvar "CELTYPE" clt)
) ;end while
)
;диалоговое окно
(setq dcl_id (load_dialog "dialogs.dcl"))
(if (not (new_dialog "coord" dcl_id))(exit))
(action_tile "accept" "(count) (done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(setq ddi (start_dialog))
(unload_dialog dcl_id)
(if (= ddi 1) (coord_input_light))
(princ)
)
)
)
(DEFUN c:mp_coord_input_light_even (/ tsz osm clt k_m0 x_m0 y_m0 k_txt1 k_txt2 k_txt3 name k_ln)
(if (not (tblsearch "ltype" "ACAD_ISO02W100")) (alert "Загрузите штриховую линию ACAD_ISO02W100")
(progn
;функция получения значений
(DEFUN count ()
(setq numb (atoi (get_tile "numb")))
)
;фунция прорисовки
(DEFUN coord_input_light_even()
(setq tsz (getvar "textsize"))
(setq osm (getvar "osmode"))
(setq clt (getvar "CELTYPE"))
(while (< numb 999)
(setq k_m0 (getpoint "\n Укажите входной светофор \n")
x_m0 (car k_m0)
y_m0 (cadr k_m0)
k_txt1 (list (+ x_m0 1) (+ y 31) 0.0)
k_txt2 (list (+ x_m0 1) (+ y 16) 0.0)
k_txt3 (list (+ x_m0 1) (+ y 4) 0.0)
x_m0 (rtos x_m0)
y_m0 (rtos y_m0)
numb (itoa numb)
name (strcat "Ч" numb)
numb (atoi numb)
numb (+ numb 2)
)
(if (= numb 2) (setq name "Ч"))
(setvar "textsize" 3)
(setvar "osmode" 0)
(setvar "CELTYPE" "ACAD_ISO02W100")
; вписываем координаты и название в таблицу
(command "_text" k_txt1 "2" "90" x_m0 "")
(command "_text" k_txt2 "2" "90" y_m0 "")
(command "_text" k_txt3 "2" "90" name "")
;чертим пунтирную линию
(setq x_m0 (atof x_m0)
k_ln (list x_m0 y 0.0)
)
(command "_line" k_m0 k_ln "")
(setvar "textsize" tsz)
(setvar "osmode" osm)
(setvar "CELTYPE" clt)
) ;end while
)
;диалоговое окно











