![]() |
Translate to: |
||||||
| Обратная связь | Новости САПР | Программы | Документация | Полезные советы | Обзорные статьи | ||
| Заказ и разработка | Каталог САПР | САПР-конференция | Библиотека ГОСТов | Наши соавторы | Коммерческое ПО | ||
Пример блока-шаблона в виде технологического шаблона №3 был указан ранее, как пример. Интерес по данной теме представляет программа послойного счета длины полилиний. В каждом слое (типа POG1…N) может быть расположен отдельный шлейф пожарной сигнализации. В этом случае мы последовательно при работе программы получаем длину каждого шлейфа.
Для детального усвоения программ в пособии 1 использовалась методика пошагового рассмотрения текста программ. В этом посо-бии я перехожу к логическому рассмотрению программ крупными «кусками», которые позволяют понять замысел автора. Для начального знакомства с языком Автолисп лучше всего заглянуть в пособие 1.
(defun kol();ПОЛУЧЕНИЕ общей длины полилинии в определенном слое (setq a (entnext))(setq tipl (entget a))(setq dlo2 nil) (setq tipl (cdr(assoc '0 (entget a))))(gc) (setq dan1 "D:\\"); путь к файлу на диске (setq pr (open (strcat dan1 "DAN_DLIN.txt") "r")); имя файла (if pr (progn (close pr) (setq pr (open (strcat dan1 "DAN_DLIN.txt") "w"))(close pr) )) (setq pr (open (strcat dan1 "DAN_DLIN.txt") "a")) (if (not dlooo)(progn (setq dlooo 0.0))) (setq vib11 "1") |
| Начальная часть программы – определение первого примитива в чертеже, задание первичных данных, обнуление старых данных файла, если вдруг они имеются, открытие пустого «чистого» файла для последующего включения данных |
(textscr) (princ "==================================")(terpri) (princ " НОМЕР СЛОЯ - С 1 = 1 ")(terpri) (princ "----------------------------------")(terpri) (princ " НОМЕР СЛОЯ - С 50 = 50 ")(terpri) (princ "----------------------------------")(terpri) (princ " НОМЕР СЛОЯ - С 100 = 100")(terpri) (princ "----------------------------------")(terpri) (princ " НОМЕР СЛОЯ - С 150 = 150")(terpri) (princ "----------------------------------")(terpri) (princ " НОМЕР СЛОЯ - С 200 = 200")(terpri) (princ "==================================")(terpri) (setq vib11 (getstring "\n ВЫБЕРИТЕ НОМЕР СЛОЯ С КОТОРОГО НАЧАТЬ ОБСЧЕТ ?:")) |
| Добавленная часть программы, по опыту использования оказалось, что утомительно ждать несколько минут (10-15) для вывода всей информации по шлейфам в чертеже (при их большом количестве). Эта часть программы позволяет в любое время узнать длину любого шлейфа и последующих за ним. Удобно при оперативной работе. При этом она не отменяет стратегического обсчета всех данных по шлейфам ПС чертежа. |
(princ "==================================")(terpri) (princ " МАСШТАБ 1:1 = 1 ")(terpri) (princ "----------------------------------")(terpri) (princ " МАСШТАБ 1:5 = 2 ")(terpri) (princ "----------------------------------")(terpri) (princ " МАСШТАБ 1:50 = 3 ")(terpri) (princ "----------------------------------")(terpri) (princ " МАСШТАБ 1:100 = 4 ")(terpri) (princ "----------------------------------")(terpri) (princ " МАСШТАБ 1:200 = 5 ")(terpri) (princ "----------------------------------")(terpri) (princ " МАСШТАБ 1:500 = 6 ")(terpri) (princ "==================================")(terpri) (setq mast (getstring "\n ВЫБЕРИТЕ МАСШТАБ ?:")) |
| Выбор масштаба – легко добавляются другие масштабы, только необходимо с этой переменной пройти по тексту программы |
(textscr)(terpri)(terpri)(terpri)(terpri)(terpri) (princ "==================================================")(terpri) (princ " ВЫБОР ТИПА СЛОЯ ДЛЯ СЧЕТА ДЛИН КАБЕЛЯ ПО СЛОЯМ ")(terpri) (princ "==================================================")(terpri) (princ " АВТОМАТИЗАЦИЯ (СЛОЙ AV...) = 1 ")(terpri) (princ "--------------------------------------------------")(terpri) (princ " ПОЖАРНАЯ СИГНАЛИЗАЦИЯ (СЛОЙ POG..) = 2 ")(terpri) (princ "--------------------------------------------------")(terpri) (princ " ЭЛЕКТРОСНАБЖЕНИЕ (СЛОЙ EL...) = 3 ")(terpri) (princ "--------------------------------------------------")(terpri) (princ " ПОЖАРНАЯ СИГНАЛИЗАЦИЯ (СЛОЙ DPLS..) = 4 ")(terpri) (princ "==================================================")(terpri) (setq vib (getstring "\n ВЫБЕРИТЕ ВАРИАНТ ?:")) (if (equal vib "1")(progn (setq isl "AV"))) (if (equal vib "2")(progn (setq isl "POG"))) (if (equal vib "3")(progn (setq isl "EL"))) (if (equal vib "4")(progn (setq isl "DPLS"))) (setq bb t);начальное условие работы цикла |
| Тип слоя зависит от проектировщика, как ему нравится, можно добавлять любые другие, толко не забывать про технологический шаблон №3, где сосредоточен массив слоев |
(while bb ;цикл 1
(setq slo1 (strcat isl vib11))
(while (and a tipl) ;цикл 2
(setq slo (cdr(assoc '8 (entget a))))
(if (and (equal slo slo1)(equal tipl "LWPOLYLINE"))
;ПОЛИЛИНИЯ ДЛЯ пожара
(progn
(setq dl2 nil pt1 nil pt2 nil nn nil)
(setq kol (length (entget a)))
(repeat kol (if (not nn)(setq nn 1))
(setq opol (nth nn (entget a)))
(if (equal (car opol) 10)(progn (setq pt (cdr opol))
(if pt2 (setq pt2 pt))
(if (not pt1)(setq pt1 pt))
(if pt2 (progn (setq dl2 (distance pt1 pt2))
(if (not dlo2)(setq dlo2 0))
(setq dlo2 (+ dlo2 dl2))
(setq dlooo (+ dlooo dl2))
;(princ "добавляемая длина dl2 = ")(princ dl2)(terpri)
;(princ "длина кабеля dlo2 = ")(princ dlo2)(terpri)
;(princ "общая длина кабеля dlooo = ")(princ dlooo)(terpri)
(setq dl2 nil)
))
(if pt2 (setq pt1 pt2))
(if (not pt2) (setq pt2 pt1))
))
(setq nn (+ nn 1))
)(setq dl2 nil sl2 nil slo nil nn nil)(gc)
)) ;ПОЛИЛИНИЯ ДЛЯ пожара
(setq a (entnext a))
(if a (progn (setq tipl (cdr(assoc '0 (entget a))))))
) ;цикл 2
|
| Цикл 1 позволяет определить общую длину полилинии на определенном слое и перейти к определению длины полилинии на следующем слое. Цикл 2 содержит непосредственно механизм определения длины полилинии на конкретном слое. Для этого определяется скрытая база данных конкретной полилинии и последовательно от точки к точке определяется длина каждого «куска» полилинии, которые последовательно складываются, в результате чего мы и получаем длину полилинии. Если на слое имеется несколько полилиний они последовательно определяются программой и с ними происходят те же действия, описанные в данном пояснении. После просмотра всех примитивов чертежа и просмотра при этом полилиний определенного слоя, включается механизм перехода просмотра примитивов Автокада с самого начала со сменой слоя просмотра полилиний и поиском полилиний нового слоя. |
(if (and (equal mast "1") dlo2)(progn (if (> dlo2 1.0) (progn (setq dlo21 (* dlo2 1.2)) (princ "МАСШТАБ 1 СЛОЙ = ")(princ slo1);(terpri) (princ "ДЛИНА КПСВВ 1х2х0,5 мм2 = ")(princ dlo2)(princ " м")(terpri) (princ "ДЛИНА С ЗАПАСОМ 120% = ")(princ dlo21)(princ " м")(terpri) (princ "-------------------------")(terpri) (setq dnn1 (strcat "МАСШТАБ 1 СЛОЙ = " slo1)) (write-line dnn1 pr) (setq dnn2 (strcat "КПСВВ 1х2х0,5 мм2 = " (rtos dlo2) " м")) (write-line dnn2 pr) (setq dnn3 (strcat "С ЗАПАСОМ 120% = " (rtos dlo21) " м")) (write-line dnn3 pr) )) )) |
| В начале программы выбирается масштаб, применяемый в чертеже. Данное условие позволяет вывести информацию о длине полилинии на конкретном слое. Информация выводится в текстовое окно Автокада и сбрасывается в файл. Для примера выбран масштаб «1», для других масштабов действие условий аналогично. |
(setq vibb (atoi vib11))(setq vibb (+ vibb 1))
(setq vib11 (itoa vibb))
(setq a (entnext))
(if (equal vib11 "150")(progn (setq bb nil)))
(setq dlo2 nil dlo21 nil)
) ;цикл 1
|
| Окончание цикла 1. При достижении числа слоев = 150 цикл 1 прекращает свою работу. |
(if (and (equal mast "1") dlooo)(progn
(if (> dlooo 1.0) (progn (setq dlooo1 (* dlooo 1.2))
(princ "МАСШТАБ 1 ВСЕ СЛОИ")(terpri)
(princ "ДЛИНА на всех слоях КПСВВ 1х2х0,5 мм2 = ")
(princ dlooo)(princ " м")(terpri)
(princ "С ЗАПАСОМ 120% = ")(princ dlooo1)(princ " м")(terpri)
(princ "-------------------------")(terpri)
(setq dnn1 (strcat "МАСШТАБ 1 ВСЕ СЛОИ"))(write-line dnn1 pr)
(setq dnn2 (strcat "КПСВВ 1х2х0,5 мм2 = " (rtos dlooo) " м"))
(write-line dnn2 pr)
(setq dnn3 (strcat "С ЗАПАСОМ 120% = " (rtos dlooo1) " м"))
(write-line dnn3 pr)
))
))
|
| После окончания работы основной части программы выводятся данные общей длины всех полилиний на всех слоях. Тоже нужная информация. Условие зависит от масштаба. Для примера выбран масштаб «1», для других масштабов действие условий аналогично. |
(setq dlooo nil dlo2 nil dlo21 nil)(close pr) (setq a nil tipl nil pt1 nil pt2 nil)(gc) ) |
| Окончание программы – обнуление переменных. |
(defun kol();ПОЛУЧЕНИЕ общей длины полилинии в определенном слое
(setq a (entnext) tipl t)(setq tipl (entget a))
(setq dlo2 nil)(setq tipl (cdr(assoc '0 (entget a))))(gc)
(setq dan1 "D:\\")(setq pr (open (strcat dan1 "DAN_DLIN.txt") "r"))
(if pr (progn (close pr)
(setq pr (open (strcat dan1 "DAN_DLIN.txt") "w"))(close pr)
))
(setq pr (open (strcat dan1 "DAN_DLIN.txt") "a"))
(if (not dlooo)(progn (setq dlooo 0.0)))
(setq vib11 "1")(textscr)
(princ "==================================")(terpri)
(princ " НОМЕР СЛОЯ - С 1 = 1 ")(terpri)
(princ "----------------------------------")(terpri)
(princ " НОМЕР СЛОЯ - С 50 = 50 ")(terpri)
(princ "----------------------------------")(terpri)
(princ " НОМЕР СЛОЯ - С 100 = 100")(terpri)
(princ "----------------------------------")(terpri)
(princ " НОМЕР СЛОЯ - С 150 = 150")(terpri)
(princ "----------------------------------")(terpri)
(princ " НОМЕР СЛОЯ - С 200 = 200")(terpri)
(princ "==================================")(terpri)
(setq vib11
(getstring "\n ВЫБЕРИТЕ НОМЕР СЛОЯ С КОТОРОГО НАЧАТЬ ОБСЧЕТ ?:"))
(princ "==================================")(terpri)
(princ " МАСШТАБ 1:1 = 1 ")(terpri)
(princ "----------------------------------")(terpri)
(princ " МАСШТАБ 1:5 = 2 ")(terpri)
(princ "----------------------------------")(terpri)
(princ " МАСШТАБ 1:50 = 3 ")(terpri)
(princ "----------------------------------")(terpri)
(princ " МАСШТАБ 1:100 = 4 ")(terpri)
(princ "----------------------------------")(terpri)
(princ " МАСШТАБ 1:200 = 5 ")(terpri)
(princ "----------------------------------")(terpri)
(princ " МАСШТАБ 1:500 = 6 ")(terpri)
(princ "==================================")(terpri)
(setq mast (getstring "\n ВЫБЕРИТЕ МАСШТАБ ?:"))
(textscr)(terpri)(terpri)(terpri)(terpri)(terpri)
(princ "==================================================")(terpri)
(princ " ВЫБОР ТИПА СЛОЯ ДЛЯ СЧЕТА ДЛИН КАБЕЛЯ ПО СЛОЯМ ")(terpri)
(princ "==================================================")(terpri)
(princ " АВТОМАТИЗАЦИЯ (СЛОЙ AV...) = 1 ")(terpri)
(princ "--------------------------------------------------")(terpri)
(princ " ПОЖАРНАЯ СИГНАЛИЗАЦИЯ (СЛОЙ POG..) = 2 ")(terpri)
(princ "--------------------------------------------------")(terpri)
(princ " ЭЛЕКТРОСНАБЖЕНИЕ (СЛОЙ EL...) = 3 ")(terpri)
(princ "--------------------------------------------------")(terpri)
(princ " ПОЖАРНАЯ СИГНАЛИЗАЦИЯ (СЛОЙ DPLS..) = 4 ")(terpri)
(princ "==================================================")(terpri)
(setq vib (getstring "\n ВЫБЕРИТЕ ВАРИАНТ ?:"))
(if (equal vib "1")(progn (setq isl "AV")))
(if (equal vib "2")(progn (setq isl "POG")))
(if (equal vib "3")(progn (setq isl "EL")))
(if (equal vib "4")(progn (setq isl "DPLS")))
(setq bb t)
(while bb ;цикл 1
(setq slo1 (strcat isl vib11))
(while (and a tipl) ;цикл 2
(setq slo (cdr(assoc '8 (entget a))))
(if (and (equal slo slo1)(equal tipl "LWPOLYLINE"))
;ПОЛИЛИНИЯ ДЛЯ пожара
(progn
(setq dl2 nil pt1 nil pt2 nil nn nil)
(setq kol (length (entget a)))
(repeat kol (if (not nn)(setq nn 1))
(setq opol (nth nn (entget a)))
(if (equal (car opol) 10)(progn (setq pt (cdr opol))
(if pt2 (setq pt2 pt))
(if (not pt1)(setq pt1 pt))
(if pt2 (progn (setq dl2 (distance pt1 pt2))
(if (not dlo2)(setq dlo2 0))
(setq dlo2 (+ dlo2 dl2))
(setq dlooo (+ dlooo dl2))
;(princ "добавляемая длина dl2 = ")(princ dl2)(terpri)
;(princ "длина кабеля dlo2 = ")(princ dlo2)(terpri)
;(princ "общая длина кабеля dlooo = ")(princ dlooo)(terpri)
(setq dl2 nil)
))
(if pt2 (setq pt1 pt2))
(if (not pt2) (setq pt2 pt1))
))
(setq nn (+ nn 1))
)(setq dl2 nil sl2 nil slo nil nn nil)(gc)
)) ;ПОЛИЛИНИЯ ДЛЯ пожара
(setq a (entnext a))
(if a (progn (setq tipl (cdr(assoc '0 (entget a))))))
) ;цикл 2
(if (and (equal mast "1") dlo2)(progn
(if (> dlo2 1.0) (progn (setq dlo21 (* dlo2 1.2))
(princ "МАСШТАБ 1 СЛОЙ = ")(princ slo1);(terpri)
(princ "ДЛИНА КПСВВ 1х2х0,5 мм2 = ")(princ dlo2)(princ " м")(terpri)
(princ "ДЛИНА С ЗАПАСОМ 120% = ")(princ dlo21)(princ " м")(terpri)
(princ "-------------------------")(terpri)
(setq dnn1 (strcat "МАСШТАБ 1 СЛОЙ = " slo1))
(write-line dnn1 pr)
(setq dnn2 (strcat "КПСВВ 1х2х0,5 мм2 = " (rtos dlo2) " м"))
(write-line dnn2 pr)
(setq dnn3 (strcat "С ЗАПАСОМ 120% = " (rtos dlo21) " м"))
(write-line dnn3 pr)
))
))
(if (and (equal mast "2") dlo2)(progn (setq dlo21 (* dlo2 1.2))
(setq dlo2 (/ dlo2 5.0))(setq dlo21 (/ dlo21 5.0))
(if (> dlo2 1.0) (progn
(princ "МАСШТАБ 5 СЛОЙ = ")(princ slo1)(terpri)
(princ "ДЛИНА КПСВВ 1х2х0,5 мм2 = ")(princ dlo2)(princ " м")(terpri)
(princ "С ЗАПАСОМ 120% = ")(princ dlo21)(princ " м")(terpri)
(princ "-------------------------")(terpri)
(setq dnn1 (strcat "МАСШТАБ 5 СЛОЙ = " slo1))
(write-line dnn1 pr)
(setq dnn2 (strcat "КПСВВ 1х2х0,5 мм2 = " (rtos dlo2) " м"))
(write-line dnn2 pr)
(setq dnn3 (strcat "С ЗАПАСОМ 120% = " (rtos dlo21) " м"))
(write-line dnn3 pr)
))
))
(if (and (equal mast "3") dlo2)(progn (setq dlo21 (* dlo2 1.2))
(setq dlo2 (/ dlo2 500.0))(setq dlo21 (/ dlo21 500.0))
(if (> dlo2 1.0) (progn
(princ "МАСШТАБ 50 СЛОЙ = ")(princ slo1)(terpri)
(princ "КПСВВ 1х2х0,5 мм2 = ")(princ dlo2)(princ " м")(terpri)
(princ "С ЗАПАСОМ 120% = ")(princ dlo21)(princ " м")(terpri)
(princ "-------------------------")(terpri)
(setq dnn1 (strcat "МАСШТАБ 50 СЛОЙ = " slo1))
(write-line dnn1 pr)
(setq dnn2 (strcat "КПСВВ 1х2х0,5 мм2 = " (rtos dlo2) " м"))
(write-line dnn2 pr)
(setq dnn3 (strcat "С ЗАПАСОМ 120% = " (rtos dlo21) " м"))
(write-line dnn3 pr)
))
))
(if (and (equal mast "4") dlo2)(progn (setq dlo21 (* dlo2 1.2))
(setq dlo2 (/ dlo2 1000.0))(setq dlo21 (/ dlo21 1000.0))
(if (> dlo2 1.0) (progn
(princ "МАСШТАБ 100 СЛОЙ = ")(princ slo1)(terpri)
(princ "КПСВВ 1х2х0,5 мм2 = ")(princ dlo2)(princ " м")(terpri)
(princ "С ЗАПАСОМ 120% = ")(princ dlo21)(princ " м")(terpri)
(princ "-------------------------")(terpri)
(setq dnn1 (strcat "МАСШТАБ 100 СЛОЙ = " slo1))
(write-line dnn1 pr)
(setq dnn2 (strcat "КПСВВ 1х2х0,5 мм2 = " (rtos dlo2) " м"))
(write-line dnn2 pr)
(setq dnn3 (strcat "С ЗАПАСОМ 120% = " (rtos dlo21) " м"))
(write-line dnn3 pr)
))
))
(if (and (equal mast "5") dlo2)(progn (setq dlo21 (* dlo2 1.2))
(setq dlo2 (/ dlo2 2000.0))(setq dlo21 (/ dlo21 2000.0))
(if (> dlo2 1.0) (progn
(princ "МАСШТАБ 200 СЛОЙ = ")(princ slo1)(terpri)
(princ "КПСВВ 1х2х0,5 мм2 = ")(princ dlo2)(princ " м")(terpri)
(princ "С ЗАПАСОМ 120% = ")(princ dlo21)(princ " м")(terpri)
(princ "-------------------------")(terpri)
(setq dnn1 (strcat "МАСШТАБ 200 СЛОЙ = " slo1))
(write-line dnn1 pr)
(setq dnn2 (strcat "КПСВВ 1х2х0,5 мм2 = " (rtos dlo2) " м"))
(write-line dnn2 pr)
(setq dnn3 (strcat "С ЗАПАСОМ 120% = " (rtos dlo21) " м"))
(write-line dnn3 pr)
))
))
(if (and (equal mast "6") dlo2)(progn (setq dlo21 (* dlo2 1.2))
(setq dlo2 (/ dlo2 5000.0))(setq dlo21 (/ dlo21 5000.0))
(if (> dlo2 1.0) (progn
(princ "МАСШТАБ 500 СЛОЙ = ")(princ slo1)(terpri)
(princ "КПСВВ 1х2х0,5 мм2 = ")(princ dlo2)(princ " м")(terpri)
(princ "С ЗАПАСОМ 120% = ")(princ dlo21)(princ " м")(terpri)
(princ "-------------------------")(terpri)
(setq dnn1 (strcat "МАСШТАБ 500 СЛОЙ = " slo1))
(write-line dnn1 pr)
(setq dnn2 (strcat "КПСВВ 1х2х0,5 мм2 = " (rtos dlo2) " м"))
(write-line dnn2 pr)
(setq dnn3 (strcat "С ЗАПАСОМ 120% = " (rtos dlo21) " м"))
(write-line dnn3 pr)
))
))
(setq vibb (atoi vib11))(setq vibb (+ vibb 1))
(setq vib11 (itoa vibb))
(setq a (entnext))
(if (equal vib11 "150")(progn (setq bb nil)))
(setq dlo2 nil dlo21 nil)
) ;цикл 1
(if (and (equal mast "1") dlooo)(progn
(if (> dlooo 1.0) (progn (setq dlooo1 (* dlooo 1.2))
(princ "МАСШТАБ 1 ВСЕ СЛОИ")(terpri)
(princ "ДЛИНА на всех слоях КПСВВ 1х2х0,5 мм2 = ")
(princ dlooo)(princ " м")(terpri)
(princ "С ЗАПАСОМ 120% = ")(princ dlooo1)(princ " м")(terpri)
(princ "-------------------------")(terpri)
(setq dnn1 (strcat "МАСШТАБ 1 ВСЕ СЛОИ"))(write-line dnn1 pr)
(setq dnn2 (strcat "КПСВВ 1х2х0,5 мм2 = " (rtos dlooo) " м"))
(write-line dnn2 pr)
(setq dnn3 (strcat "С ЗАПАСОМ 120% = " (rtos dlooo1) " м"))
(write-line dnn3 pr)
))
))
(if (and (equal mast "2") dlooo)(progn (setq dlooo1 (* dlooo 1.2))
(if (> dlooo 1.0) (progn
(setq dlooo (/ dlooo 5.0))(setq dlooo1 (/ dlooo1 5.0))
(princ "МАСШТАБ 5 ВСЕ СЛОИ")(terpri)
(princ "КПСВВ 1х2х0,5 мм2 = ")(princ dlooo)(princ " м")(terpri)
(princ "С ЗАПАСОМ 120% = ")(princ dlooo1)(princ " м")(terpri)
(princ "-------------------------")(terpri)
(setq dnn1 (strcat "МАСШТАБ 5 ВСЕ СЛОИ"))(write-line dnn1 pr)
(setq dnn2 (strcat "КПСВВ 1х2х0,5 мм2 = " (rtos dlooo) " м"))
(write-line dnn2 pr)
(setq dnn3 (strcat "С ЗАПАСОМ 120% = " (rtos dlooo1) " м"))
(write-line dnn3 pr)
))
))
(if (and (equal mast "3") dlooo)(progn (setq dlooo1 (* dlooo 1.2))
(if (> dlooo 1.0) (progn
(setq dlooo (/ dlooo 500.0))(setq dlooo1 (/ dlooo1 500.0))
(princ "МАСШТАБ 50 ВСЕ СЛОИ")(terpri)
(princ "КПСВВ 1х2х0,5 мм2 = ")(princ dlooo)(princ " м")(terpri)
(princ "С ЗАПАСОМ 120% = ")(princ dlooo1)(princ " м")(terpri)
(princ "-------------------------")(terpri)
(setq dnn1 (strcat "МАСШТАБ 50 ВСЕ СЛОИ"))(write-line dnn1 pr)
(setq dnn2 (strcat "КПСВВ 1х2х0,5 мм2 = " (rtos dlooo) " м"))
(write-line dnn2 pr)
(setq dnn3 (strcat "С ЗАПАСОМ 120% = " (rtos dlooo1) " м"))
(write-line dnn3 pr)
))
))
(if (and (equal mast "4") dlooo)(progn (setq dlooo1 (* dlooo 1.2))
(if (> dlooo 1.0) (progn
(setq dlooo (/ dlooo 1000.0))(setq dlooo1 (/ dlooo1 1000.0))
(princ "МАСШТАБ 100 ВСЕ СЛОИ")(terpri)
(princ "КПСВВ 1х2х0,5 мм2 = ")(princ dlooo)(princ " м")(terpri)
(princ "С ЗАПАСОМ 120% = ")(princ dlooo1)(princ " м")(terpri)
(princ "-------------------------")(terpri)
(setq dnn1 (strcat "МАСШТАБ 100 ВСЕ СЛОИ"))(write-line dnn1 pr)
(setq dnn2 (strcat "КПСВВ 1х2х0,5 мм2 = " (rtos dlooo) " м"))
(write-line dnn2 pr)
(setq dnn3 (strcat "С ЗАПАСОМ 120% = " (rtos dlooo1) " м"))
(write-line dnn3 pr)
))
))
(if (and (equal mast "5") dlooo)(progn (setq dlooo1 (* dlooo 1.2))
(if (> dlooo 1.0) (progn
(setq dlooo (/ dlooo 2000.0))(setq dlooo1 (/ dlooo1 2000.0))
(princ "МАСШТАБ 200 ВСЕ СЛОИ")(terpri)
(princ "КПСВВ 1х2х0,5 мм2 = ")(princ dlooo)(princ " м")(terpri)
(princ "С ЗАПАСОМ 120% = ")(princ dlooo1)(princ " м")(terpri)
(princ "-------------------------")(terpri)
(setq dnn1 (strcat "МАСШТАБ 200 ВСЕ СЛОИ"))(write-line dnn1 pr)
(setq dnn2 (strcat "КПСВВ 1х2х0,5 мм2 = " (rtos dlooo) " м"))
(write-line dnn2 pr)
(setq dnn3 (strcat "С ЗАПАСОМ 120% = " (rtos dlooo1) " м"))
(write-line dnn3 pr)
))
))
(if (and (equal mast "6") dlooo)(progn (setq dlooo1 (* dlooo 1.2))
(if (> dlooo 1.0) (progn
(setq dlooo (/ dlooo 5000.0))(setq dlooo1 (/ dlooo1 5000.0))
(princ "МАСШТАБ 500 ВСЕ СЛОИ")(terpri)
(princ "КПСВВ 1х2х0,5 мм2 = ")(princ dlooo)(princ " м")(terpri)
(princ "С ЗАПАСОМ 120% = ")(princ dlooo1)(princ " м")(terpri)
(princ "-------------------------")(terpri)
(setq dnn1 (strcat "МАСШТАБ 500 ВСЕ СЛОИ"))(write-line dnn1 pr)
(setq dnn2 (strcat "КПСВВ 1х2х0,5 мм2 = " (rtos dlooo) " м"))
(write-line dnn2 pr)
(setq dnn3 (strcat "С ЗАПАСОМ 120% = " (rtos dlooo1) " м"))
(write-line dnn3 pr)
))
))
(setq dlooo nil dlo2 nil dlo21 nil)(close pr)
(setq a nil tipl nil pt1 nil pt2 nil)(gc)
)
Copyright © Сайт поддержки пользователей САПР