Приложение "АВТОГРАФ" для автоматизации процесса формирования графического раздела архитектурно-строительной части проекта, страница 20

(defun C:ОСИЗ (/ lnpo to slto skol sprol dko rkro us i opro dlzd shzd

sskol ssprol)

; : Длина здания                   :dlzd

; : Ширина здания                  :shzd

; : Текущий угол в градусах        :ug

; : Счетчик цикла                  :i

; Сохранение значений системных переменных

(setq ce (getvar "CMDECHO"))

(setq bm (getvar "BLIPMODE"))

(setvar "CMDECHO" 0)

(setvar "BLIPMODE" 0)

;---------------*ТЕЛО ПРОГРАММЫ*---------------------------------(defun dtr(a)

(* PI (/ a 180.0))

)

(command "слой" "С" "$OSI" "Т" "center" "$OSI" "Ц" "4" "$OSI"

"С" "$OSIZ" "Т" "continuous" "$OSIZ" "Ц" "3" "$OSIZ" "" "РЕГЕН")

(command "СТИЛЬ" "gost" "gost" "5" "1.0" "0" "н" "н" "н")

(command "размер" "рзмтнрл" "вкл" "рзмвлзас" "2" "рзмтекст" "5"

"рзмрлмв" "вкл" "ВЫХ")

(setq USERI1 0 USERI2 0)

(menucmd "S=X") (menucmd "S=PVM")

(setvar "USERR5" (setq us(getint"\nМасштаб 50/200/100:")))

;      (if (null us) (setq us 100))

(menucmd "S=X") (menucmd "S=OSETIN")

(setq lnpo(getpoint"\nЛевое нижнее пересечение осей:"))

(setq to lnpo skol 0)

(setq dko(getreal"\nДиаметр кружка обозначения оси 8/12/<10>:"))

(if (null dko) (setq dko 10))

(setq rkro(getreal"\nРасстояние до кружков осей <30>:"))

(if (null rkro) (setq rkro 30))

(setq i 1 ug(dtr 270) dlzd 0 stop 0)

(while (= stop 0)

(progn

(setq opro(getint(strcat"\nОбозначение оси<" (itoa i) ">:")))

(if (null opro) (setq opro(itoa i)))

(setq cko(polar to ug (+ rkro (/ dko 2))))

(setq tkpro(polar to ug rkro))

; Рисует ось

(command "ОТРЕЗОК" to tkpro "")

; Рисует кружок

(if (= (getvar "USERI2") 0) (command "КРУГ" cko "Д" dko )

(progn

(command "КРУГ" cko "Д" dko )

(command "КРУГ" cko "Д" (- dko 2))

))

; Рисует текст

(command "ТЕКСТ" "С" cko "0" opro)

(setq skol(getint"\nРасстояние до следующей оси,мм:"))

(if (null skol) (setq stop 1 skol 0))

(setq sskol(cons (/ skol us) sskol))

(setq slto(polar to 0 (/ skol us)) trl(polar to (dtr 270) (/ rkro 2)))

(if (and (= (getvar "USERI1") 0) (= stop 0))

(progn

(command "слой" "С" "$RAZM" "")

(command "размер" "гор" to slto trl skol "ВЫХ")

(command "слой" "С" "$OSIZ" "")

))

(setq i(1+ i))

(setq to slto dlzd(+ dlzd (/ skol us)))

)

)

(setq  ug(dtr 180) to lnpo shzd 0 sprol 0 stop 0)

(while (= stop 0)

(progn

(setq opro(getstring"\nОбозначение продольной оси:"))

(setq cko(polar to ug (+ rkro (/ dko 2))))

(setq tkpro(polar to ug rkro))

; Рисует ось

(command "ОТРЕЗОК" to tkpro "")

; Рисует кружок

(command "КРУГ" cko "Д" dko )

(if (= (getvar "USERI2") 1) (command "КРУГ" cko "Д" (- dko 2)))

; Рисует текст

(command "ТЕКСТ" "С" cko "0" opro)

(setq sprol(getint"\nРасстояние до следующей оси,мм:"))

(if (null sprol) (setq stop 1 sprol 0))

(setq ssprol(cons (/ sprol us) ssprol))

(setq slto(polar to (dtr 90) (/ sprol us)) trl(polar to ug (/ rkro 2)))

(if (and (= (getvar "USERI1") 0) (= stop 0))

(progn

(command "слой" "С" "$RAZM" "")

(command "размер" "вер" to slto trl sprol "ВЫХ")

(command "слой" "С" "$OSIZ" "")

))