Пояснительная записка (1230110), страница 10
Текст из файла (страница 10)
(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_even))
(princ)
)
)
)
(DEFUN c:mp_coord_deadlock (/ 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
(setq tsz (getvar "textsize"))
(setq osm (getvar "osmode"))
(setvar "textsize" 3)
(setq clt (getvar "CELTYPE"))
(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)
name "Упор"
)
(setvar "osmode" 0)
; вписываем координаты и название в таблицу
(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)
)
(setvar "CELTYPE" "ACAD_ISO02W100")
(command "_line" k_m0 k_ln "")
(setvar "CELTYPE" clt)
(setvar "textsize" tsz)
(setvar "osmode" osm)
)
)
)
(DEFUN c:border_station ( / osm k_m0 k_m1 k_m2 k_m3 k_rect1 k_rect2)
(setq k_m0 (getpoint "\n Укажите точку \n")
k_m1 (polar k_m0 (/ pi 2) 2)
k_m2 (polar k_m0 (- (/ pi 2)) 2)
k_m3 (polar k_m0 pi 2)
k_rect1 (polar k_m3 (/ pi 2) 2)
k_rect2 (polar k_rect1 (* 5 (/ pi 4)) 5.656)
)
(setq osm (getvar "osmode"))
(setvar "osmode" 0)
(command "_line" k_m1 k_m2 "")
(command "_line" k_m0 k_m3 "")
(command "_rectang" k_rect1 k_rect2 "")
(setvar "osmode" osm)
(princ)
)
(DEFUN c:border_station_even ( / osm k_m0 k_m1 k_m2 k_m3 k_rect1 k_rect2)
(setq k_m0 (getpoint "\n Укажите точку \n")
k_m1 (polar k_m0 (/ pi 2) 2)
k_m2 (polar k_m0 (- (/ pi 2)) 2)
k_m3 (polar k_m0 0 2)
k_rect1 (polar k_m3 (/ pi 2) 2)
k_rect2 (polar k_rect1 (* 7 (/ pi 4)) 5.656)
)
(setq osm (getvar "osmode"))
(setvar "osmode" 0)
(command "_line" k_m1 k_m2 "")
(command "_line" k_m0 k_m3 "")
(command "_rectang" k_rect1 k_rect2 "")
(setvar "osmode" osm)
(princ)
)
(DEFUN c:stolbik( / k_m0 kr)
(setq k_m0 (getpoint "\n Укажите точку:"))
(command "_circle" k_m0 0.5)
(setq kr (entlast))
(command "_.hatch" "_s" kr "")
)
(DEFUN c:svetofor ( / osm k_m0 k_m1 k_m2 k_m3 k_m4 k_n1 k_n2 beta )
(setq beta (getangle "\n Задайте угол:"))
(setq k_m0 (getpoint "\n Укажите точку:"))
(setq k_m1 (polar k_m0 (+ pi beta) 5))
(setq k_m2 (polar k_m1 (+ pi beta) 0.5))
(setq k_m3 (polar k_m2 (+ pi beta) 1))
(setq k_m4 (polar k_m3 (+ pi beta) 1))
(setq k_n1 (polar k_m0 (+ (/ pi 2) beta) 0.5))
(setq k_n2 (polar k_n1 (+ (- (/ pi 2)) beta) 1))
(setq osm (getvar "osmode"))
(setvar "osmode" 0)
(setvar "PLINEWID" 0.05)
(command "_.pline" k_m1 k_m0 k_n1 k_n2 "")
(command "_.circle" k_m2 0.5)
(command "_.circle" k_m3 0.5)
(command "_.circle" k_m4 0.5)
(setvar "osmode" osm)
)
(DEFUN c:upor ( / osm k_m0 k_n1 k_n2 k_n3 k_n4 beta)
(setq beta (getangle "\n Задайте угол:"))
(setq k_m0 (getpoint "\n Укажите точку:"))
(setq k_n2 (polar k_m0 (+ (/ pi 2) beta) 1.5))
(setq k_n1 (polar k_n2 (+ 0 beta) 1))
(setq k_n3 (polar k_n2 (+ (- (/ pi 2)) beta) 3))
(setq k_n4 (polar k_n3 (+ 0 beta) 1))
(setq osm (getvar "osmode"))
(setvar "osmode" 0)
(setvar "PLINEWID" 0.3)
(command "_.pline" k_n1 k_n2 k_n3 k_n4 "")
(setvar "osmode" osm) ; возвращает привязки пользователя
)
(DEFUN c:center_turnout ( / osm k_m0 k_s1 k_s2 beta)
(setq beta (getangle "\n Задайте угол:"))
(setq k_m0 (getpoint "\n Укажите точку:"))
(setq k_s1 (polar k_m0 (+ (/ pi 2) beta) 2)
k_s2 (polar k_m0 (+ (- (/ pi 2)) beta) 2)
)
(setq osm (getvar "osmode"))
(setvar "osmode" 0)
(setvar "PLINEWID" 0.3)
(command "_.pline" k_s1 k_s2 "")
(setvar "osmode" osm) ; возвращает привязки пользователя
)
(DEFUN c:glav_put ()
(setvar "PLINEWID" 0.5)
(command "_.pline")
)
(DEFUN c:stanc_put ()
(setvar "PLINEWID" 0.3)
(command "_.pline")
)
(DEFUN c:direction ( / osm beta k_m0 k_m1 k_m2 k_m3 k_m4)
(setq osm (getvar "osmode"))
(setq beta (getangle "\n Задайте угол:"))
(setq k_m0 (getpoint "\n Укажите точку:")
k_m1 (polar k_m0 (+ beta 2.795) 4)
k_m2 (polar k_m0 (+ beta -2.795) 4)
k_m3 (polar k_m0 (+ beta 2.9) 2)
k_m4 (polar k_m0 (+ beta -2.9) 2)
)
(setvar "osmode" 0)
(setvar "hpname" "solid")
(command "_.line" k_m0 k_m1 k_m2 "_c")
(command "_.bhatch" k_m3 k_m4 "")
(setvar "osmode" osm) ; возвращает привязки пользователя
)
(DEFUN c:direction_double ( / osm beta k_m0 k_m1 k_m2 k_m3 k_m4)
(setq osm (getvar "osmode"))
(setq beta (getangle "\n Задайте угол:"))
(setq k_m0 (getpoint "\n Укажите точку:")
k_m1 (polar k_m0 (+ beta 2.795) 4)
k_m2 (polar k_m0 (+ beta -2.795) 4)
k_m3 (polar k_m0 (+ beta 2.9) 2)
k_m4 (polar k_m0 (+ beta -2.9) 2)
)
(setvar "osmode" 0)
(setvar "hpname" "solid")
(command "_.line" k_m0 k_m1 k_m2 "_c")
(command "_.bhatch" k_m3 k_m4 "")
(setq k_m0 (polar k_m0 (+ beta pi) 10)
k_m1 (polar k_m0 (+ beta 2.795) 4)
k_m2 (polar k_m0 (+ beta -2.795) 4)
k_m3 (polar k_m0 (+ beta 2.9) 2)
k_m4 (polar k_m0 (+ beta -2.9) 2)
)
(command "_.line" k_m0 k_m1 k_m2 "_c")
(command "_.bhatch" k_m3 k_m4 "")
(setvar "osmode" osm) ; возвращает привязки пользователя
)
(DEFUN c:direction_counter ( / osm beta k_m0 k_m1 k_m2 k_m3 k_m4)
(setq osm (getvar "osmode"))
(setq beta (getangle "\n Задайте угол:"))
(setvar "osmode" 0)
(setq k_m0 (getpoint "\n Укажите точку:")
k_m1 (polar k_m0 (+ beta 2.795) 4)
k_m2 (polar k_m0 (+ beta -2.795) 4)
k_m3 (polar k_m0 (+ beta 2.9) 2)
k_m4 (polar k_m0 (+ beta -2.9) 2)
)
(setvar "osmode" 0)
(setvar "hpname" "solid")
(command "_.line" k_m0 k_m1 k_m2 "_c")
(command "_.bhatch" k_m3 k_m4 "")
(setq k_m0 (polar k_m0 (+ 0 beta) 10)
k_m1 (polar k_m0 (+ beta 0.346) 4)
k_m2 (polar k_m0 (+ beta -0.346) 4)
k_m3 (polar k_m0 (+ beta 0.3) 3.5)
k_m4 (polar k_m0 (+ beta -0.3) 3.5)
)
(command "_.line" k_m0 k_m1 k_m2 "_c")
(command "_.bhatch" k_m3 k_m4 "")
(setvar "osmode" osm) ; возвращает привязки пользователя
)
(DEFUN mp_soed (mark type_r / dcl_id e R napr ugol d svet L_svet) ; начало функции mp_soed
;--------------------- финкция soed ----------------------------
(DEFUN soed (mark type_r e R napr ugol d svet L_svet / m a0 b0 q b1 k_m k_a0 k_x k_t k_b1 k_d osm s1 s2 tan X TG K f Lp sumangle
p ctan Lpr k_p0 k_p k_svet k_m1 k_m2 k_m3 k_m4 k_n1 k_n2 plw k_rad beta) ; начало функции soed
(setq osm (getvar "osmode"))
(if (and (= mark "1") (= type_r "1")) ; стрелочный перевод 11-65
(progn
(setq alpha 0.09066015836748323
m 0
a0 0
b0 16.754
q 2.550
b 19.304
)
)
)
(if (and (= mark "1") (= type_r "0")) ; стрелочный перевод 11-50
(progn
(setq alpha 0.09066015836748323
m 0
a0 0
b0 16.754
q 2.300
b 19.054
)
)
)
(if (and (= mark "0") (= type_r "1")) ; стрелочный перевод 9-65
(progn
(setq alpha 0.11065872271325158
m 0
a0 0
b0 13.722
q 2.090
b 15.812
)
)
)
(if (and (= mark "0") (= type_r "0")) ; стрелочный перевод 9-50
(progn
(setq alpha 0.11065872271325158
m 0
a0 0
b0 13.722
q 1.880
b 15.602
)
)
)
(setq beta (getangle "\n Задайте угол:")
nach 0
)
(if (= ugol "1")
(setq nach alpha)
)
(setq tan (/ (sin alpha) (cos alpha)) ; расчет соединения
X (/ e tan)
TG (* R (/ (sin (/ alpha 2)) (cos (/ alpha 2))))
K (* R alpha)
f (- (/ e (sin alpha)) b TG)
Lp (+ X TG a0)
rad (itoa R)
rad (strcat "R=" rad)
)
(setq k_m0 (getpoint "\n Укажите точку начала перевода:"))
(if (= napr "1") ; правосторонний
(progn
(setq sumangle (- beta alpha)
b1 (/ e (sin alpha))
k_m (polar k_m0 (- (+ 0 beta) nach) (+ m d) )
k_a0 (polar k_m (- (+ 0 beta) nach) a0)
k_x (polar k_a0 (+ 0 beta) X)
k_t (polar k_x (+ 0 beta) TG)
k_b1 (polar k_a0 sumangle b1 )
k_d (polar k_b1 (+ 0 beta) TG)
p (/ e 2)
ctan (/ (cos (/ alpha 2)) (sin (/ alpha 2)))
Lpr (* p ctan)
k_p0 (polar k_a0 (+ 0 beta) Lpr)
k_p (polar k_p0 (+ (-(/ pi 2)) beta) p)
)
)
)
(if (= napr "0") ; левосторонний
(progn
(setq sumangle (+ alpha beta)
b1 (/ e (sin alpha))
k_m (polar k_m0 (+ 0 beta nach) (+ m d) )
k_a0 (polar k_m (+ 0 beta nach) a0)
k_x (polar k_a0 (+ 0 beta) X)
k_t (polar k_x (+ 0 beta ) TG)
k_b1 (polar k_a0 sumangle b1 )
k_d (polar k_b1 (+ 0 beta) TG)
p (/ e 2)
ctan (/ (cos (/ alpha 2)) (sin (/ alpha 2)))
Lpr (* p ctan)
k_p0 (polar k_a0 (+ 0 beta) Lpr)
k_p (polar k_p0 (+ (/ pi 2) beta) p)
)
)
)
(if (= svet "1")
(progn
(setq k_svet (polar k_p (+ 0 beta) L_svet)
k_m1 (polar k_svet (+ pi beta) 5)
k_m2 (polar k_m1 (+ pi beta) 0.5)
k_m3 (polar k_m2 (+ pi beta) 1)
k_m4 (polar k_m3 (+ pi beta) 1)
k_n1 (polar k_svet (+ (/ pi 2) beta) 0.5)
k_n2 (polar k_n1 (+ (- (/ pi 2)) beta) 1)
)
(setq plw (getvar "PLINEWID"))
(setvar "PLINEWID" 0.05)
(command "_.pline" k_m1 k_svet k_n1 k_n2 "")
(command "_.circle" k_m2 0.5)
(command "_.circle" k_m3 0.5)
(command "_.circle" k_m4 0.5)
(setvar "PLINEWID" plw)
)
)
(setq s1 (polar k_a0 (+ (/ pi 2) beta) 2)
s2 (polar k_a0 (+ (-(/ pi 2)) beta) 2)
)
(setvar "osmode" 0)
(setvar "PLINEWID" 0.3)
(command "_pline" k_a0 k_b1"")
(command "_pline" k_b1 k_d"")
(command "_circle" k_p 0.5)
(setq kr (entlast))
(command "_hatch" "_s" kr "")
(setvar "FILLETRAD" R)
(command "_fillet" k_a0 k_d "")
(if (= napr "0")
(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 (+ beta 3.4907) 8)
)











