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

(setq dus nil tvs nil ug nil)

(setvar "BLIPMODE" 0)

(setvar "BLIPMODE" bm)

(setvar "CMDECHO" ce)

(princ)

);========================КОНЕЦ==================================

7.3.4 fasad.lsp

;=====================СТЕНОВОЕ ОГРАЖДЕНИЕ(ФАСАД)======================

(defun C:ФАСАД (/ dok vok so vido vst fasad)

(setq ce (getvar "CMDECHO"))

(setq bm (getvar "BLIPMODE"))

(setvar "CMDECHO" 0)

(setvar "BLIPMODE" 0)

(defun dtr(a)

(* PI (/ a 180.0))

)

;=============================ПРОГРАММА===============================

(command "СЛОЙ" "С" "$STENI" "")

(setq mash(getvar "USERR5"))

(initget 7)

(setq tvs(getpoint"\nУкажите точку вставки:"))

(setq stop T)

(while stop

(progn

(initget 7)

(setq so(getstring"\nСтена/Окно:"))

(if (eq so "С")

(progn (initget 7)

(setq vst(getreal"\nВысота,мм 1800/1200/900:"))

))

(if (eq so "О")

(progn (initget 7)

(setq vok(getreal"\nВысота,мм 1800/1200:"))

(setq vido(getstring"\nОкно Деревянное/СТальное:"))

(setq dok 3)

(if (= vido "СТ")

(progn (initget 7)

(setq dok(getreal"\nДлина,м 1.5/2.3:"))

))

))

(setq fasad(cond

((and (eq so "С") (= vst 1200)) "PSRF69")

((and (eq so "С") (= vst 1800)) "PSRF612")

((and (eq so "С") (= vst 900)) "PSRF618")

((and (eq so "О") (= vok 1800) (= dok 3) (= vido "Д")) "OBF318")

((and (eq so "О") (= vok 1200) (= dok 3) (= vido "Д")) "OBF312")

((and (eq so "О") (= vok 1800) (= dok 2.3) (= vido "СТ")) "OBFS2318")

((and (eq so "О") (= vok 1200) (= dok 2.3) (= vido "СТ")) "OBFS2312")

((and (eq so "О") (= vok 1800) (= dok 1.5) (= vido "СТ")) "OBFS1518")

((and (eq so "О") (= vok 1200) (= dok 1.5) (= vido "СТ")) "OBFS1512")

))

(command "Вставь" fasad tvs (/ 100 mash) (/ 100 mash) 0)

(initget 7 "Да Нет")

(setq yesno(getkword"\nПродолжить Да/Нет:"))

(if (= yesno "Нет") (setq stop nil)

(setq tvs(polar tvs (dtr 90) (/ vst mash))))

))

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

(setvar "BLIPMODE" bm)

(setvar "CMDECHO" ce)

(princ)

);=============================КОНЕЦ========================================

7.3.5 ferma.lsp

;=====================ФЕРМА СТРОПИЛЬНАЯ====================

(defun C:ФЕРМА(/ tfer ferma mash tvst)

(setq ce (getvar "CMDECHO"))

(setq bm (getvar "BLIPMODE"))

(setvar "CMDECHO" 0)

(setvar "BLIPMODE" 0)

(defun dtr(a)

(* PI (/ a 180.0)))

;========================Программа==========================

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

(initget 7)

(setq traz(getstring"\nРазрез ПРодольный/ПОперечный:"))

(if (eq traz "ПР") (setq r 1))

(if (eq traz "ПО") (setq r 0))

(setq t1(getstring"\nФерма Раскосная/Безраскосная:"))

(if (eq t1 "Р") (setq ras 1))

(if (eq t1 "Б")

(progn (setq ras 0)

(setq t2(getstring"\nФерма Скатная/Малоуклонная:"))

(if (eq t2 "С") (setq sk 1))

(if (eq t2 "М") (setq sk 0))

))

(initget 7)

(setq pfer(getint"\nПролет фермы,м 18/24:"))

(setq mash(/ 100 (getvar "USERR5")))

(setq tvst(getpoint"\nТочка вставки:"))

(setq ferma(cond

((and (= pfer 24) (= r 0) (eq t1 "Р")) "FR-24")

((and (= pfer 18) (= r 0) (eq t1 "Р")) "FR-18")

((and (= pfer 24) (= r 0) (eq t2 "С")) "FBS-24")

((and (= pfer 18) (= r 0) (eq t2 "С")) "FBS-18")

((and (= pfer 24) (= r 0) (eq t2 "М")) "FBU-24")

((and (= pfer 18) (= r 0) (eq t2 "М")) "FBU-18")