![]() |
Translate to: |
||||||
| Обратная связь | Новости САПР | Программы | Документация | Полезные советы | Обзорные статьи | ||
| Заказ и разработка | Каталог САПР | САПР-конференция | Библиотека ГОСТов | Наши соавторы | Коммерческое ПО | ||
Итак начнем с первой задачи, которая состоит в определении количества электроаппаратуры, находящейся на поле чертежа.
Задача проектировщика состоит в подсчете количества электроаппаратуры, которая находится в поле чертеже и количества сопутствующей аппаратуры и материалов, которые не находятся на поле чертежа, но требуются для установки основной электроаппаратуры. Также подсчитывается 3,4,5-жильная проводка по удельным показателям на единицу электроаппаратуры для больших обьектов. Ручной процесс подсчета довольно трудоемкий и сложность его увеличивается по мере насыщения чертежа электроаппаратурой. При достижении объемов в сотни штук и выше задача становится сложной и неприятной, поскольку заставляет тратить много времени и проектировщик постоянно находится в напряжении, стараясь не ошибиться. При этом задача является обычной механической операцией, не требующей интеллектуального труда.
Задача требует использования блоков, которые представляют из себя условные обозначение электроаппаратуры и за счет уникального имени блока, позволяет с помощью программы, автоматически пересчитать их количество. При этом задача просматривает все примитивы чертежа-рисунка и находя соответствующие блоки сортирует их по именам. Каждому блоку-электроаппарату соответствует свой счетчик, который накапливает данные на единицу при нахождении соответствую щего блока. После окончания просмотра рисунка данные подсчета выводятся на экран. Можно сделать соответствующие дополнения в программу и получить вывод данных в текстовый файл или в таблицу данных на чертеже. По полученным общим результатам подсчета количества электроаппаратуры можно рассчитать и получить общий объем кабельных проводок по удельным показателям. В данном описании рассматривается всего лишь несколько конкретных электроаппаратов, в то время, как общее их количество в предлагаемой программе превышает 50 единиц.
Структура программы приведена на чертеже. Наглядно видно существование общего цикла, который работает, как "колесо обозрения". Оно крутится и крутит кабинки-примитивы. Опускаясь к низу, колесо ,как бы задерживается и позволяет просмотреть содержимое кабинок и выбрать то, что нам необходимо. В данном случае нам необходимо найти блоки электроаппаратов. При этом выполнить три условия:
После выполнения всех трех условий срабатывает счетчик электроаппарата. При этом понятно, что третьих условий для разных электроаппаратов может быть сотни. При выполнении условий соблюдается следующий порядок: попасть в проверку 2 условия можно, только выполнив 1 условие и так далее.
Разбор задачи выполнен для 2 электроаппаратов. Все остальные операции для других электроаппаратов аналогичны. Точка с запятой используется для комментарий, которые устанавливаются в тексте программы и на работу программы не влияют.
(defun kol_el () |
Программная объединяющая функция счета числа электроприборов по плану этажа. Функция defun под именем /kol_el/ объединяет все выражения и функции программы. В сеансе Автокада она вызывается с помощью команды: (load"имя_файла")- загрузка файла, после чего в скобках указывается (имя_файла) для исполнения. Для нашего случая (load "kol_el") - загрузка файла,это выражение достаточно набрать в командной строке Автокада, после чего набрать - (kol_el) для исполнения программы, полную запись необходимо указать в командной строке Автокада или в пункте меню. Открывающая скобка функции defun должна закрыться закрывающей скобкой в конце программы. Выглядит это так (defun …………) |
(setq a (entnext)) |
Функция setq - присвоение переменной /а/ имени первого примитива в рисунке в длинной очереди выстроенных друг за другом примитивов чертежа. Команда entnext без аргумента дает имя первого неудаленного примитива в рисунке, тем самым мы находим начало данных примитивов Автокада. Примитивы Автокада это линии, текст, полилинии, круг, блоки и т.д. |
(setq b t) |
Функция присвоения переменной /b/ соответственно значение /t/,что означает ее существование без вложенных данных |
(while (and a b) |
Начало цикла, открывающая скобка цикла - вход в цикл, который работает только при взаимном существовании переменных /a/ и /b/ при помощи функции (and...) - логическое И, объединяющей проверку существования /a/ и /b/. В цикле происходит повторение задуманных действий до тех пор, пока существуют обе переменные /a/ и /b/. При этом происходит последовательный внутренний просмотр примитивов рисунка одного за другим, согласно внутренней иерархии. Вызов нового элемента рисунка происходит в конце цикла с помощью команды (entnext a): При этом с помощью команды (setq a .....) происходит переприсвоение в переменную /а/ имени нового примитива взамен старого, уже просмотренного программой |
(setq b (cdr(assoc '0 (entget a)))) |
Выражение для получения из информационной структуры примитива рисунка - типа примитива INSERT, т.е. вставки блока, выражение можно записать и другим способом - последовательным написанием каждой функции: (setq b (entget a)) – список информационной структуры примитива (СИСП), (setq b (assoc '0 b)) - нахождение в (СИСП) по ключу (паролю) '0 ключевой пары типа примитива (0 . тип_примитива) (setq b (cdr b)) - получение значения второго члена ключевой пары, т.е. типа примитива. Наша задача - отбор всех примитивов с типом INSERT т.е. блоков ,а затем из всего числа блоков, выбор блоков с именем 1_LMS1_18_54 Правильное написание выражений смотреть в аналоге программы в конце главы |
(if b |
Начало первого условия, открывающая скобка условия. Проверка существования /b/ - типа примитива, т.е. если переменная /b/ существует, то вход в условие разрешен. В противном случае доступ к выражениям, находящимся внутри первого условия будет запрещен |
(progn |
Функция progn позволяет объединить разные выражения находящиеся внутри первого условия в одно выражение. Если этого не сделать, то произойдет сбой или ошибка выполнения программы |
(if (equal b "INSERT") |
Начало второго условия, открывающая скобка условия. Выполнение 2 условия, что в переменной /b/ содержится вставка блока, т.е. при работе цикла и последовательном просмотре примитивов, содержащихся в рисунке, второе условие позволяет отобрать и пропустить внутрь себя только тогда, когда в переменной /b/ содержится вставка блока - INSERT или иначе говоря при нахождении блока, содержащегося внутри рисунка |
(progn |
Функция progn позволяет объединить разные выражения, находящиеся внутри второго условия в одно выражение. Если этого не сделать, то произойдет сбой или ошибка выполнения |
(setq c (cdr(assoc '2 (entget a)))) |
Получение имени блока из (СИСП), аналогично /b/ - см. рассмотренное выше выражение для получение типа примитива |
(princ "с = ")(princ c) (terpri) |
Вывод сообщения об имени блока в текстовом режиме Автокада, после отладки это выражение удаляется. Функция (terpri) служит для удобства – переносит следующее сообщение в текстовом режиме Автокада на новую строку |
(if (equal c "1_LMS1_18_54") |
Третье условие подсчета, начало условия, открывающая скобка - условия количества од-нолюминисцентных светильников мощностью 18 вт с защитой 1Р54. Если переменная /с/ со-ответствует имени блока 1_LMS1_18_54, то мы попадаем в третье условие |
(progn |
Функция progn позволяет объединить разные выражения находящиеся внутри третьего условия в одно выражение. Если этого не сделать, то произойдет сбой или ошибка выполнения программы |
(if (not nl1)(setq nl1 0.0)) |
Это выражение проверяет существует ли счет-чик л/м светильника, если его /nl1/ нет, что подтверждается выражением (not nl1), ко-торое дает значение /t/ – подтверждение для входа в условие, если переменная /nl1/ не имеет значения. В этом случае внутри условия переменной счетчика присваивается значение 0.0, после чего он может использоваться для прибавления значения, условие используется только один раз вначале появления счетчика |
| (setq nl1 (+ nl1 1.0)) | Работа счетчика люминисцентного светильника - увеличение на единицу, если выполнение программы доходит до этого места, т.е. когда программа находит блок люминисцентного светильника в чертеже. Само выражение читается так - к значению переменной /nl1/ прибавляется единица и общее значение снова записывается в переменную /nl1/ |
(if (not pr3) (setq pr3 0.0)) |
Это выражение проверяет существует ли переменная длины 3-жильного кабеля /pr3/,если ее /pr3/ нет, что подтверждается выражением (not pr3), которое дает значение /t/ – признак для входа в условие, если переменная /pr3/ не имеет значения. В этом случае внутри условия переменной счетчика присваивается значение 0.0, после чего он может использоваться для прибавления значения, условие используется только один раз. Если переменной /pr3/ не присвоить вначале нулевого значения, то при прибавлении появившейся длины 3-жильного кабеля к пустоте произойдет ошибка. |
(setq pr3 (+ pr3 1.3)) |
КАБЕЛЬ 3-жильный для горизонтального участка, закрываемого светильником, читается следующим образом – в расчете на каждый светильник добавляется 1,3 метра длины кабеля. Значение складывается из длины закрываемой светильником и монтажной длины, подключаемой к светильнику |
(if (not pr3v)(setq pr3v 0.0)) |
Это выражение проверяет существует ли переменная длины 3-жильного кабеля для верти-кального участка /pr3v/,если ее /pr3v/ нет, что подтверждается выражением (not pr3v) , которое дает значение /t/ – подтверждение для входа в условие. Если переменная /pr3v/ не имеет значения, в этом случае внутри ус-ловия переменной счетчика присваивается значение 0.0, после чего он может использо-ваться для прибавления значения, условие используется только один раз. Если перемен-ной /pr3v/ не присвоить вначале нулевого значения, то при прибавлении появившейся длины 3-жильного кабеля к пустоте произойдет ошибка |
(setq pr3v (+ pr3v 0.2)) |
КАБЕЛЬ 3-жильный для вертикального участка, в расчете на 1 светильник, читается следующим образом – в расчете на каждый светильник добавляется 0,2 метра длины кабеля |
)) |
Первая скобка закрывает выражение PROGN, а вторая скобка закрывает третье условие по выбору люминисцентного светильника и мате-риалов к нему |
(if (equal c "1_RP3") |
Следующее третье условие подсчета количест-ва условных люстр, поскольку сами люстры не учитываются, а только будут учтены материа-лы для них |
(progn |
Функция progn позволяет объединить разные выражения находящиеся внутри третьего условия в одно выражение |
(if (not sv13) (setq sv13 0.0)) |
Это выражение проверяет существует ли переменная количества люстр /sv13/,если ее /sv13/ нет, что подтверждается выражением (not sv13), которое дает значение /t/, подтверждение для входа в условие. Если переменная /sv13/ не имеет значения, в этом случае внутри условия переменной счетчика присваивается значение 0.0, после чего он может использоваться для прибавления значения, условие используется только один раз. Если переменной /sv13/ не присвоить вначале нулевого значения, то при прибавлении появившейся люстры к пустоте произойдет ошибка |
(setq sv13 (+ sv13 1.0)) |
Работа счетчика люстр - увеличение на единицу, если выполнение программы доходит до этого места. Само выражение читается так - к значению переменной /sv13/ прибавляется единица и общее значение количества люстр снова записывается в переменную /sv13/ |
(if (not kl1) (setq kl1 0.0)) |
Это выражение проверяет существует ли переменная количества клемм /kl1/,если ее /kl1/ нет, что подтверждается выражением (not kl1) ,которое дает значение t – подтверждение для входа в условие. Если переменная /kl1/ не имеет значения, в этом случае внутри условия переменной счетчика присваивается значение 0.0, после чего он может использоваться для прибавления значения, условие используется только один раз. Если переменной /kl1/ не присвоить вначале нулевого значения, то при прибавлении появившейся клеммы к пустоте произойдет ошибка. |
(setq kl1 (+ kl1 3.0)) |
Работа счетчика клемм - увеличение на три шт., если выполнение программы доходит до этого места. Само выражение читается так - к значению переменной /kl1/ прибавляется три клеммы и общее значение количества клемм снова записывается в переменную /kl1/ |
(if (not kr1)(setq kr1 0.0)) |
Это выражение проверяет существует ли переменная количества крюков /kr1/,если ее /kr1/ нет, что подтверждается выражением (not kr1), которое дает значение /t/ – подтверждение для входа в условие. Если переменная /kr1/ не имеет значения, в этом случае внутри условия переменной счетчика присваивается значение 0.0, после чего он может использоваться для прибавления значения, условие используется только один раз.Если переменной /kr1/ не присвоить вначале нулевого значения, то при прибавлении появившегося крюка к пустоте произойдет ошибка. |
(setq kl1 (+ kl1 3.0)) |
Работа счетчика крюков – увеличение на единицу, если выполнение программы доходит до этого места. Само выражение читается так - к значению переменной /kr1/ прибавляется один крюк и общее значение количества крю-ков снова записывается в переменную /kr1/ |
(if (not rp1)(setq rp1 0.0)) |
Это выражение проверяет существует ли переменная количества розеток потолочных /rp1/, если ее /rp1/ нет, что подтверждается выражением (not rp1), которое дает значение /t/ – подтверждение для входа в условие. Если переменная /rp1/ не имеет значения, в этом случае внутри условия переменной счетчика присваивается значение 0.0, после чего он может использоваться для прибавления значения, условие используется только один раз. Если переменной /rp1/ не присвоить вначале нулевого значения, то при прибавлении появившейся розетки потолочной к пустоте произойдет ошибка. |
(setq rp1 (+ rp1 1.0)) |
Работа счетчика розеток потолочных, увеличение на единицу, если выполнение программы доходит до этого места. Само выражение читается так - к значению переменной /rp1/ прибавляется одна розетка потолочная и общее значение количества розеток снова записывается в переменную /rp1/ |
)) |
Первая скобка закрывает выражение PROGN, а вторая скобка закрывает третье условие IF по выбору люстр и материалов к ним |
)) |
Первая скобка закрывает выражение PROGN, а вторая скобка закрывает второе условие IF по определению блока, именно внутри 2 условия будут находиться десятки или сотни третьих условий для выбора электроаппаратов |
(setq a (entnext a)) |
Выражение для перелистывания примитивов и получения имени следующего примитива или подпримитива, т.е. функция entnext с именем /а/ - предыдущего примитива, дает имя следующего примитива, которое записывается в переменную /а/ |
) |
Конец цикла по выбору электроаппаратуры, закрывающая скобка для цикла |
(textscr) |
Функция перехода из графического в текстовый режим, чтобы прочитать текстовые сообщения о работе программы в сеансе Автокада |
(if (not svob)(progn (setq svob 0.0))) |
Создание переменной общего числа электроаппаратов и присвоение ей значения 0.0 – для длины 3,4,5-жильного кабеля внутри условия проверки отсутствия переменной общего числа электроаппаратов |
(if (not svob2)(progn (setq svob2 0.0))) |
создание переменной определенного числа электроаппаратов и присвоение ей значения 0.0 – для длины 2-жильного кабеля внутри условия проверки отсутствия переменной определенного числа электроаппаратов |
(if sv13 (progn (setq svob (+ svob sv13)))) |
если существует счетчик люминисцентного светильника, то добавление в общее число электроаппаратов количество л/м светильников внутри условия наличия переменной счетчика люминисцентного светильника |
(if nl1 (progn (setq svob (+ svob nl1)))) |
Если существует счетчик люстр, то добавление в общее число электроаппаратов количества люстр внутри условия наличия переменной счетчика люстр |
Применение выражений типа проверки условия помогает избежать ошибок в программе при выполнении арифметических операций, в данном случае сложения. В случае выполнения операции сложения в программе, если одна из переменных не существует – программа выдает ошибку. Поэтому предварительно этим переменным задается первичное значение – 0 (ноль).
Далее - печать результатов.Вывод полученных результатов в текстовое окно Автокада, когда проектировщик выполняет чертеж, чтобы перейти в текстовое окно необходимо нажать клавишу F1. Выводу информации помогает функция Автолиспа princ. Чтобы нагляднее выделить выводимую информацию на экране вначале выводится горизонтальная отсекающая линия, затем следует выражение, включающее в себя условие проверки существования переменной светильника. Если переменная имеет значение, то далее друг за другом следуют два выражения princ.
В первом выражении печатается название светильника, а во втором выражении печатается переменная количества конкретного электроприемника, т.е. сколько содержится в переменной, столько и напечатается.
(princ "---------------------")(terpri) |
печатание горизонтальной разделительной линии |
(if sv13 (progn (princ "Cвет-к (люстра) на 3 провода = ") (princ sv13)(terpri))) |
Печатание количества люстр |
(if nl1 (progn (princ "Свет-к ЛМС 1шт. 18вт. 1Р54 АВ = ") (princ nl1)(terpri))) |
Печатание количества люминисцентных светильников |
(setq klprr (* 15.0 svob)) |
Объем кабельной продукции = 15м х Общее число электроаппаратов, выражение читается так – 15м умножить на общее число электроаппаратов и полученное значение записать в переменную klprr |
(setq klprr2 (* 2.0 svob2)) |
Объем 2-жильного кабеля = 2 м х число электроаппаратов, в том числе однополюсные выключатели и 1-штифтовые кнопки. Выражение читается так – 2м умножить на конкретное число электроаппаратов и полученное значение записать в переменную klprr2 |
(setq klpr3 (* klprr 0.35)) |
Объем 3-жильного кабеля = 35% от общего расчетного количества кабеля, чтение аналогично |
(setq klpr4 (* klprr 0.1)) |
Объем 4-жильного кабеля = 10% от общего расчетного количества кабеля, чтение аналогично |
(setq klpr5 (* klprr 0.05)) |
объем 5-жильного кабеля = 5% от общего расчетного количества кабеля, чтение аналогично |
Вывод полученных результатов в текстовое окно Автокада, когда проектировщик выполняет чертеж, чтобы перейти в текстовое окно необходимо нажать клавишу F1. Выводу информации помогает функция Автолиспа princ. Чтобы нагляднее выделить выводимую информацию на экране вначале выводим отсекающую линию, затем заголовок выводимой информации и снова отсекающую линию. Затем следует выражение, включающее в себя условие проверки существования переменной количества провода. Если она существует, то далее друг за другом следуют два выражения princ. В первом выражении печатается название кабеля, а во втором переменная количества, т.е. сколько содержится в переменной, столько и напечатается.
(princ "---------------------")(terpri) |
Печатание горизонтальной линии |
(princ "КАБЕЛЬ ПО ПЛАНУ ")(terpri) |
Печатание заголовка |
(princ "---------------------")(terpri) |
Печатание горизонтальной линии |
(if klpr2 (progn (princ "ДЛИНА кабеля 2-жильн. = ") (princ klpr2)(terpri))) |
Печатание длины кабеля 2 - жильного |
(if klpr3 (progn (princ "ДЛИНА кабеля 3-жильн. = ") (princ klpr3)(terpri))) |
Печатание длины кабеля 3 - жильного |
(if klpr4 (progn (princ "ДЛИНА кабеля 4-жильн. = ") (princ klpr4)(terpri))) |
Печатание длины кабеля 4 - жильного |
(if klpr5 (progn (princ "ДЛИНА кабеля 5-жильн. = ") (princ klpr5)(terpri))) |
Печатание длины кабеля 5 - жильного |
(princ "---------------------")(terpri) |
Печатание горизонтальной линии окончание вывода информации |
(setq a nil b nil c nil a1 nil)(gc) |
Удаление неиспользуемых переменных |
) |
Скобка закрытия программной объединяющей функции счета числа электроприборов по плану этажа. (функция defun) под именем /kol_el/ |
Примечание: Данная программа получила новое продолжение, встретились объекты проектирования с огромным количеством электроприемников до 6 тысяч светильников, и появилась необходимость в новых задачах – разбивка светильников на группы (до 80 светильников) и расчет мощности по группам. Пришлось ввести в блок светильника 2 атрибута: 1 – для номера группы, 2 – для мощности светильника с установленным значением мощности. В результате появились новые задачи - для быстрой установки номера группы с помощью указания на блок светильника курсором и раздельный учет мощности по группам. Опыт применения показал огромную экономию времени. Кстати шаблон-заготовка электроприемников тоже претерпел изменения. В нем появились новые блоки современных светильников с атрибутами и внесены несколько десятков слоев, показан-ных с помощью разноцветных полилиний. В процессе вставки в рисунок такого шаблона (как блока), в рисунке автоматически возникает множество слоев со специальным именем типа «EL1», «EL2», «EL3» и т.д. Используя полилинии шаблона можно быстро обозначить кабельные проводки разных типов и марок кабелей. Специальная задача выдает длину полилинии на каждом слое. В результате с учетом коэффициента поправок мы получим длины по каждому кабелю, примененному в чертеже. Кстати таких слоев можно применить сколь угодно много. При появлении интереса к данной тематике можно будет вернуться позже. Задачи по определению суммы длины полилиний приведены в конце данного пособия.
Ниже приведен текст программы, который намного меньше верхнего варианта с пояснениями. Хорошо видно тело программы с отступами, которые формируют и выражают функции цикла и условий. Наглядно видно, что каждое выражение, которое открывается скобкой должно иметь соответствующую закрывающую скобку. Кстати наиболее часто встречающаяся ошибка – несоответствие по количеству открывающих и закрывающих скобок.
Текст программы учета электроприемников в чертеже Автокада
(defun kol_el() ;функция счета чмсла электроприборов по плану этажа
(setq a (entnext) a1 0 b t)
(while (and a b) (setq b (cdr(assoc '0 (entget a))))
(if b (progn (setq c (cdr(assoc '2 (entget a))))
;(princ "с = ")(princ c)(terpri)
(if (or(equal b "INSERT")(equal c "ATTRIB")(equal c "ATTDEF"))
(progn
(if (equal c "1_LMS1_11_20")(progn ;число л/м 11вт 1шт
(if (not nl18)(setq nl18 0))(setq nl18 (+ nl18 1))
(if (not pr3)(setq pr3 0.0))(setq pr3 (+ pr3 1.3))
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 0.2))
;КАБЕЛЬ 3-жильн
))
(if (equal c "1_LMS1_18_54")(progn ;число л/м 18вт 1шт
(if (not nl1)(setq nl1 0.0))(setq nl1 (+ nl1 1.0))
; светильник ЛМС
(if (not pr3)(setq pr3 0.0))(setq pr3 (+ pr3 1.3))
; КАБЕЛЬ 3-жильн
(if (not pr3v)(setq pr3v 0.0))
(setq pr3v (+ pr3v 0.2)) ; КАБЕЛЬ 3-жильн
))
(if (equal c "1_LMS1_36_54")(progn ;число л/м 36вт 1шт
(if (not nl2)(setq nl2 0.0))(setq nl2 (+ nl2 1.0))
(if (not pr3)(setq pr3 0.0))(setq pr3 (+ pr3 1.3))
(if (not pr3v)(setq pr3v 0.0))
(setq pr3v (+ pr3v 0.2)) ; КАБЕЛЬ 3-жильн
))
(if (equal c "1_LMS1_58_54")(progn ;число л/м 58вт 1шт
(if (not nl3)(setq nl3 0.0))(setq nl3 (+ nl3 1.0))
(if (not pr3)(setq pr3 0.0))(setq pr3 (+ pr3 1.3))
(if (not pr3v)(setq pr3v 0.0))
(setq pr3v (+ pr3v 0.2)) ; КАБЕЛЬ 3-жильн
))
(if (equal c "1_LMS1_9_54")(progn ;число л/м 9вт 1шт
(if (not nl4)(setq nl4 0.0))(setq nl4 (+ nl4 1.0))
(if (not pr3)(setq pr3 0.0))(setq pr3 (+ pr3 1.3))
(if (not pr3v)(setq pr3v 0.0))
(setq pr3v (+ pr3v 0.2)) ; КАБЕЛЬ 3-жильн
))
(if (equal c "1_LMS2_36_54")(progn ;число л/м 36вт 2шт
(if (not nl5)(setq nl5 0.0))(setq nl5 (+ nl5 1.0))
(if (not pr3)(setq pr3 0.0))(setq pr3 (+ pr3 1.3))
(if (not pr3v)(setq pr3v 0.0))
(setq pr3v (+ pr3v 0.2)) ; КАБЕЛЬ 3-жильн
))
(if (equal c "1_LMS2_58_54")(progn ;число л/м 58вт 2шт
(if (not nl6)(setq nl6 0.0))(setq nl6 (+ nl6 1.0))
(if (not pr3)(setq pr3 0.0))(setq pr3 (+ pr3 1.3))
(if (not pr3v)(setq pr3v 0.0))
(setq pr3v (+ pr3v 0.2)) ; КАБЕЛЬ 3-жильн
))
(if (equal c "1_LMS4_18_54")(progn ;число л/м 18вт 4шт
(if (not nl7)(setq nl7 0.0))(setq nl7 (+ nl7 1.0))
(if (not pr3)(setq pr3 0.0))(setq pr3 (+ pr3 1.3))
(if (not pr3v)(setq pr3v 0.0))
(setq pr3v (+ pr3v 0.2)) ; КАБЕЛЬ 3-жильн
))
(if (equal c "1_LMS2_18_20")(progn ;число л/м 18вт 2шт
(if (not nl8)(setq nl8 0.0))(setq nl8 (+ nl8 1.0))
(if (not pr3)(setq pr3 0.0))(setq pr3 (+ pr3 1.3))
(if (not pr3v)(setq pr3v 0.0))
(setq pr3v (+ pr3v 0.2)) ; КАБЕЛЬ 3-жильн
))
(if (equal c "1_LMS2_36_20")(progn ;число л/м 36вт 2шт
(if (not nl9)(setq nl9 0.0))(setq nl9 (+ nl9 1.0))
(if (not pr3)(setq pr3 0.0))(setq pr3 (+ pr3 1.3))
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 0.2))
; КАБЕЛЬ 3-жильн
))
(if (equal c "1_LMS2_58_20")(progn ;число л/м 58вт 2шт
(if (not nl10)(setq nl10 0.0))(setq nl10 (+ nl10 1.0))
(if (not pr3)(setq pr3 0.0))(setq pr3 (+ pr3 1.3))
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 0.2))
; КАБЕЛЬ 3-жильн
))
(if (equal c "1_LMS4_18_20")(progn ;число л/м 18вт 4шт
(if (not nl11)(setq nl11 0.0))(setq nl11 (+ nl11 1.0))
(if (not pr3)(setq pr3 0.0))(setq pr3 (+ pr3 1.3))
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 0.2))
; КАБЕЛЬ 3-жильн
))
(if (equal c "1_LMS4_36_20")(progn ;число л/м 36вт 4шт
(if (not nl12)(setq nl12 0.0))(setq nl12 (+ nl12 1.0))
(if (not pr3)(setq pr3 0.0))(setq pr3 (+ pr3 1.3))
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 0.2))
; КАБЕЛЬ 3-жильн
))
(if (equal c "1_LMS2_18Z_20")(progn ;число л/м 18вт 2шт ЗЕРКАЛО
(if (not nl13)(setq nl13 0.0))(setq nl13 (+ nl13 1.0))
(if (not pr3)(setq pr3 0.0))(setq pr3 (+ pr3 1.3))
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 0.2))
; КАБЕЛЬ 3-жильн
))
(if (equal c "1_LMS2_36Z_20")(progn ;число л/м 36вт 2шт ЗЕРКАЛО
(if (not nl14)(setq nl14 0.0))(setq nl14 (+ nl14 1.0))
(if (not pr3)(setq pr3 0.0))(setq pr3 (+ pr3 1.3))
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 0.2))
; КАБЕЛЬ 3-жильн
))
(if (equal c "1_LMS4_18Z_20")(progn ;число л/м 18вт 4шт ЗЕРКАЛО
(if (not nl15)(setq nl15 0.0))(setq nl15 (+ nl15 1.0))
(if (not pr3)(setq pr3 0.0))(setq pr3 (+ pr3 1.3))
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 0.2))
; КАБЕЛЬ 3-жильн
))
(if (equal c "1_LMS4_36Z_20")(progn ;число л/м 36вт 4шт ЗЕРКАЛО
(if (not nl16)(setq nl16 0.0))(setq nl16 (+ nl16 1.0))
(if (not pr3)(setq pr3 0.0))(setq pr3 (+ pr3 1.3))
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 0.2))
; КАБЕЛЬ 3-жильн
))
(if (equal c "1_LMS4_18V_20")(progn ;число л/м 18вт 4шт встроенный
(if (not nl17)(setq nl17 0.0))(setq nl17 (+ nl17 1.0))
(if (not pr3)(setq pr3 0.0))(setq pr3 (+ pr3 1.3))
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 0.2))
; КАБЕЛЬ 3-жильн
))
(if (equal c "1_RP3")(progn ;число люстр (условно)
(if (not sv13)(setq sv13 0.0))(setq sv13 (+ sv13 1.0))
;люстра (условно) на 3 провода
(if (not kl1)(setq kl1 0.0))(setq kl1 (+ kl1 3.0));клеммы
(if (not kr1)(setq kr1 0.0))(setq kr1 (+ kr1 1.0));крюк
(if (not rp1)(setq rp1 0.0))(setq rp1 (+ rp1 1.0))
;розетки потолочные к подвесным
))
(if (equal c "1_RP4")(progn
;число люстр (условно) на 4 провода
(if (not sv14)(setq sv14 0.0))(setq sv14 (+ sv14 1.0))
;люстра (условно) на 4 провода
(if (not kl1)(setq kl1 0.0))(setq kl1 (+ kl1 4.0));клеммы
(if (not kr1)(setq kr1 0.0))(setq kr1 (+ kr1 1.0));крюк
(if (not rp1)(setq rp1 0.0))(setq rp1 (+ rp1 1.0))
;розетки потолочные к подвесным
))
(if (equal c "1_SV2")(progn ; число светильников НПО
(if (not sv2)(setq sv2 0.0))(setq sv2 (+ sv2 1.0));число НПО
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 0.5))
; КАБЕЛЬ 3-жильн
))
(if (equal c "1_SV3")(progn ; число светильников СУВ
(if (not sv3)(setq sv3 0.0))(setq sv3 (+ sv3 1.0));число СУВ
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 0.5))
; КАБЕЛЬ 3-жильн
))
(if (equal c "1_SV3P")(progn ; число светильников СУВ вправо
(if (not sv3p)(setq sv3p 0.0))(setq sv3p (+ sv3p 1.0));число СУВ
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 0.5)); КАБЕЛЬ 3-ж
))
(if (equal c "1_SV3L")(progn ; число светильников СУВ влево
(if (not sv3l)(setq sv3l 0.0))(setq sv3l (+ sv3l 1.0));число СУВ
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 0.5)); КАБЕЛЬ 3-ж
))
(if (equal c "1_SV4")(progn ; число светильников НПП
(if (not sv4)(setq sv4 0.0))(setq sv4 (+ sv4 1.0));число НПП
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 0.5)); КАБЕЛЬ 3-ж
))
(if (equal c "1_SV5")(progn ; число светильников НБО
(if (not sv5)(setq sv5 0.0))(setq sv5 (+ sv5 1.0));число НБО
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 0.5)); КАБЕЛЬ 3-ж
))
(if (equal c "1_SV6")(progn ; число светильников
(if (not sv6)(setq sv6 0.0))(setq sv6 (+ sv6 1.0));число ?
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 0.5)); КАБЕЛЬ 3-ж
))
(if (equal c "1_SV7")(progn ; число светильников НСП
(if (not sv7)(setq sv7 0.0))(setq sv7 (+ sv7 1.0));число НСП
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 0.5)); КАБЕЛЬ 3-ж
))
(if (equal c "1_E27F")(progn ;число патронов Е27F подвесной
(if (not sv8)(setq sv8 0.0))(setq sv8 (+ sv8 1.0));число Е27F
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 0.5)); КАБЕЛЬ 3-ж
(if (not kl1)(setq kl1 0.0))(setq kl1 (+ kl1 3.0));клеммы
(if (not kr1)(setq kr1 0.0))(setq kr1 (+ kr1 1.0));крюк
(if (not rp1)(setq rp1 0.0))(setq rp1 (+ rp1 1.0))
;розетки потолочные к подвесным
))
(if (equal c "1_E27H")(progn ;число патронов Е27Н настенный
(if (not sv9)(setq sv9 0.0))(setq sv9 (+ sv9 1.0));число Е27Н
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 0.5));КАБЕЛЬ 3-ж
))
(if (equal c "1_R2O")(progn ;число розеток откр. 2-пол.
(if (not r2o)(setq r2o 0.0))(setq r2o (+ r2o 1.0));число розеток
(if (not pr2v)(setq pr2v 0.0))(setq pr2v (+ pr2v 2.5)); КАБЕЛЬ 2-ж
;(if (not nu1)(setq nu1 0.0))(setq nu1 (+ nu1 1.0));число коробок У198
))
(if (equal c "1_R2O_Z")(progn;число розеток откр.заз.2-пол.
(if (not r2oz)(setq r2oz 0.0))(setq r2oz (+ r2oz 1.0));N розеток
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 2.5)); КАБЕЛЬ 3-ж
;(if (not nu1)(setq nu1 0.0))(setq nu1 (+ nu1 1.0));число кор.У198
))
(if (equal c "1_R2S")(progn ;число розеток скр. 2-пол.
(if (not r2s)(setq r2s 0.0))(setq r2s (+ r2s 1.0));число розеток
(if (not pr2v)(setq pr2v 0.0))(setq pr2v (+ pr2v 2.5));КАБЕЛЬ 2-ж
;(if (not nu1)(setq nu1 0.0))(setq nu1 (+ nu1 1.0));число кор.У198
(if (not krl48)(setq krl48 0.0))(setq krl48 (+ krl48 1));кор.Л48
))
(if (equal c "1_R2S_Z")(progn ;число розеток скр.заз.2-пол.
(if (not r2sz)(setq r2sz 0.0))(setq r2sz (+ r2sz 1.0));N розеток
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 2.5));КАБЕЛЬ 3-ж
(if (not krl48)(setq krl48 0.0))(setq krl48 (+ krl48 1.0));кор.Л48
))
(if (equal c "1_2R2S_Z")(progn ;число розеток сдвоен.скр.заз. 2-пол.
(if (not 2r2sz)(setq 2r2sz 0))(setq 2r2sz (+ 2r2sz 1));N розеток
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 2.5)); КАБЕЛЬ 3-ж
;(if (not nu1)(setq nu1 0))(setq nu1 (+ nu1 1));число коробок У198
(if (not krl48)(setq krl48 0.0))(setq krl48 (+ krl48 1));кор.Л48
))
(if (equal c "1_R3O_Z")(progn;число розеток откр.заз.3-пол.
(if (not r3oz)(setq r3oz 0.0))(setq r3oz (+ r3oz 1.0));N розеток
;(if (not nu1)(setq nu1 0.0))(setq nu1 (+ nu1 1.0));число кор.У198
(if (not pr5v)(setq pr5v 0.0))(setq pr5v (+ pr5v 2.5)); КАБЕЛЬ 5-ж
))
(if (equal c "1_PVM")(progn ;число БЛОК розеток ПЭВМ
(if (not rpvm)(setq rpvm 0))(setq rpvm (+ rpvm 1));число розеток
;(if (not nu1)(setq nu1 0))(setq nu1 (+ nu1 1));число коробок У198
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 2.5)); КАБЕЛЬ 3-ж
))
(if (equal c "1_KM")(progn ;число пускателей
(if (not nkm1)(setq nkm1 0))(setq nkm1 (+ nkm1 1));число КМ
))
(if (equal c "1_ZV")(progn ;число звонков
(if (not nzv1)(setq nzv1 0))(setq nzv1 (+ nzv1 1));число звонков
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 1.0)); КАБЕЛЬ 3-ж
))
(if (equal c "1_PKE1")(progn ;число кнопок 1 штифт.
(if (not nke1)(setq nke1 0))(setq nke1 (+ nke1 1));N кнопок 1 штиф.
(if (not pr2v)(setq pr2v 0.0))(setq pr2v (+ pr2v 2.0));КАБЕЛЬ 2-ж
;(if (not nu1)(setq nu1 0))(setq nu1 (+ nu1 1))
;число коробок У198
))
(if (equal c "1_PKE2")(progn ;число кнопок 2 штифт.
(if (not nke2)(setq nke2 0))(setq nke2 (+ nke2 1));N кнопок 2 штиф.
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 2.0));КАБЕЛЬ 2-ж
;(if (not nu1)(setq nu1 0))(setq nu1 (+ nu1 1));число коробок У198
))
(if (equal c "1_PKU")(progn ;число ПКУ.-2KE-1HL
(if (not npku3)(setq npku3 0))(setq npku3 (+ npku3 1));число ПКУ.
(if (not pr5v)(setq pr5v 0.0))(setq pr5v (+ pr5v 2.0));КАБЕЛЬ 5-ж
;(if (not nu1)(setq nu1 0))(setq nu1 (+ nu1 1));число коробок У198
))
(if (equal c "1_V1O")(progn ;число выключ.1-пол.откр.
(if (not nvo1)(setq nvo1 0.0))(setq nvo1 (+ nvo1 1.0))
;число выключ.1-пол.откр.
(if (not pr2v)(setq pr2v 0.0))(setq pr2v (+ pr2v 2.0));КАБЕЛЬ 2-ж
;(if (not nu1)(setq nu1 0.0))(setq nu1 (+ nu1 1.0));N коробок У198
))
(if (equal c "1_V1Z")(progn ;число выключ.1-пол.заз.
(if (not nvz1)(setq nvz1 0.0))(setq nvz1 (+ nvz1 1.0))
;число выключ.1-пол.заз
(if (not pr2v)(setq pr2v 0.0))(setq pr2v (+ pr2v 2.0));КАБЕЛЬ 2-ж
(if (not krl48)(setq krl48 0.0))(setq krl48 (+ krl48 1.0));кор.Л48
;(if (not nu1)(setq nu1 0.0))(setq nu1 (+ nu1 1.0));N коробок У198
))
(if (equal c "1_V2O")(progn ;число выключ.2-пол.откр.
(if (not nvo2)(setq nvo2 0.0))(setq nvo2 (+ nvo2 1.0))
;число выключ.2-пол.откр
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 2.5)); КАБЕЛЬ 3-ж
;(if (not nu1)(setq nu1 0.0))(setq nu1 (+ nu1 1.0));N коробок У198
))
(if (equal c "1_V2Z")(progn ;число выключ.2-пол.откр.
(if (not nvz2)(setq nvz2 0.0))(setq nvz2 (+ nvz2 1.0))
;число выключ.2-пол.откр.
(if (not pr3v)(setq pr3v 0.0))(setq pr3v (+ pr3v 2.5));КАБЕЛЬ 3-ж
(if (not krl48)(setq krl48 0.0))(setq krl48 (+ krl48 1.0)) ;кор.Л48
;(if (not nu1)(setq nu1 0.0))(setq nu1 (+ nu1 1.0));N коробок У198
))
(if (equal c "1_VG")(progn ;число выключ.гермет.
(if (not nvg)(setq nvg 0.0))(setq nvg (+ nvg 1.0))
;число выключ.2-пол.откр.
(if (not pr2v)(setq pr2v 0.0))(setq pr2v (+ pr2v 2.0));КАБЕЛЬ 2-ж
;(if (not nu1)(setq nu1 0.0))(setq nu1 (+ nu1 1.0));N коробок У198
))
(if (equal c "1_Y198")(progn ;число коробок У198
(if (not nu1)(setq nu1 0.0))(setq nu1 (+ nu1 1.0))))
(if (equal c "1_T1")(progn ;число стояков трубы Т26 шт
(if (not nt1)(setq nt1 0))(setq nt1 (+ nt1 1))))
(if (equal c "1_T2")(progn ;число стояков 2 трубы Т26 шт
(if (not nt2)(setq nt2 0))(setq nt2 (+ nt2 1))))
(if (equal c "1_U75")(progn ;коробка У75
(if (not nu2)(setq nu2 0.0))(setq nu2 (+ nu2 1.0))))
))
)) (setq a (entnext a))
)
(textscr)
(if (not svob) (prong (setq svob 0.0)))
(if (not svob2)(progn (setq svob2 0.0)))
(if sv2 (progn (setq svob (+ svob sv2))))
(if sv3 (progn (setq svob (+ svob sv3))))
(if sv4 (progn (setq svob (+ svob sv4))))
(if sv5 (progn (setq svob (+ svob sv5))))
(if sv6 (progn (setq svob (+ svob sv6))))
(if sv7 (progn (setq svob (+ svob sv7))))
(if sv8 (progn (setq svob (+ svob sv8))))
(if sv9 (progn (setq svob (+ svob sv9))))
(if sv3p (progn (setq svob (+ svob sv3p))))
(if sv3l (progn (setq svob (+ svob sv3l))))
(if sv13 (progn (setq svob (+ svob sv13))))
(if sv14 (progn (setq svob (+ svob sv14))))
(if nl1 (progn (setq svob (+ svob nl1))))
(if nl2 (progn (setq svob (+ svob nl2))))
(if nl3 (progn (setq svob (+ svob nl3))))
(if nl4 (progn (setq svob (+ svob nl4))))
(if nl5 (progn (setq svob (+ svob nl5))))
(if nl6 (progn (setq svob (+ svob nl6))))
(if nl7 (progn (setq svob (+ svob nl7))))
(if nl8 (progn (setq svob (+ svob nl8))))
(if nl9 (progn (setq svob (+ svob nl9))))
(if nl10 (progn (setq svob (+ svob nl10))))
(if nl11 (progn (setq svob (+ svob nl11))))
(if nl12 (progn (setq svob (+ svob nl12))))
(if nl13 (progn (setq svob (+ svob nl13))))
(if nl14 (progn (setq svob (+ svob nl14))))
(if nl15 (progn (setq svob (+ svob nl15))))
(if nl16 (progn (setq svob (+ svob nl16))))
(if nl17 (progn (setq svob (+ svob nl17))))
(if nl18 (progn (setq svob (+ svob nl18))))
(if nzv1 (progn (setq svob (+ svob nzv1))))
(if nke2 (progn (setq svob (+ svob nke2))))
(if nke1 (progn (setq svob2 (+ svob2 nke1))))
(if nvo1 (progn (setq svob2 (+ svob2 nvo1))))
(if nvz1 (progn (setq svob2 (+ svob2 nvz1))))
(if nvg (progn (setq svob2 (+ svob2 nvg))))
(if nvo2 (progn (setq svob (+ svob nvo2))))
(if nvz2 (progn (setq svob (+ svob nvz2))))
(if nkm1 (progn (setq svob (+ svob nkm1))))
(if r2o (progn (setq svob (+ svob r2o))))
(if r2oz (progn (setq svob (+ svob r2oz))))
(if r2s (progn (setq svob (+ svob r2s))))
(if r2sz (progn (setq svob (+ svob r2sz))))
(if 2r2sz (progn (setq svob (+ svob 2r2sz))))
(princ "--------------------------------------")(terpri)
(if sv13 (progn (princ " ЧИСЛО свет-ков (люстр) на 3 провода на ПЛАНЕ = ")
(princ sv13)(terpri)))
(if sv14 (progn (princ "ЧИСЛО свет-ков (люстр) на 4 провода на ПЛАНЕ = ")
(princ sv14)(terpri)))
(if sv2 (progn (princ " ЧИСЛО свет-ков НПО на ПЛАНЕ = ")
(princ sv2)(terpri)))
(if sv3 (progn (princ " ЧИСЛО свет-ков СУВ на ПЛАНЕ = ")
(princ sv3)(terpri)))
(if sv3p (progn (princ " ЧИСЛО свет-ков СУВ стрелка вправо на ПЛАНЕ = ")
(princ sv3p)(terpri)))
(if sv3l (progn (princ " ЧИСЛО свет-ков СУВ стрелка влево на ПЛАНЕ = ")
(princ sv3l)(terpri)))
(if sv4 (progn (princ " ЧИСЛО свет-ков НПП на ПЛАНЕ = ")
(princ sv4)(terpri)))
(if sv5 (progn (princ " ЧИСЛО свет-ков НБO (ванные) на ПЛАНЕ = ")
(princ sv5)(terpri)))
(if sv6 (progn (princ " ЧИСЛО свет-ков ? на ПЛАНЕ = ")
(princ sv6)(terpri)))
(if sv7 (progn (princ " ЧИСЛО свет-ков НСП на ПЛАНЕ = ")
(princ sv7)(terpri)))
(princ "----------------------------------------")(terpri)
(if nl18 (progn (princ "ЧИСЛО свет-ков ЛМС 1шт.11вт.1Р20 на ПЛАНЕ
антивандальный = ")(princ nl18)(terpri)))
(if nl1 (progn (princ "ЧИСЛО свет-ков ЛМС 1шт.18вт.1Р54 на ПЛАНЕ = ")
(princ nl1)(terpri)))
(if nl2 (progn (princ "ЧИСЛО свет-ков ЛМС 1шт.36вт.1Р54 на ПЛАНЕ = ")
(princ nl2)(terpri)))
(if nl3 (progn (princ "ЧИСЛО свет-ков ЛМС 1шт.58вт.1Р54 на ПЛАНЕ = ")
(princ nl3)(terpri)))
(if nl4 (progn (princ " ЧИСЛО свет-ков ЛМС 1шт.9вт.1Р54 на ПЛАНЕ = ")
(princ nl4)(terpri)))
(if nl5 (progn (princ " ЧИСЛО свет-ков ЛМС 2шт.36вт.1Р54 на ПЛАНЕ = ")
(princ nl5)(terpri)))
(if nl6 (progn (princ " ЧИСЛО свет-ков ЛМС 2шт.58вт.1Р54 на ПЛАНЕ = ")
(princ nl6)(terpri)))
(if nl7 (progn (princ " ЧИСЛО свет-ков ЛМС 4шт.18вт.1Р54 на ПЛАНЕ = ")
(princ nl7)(terpri)))
(if nl8 (progn (princ " ЧИСЛО свет-ков ЛМС 2шт.18вт.1Р20 на ПЛАНЕ = ")
(princ nl8)(terpri)))
(if nl9 (progn (princ " ЧИСЛО свет-ков ЛМС 2шт.36вт.1Р20 на ПЛАНЕ = ")
(princ nl9)(terpri)))
(if nl10 (progn (princ " ЧИСЛО свет-ков ЛМС 2шт.58вт.1Р20 на ПЛАНЕ = ")
(princ nl10)(terpri)))
(if nl11 (progn (princ " ЧИСЛО свет-ков ЛМС 4шт.18вт.1Р20 на ПЛАНЕ = ")
(princ nl11)(terpri)))
(if nl12 (progn (princ " ЧИСЛО свет-ков ЛМС 4шт.36вт.1Р20 на ПЛАНЕ = ")
(princ nl12)(terpri)))
(if nl13 (progn (princ " ЧИСЛО свет-ков ЛМС 2шт.18вт.1Р20 Зерк.на ПЛАНЕ = ")
(princ nl13)(terpri)))
(if nl14 (progn (princ " ЧИСЛО свет-ков ЛМС 2шт.36вт.1Р20 Зерк.на ПЛАНЕ = ")
(princ nl14)(terpri)))
(if nl15 (progn (princ " ЧИСЛО свет-ков ЛМС 4шт.18вт.1Р20 Зерк.на ПЛАНЕ = ")
(princ nl15)(terpri)))
(if nl16 (progn (princ " ЧИСЛО свет-ков ЛМС 4шт.36вт.1Р20 Зерк.на ПЛАНЕ = ")
(princ nl16)(terpri)))
(if nl17 (progn (princ " ЧИСЛО свет-ков ЛМС 4шт.18вт.1Р20 Встр.на ПЛАНЕ = ")
(princ nl17)(terpri)))
(princ "--------------------------------------------")(terpri)
(if nzv1 (progn (princ "ЧИСЛО звонков = ")(princ nzv1)(terpri)))
(if nkm1 (progn (princ " ЧИСЛО пускателей (без учета провода и коробок) = ")
(princ nkm1)(terpri)))
(if nke1 (progn (princ " ЧИСЛО кнопок 1-штифтовых ПКЕ откр.уст. = ")
(princ nke1)(terpri)))
(if nke2 (progn (princ " ЧИСЛО кнопок 2-штифтовых ПКЕ откр.уст. = ")
(princ nke2)(terpri)))
(if npku3 (progn (princ " ЧИСЛО постов ПКУ на 2КЕ и 1HL откр.уст. = ")
(princ npku3)(terpri)))
(princ "--------------------------------------------")(terpri)
(if sv8 (progn (princ "ЧИСЛО ПАТРОНОВ (кухни,коридор)подвесн.на ПЛАНЕ F = ")
(princ sv8)(terpri)))
(if sv9 (progn (princ "ЧИСЛО ПАТРОНОВ (туалетных)настенный на ПЛАНЕ H = ")
(princ sv9)(terpri)))
(princ "--------------------------------------------")(terpri)
(if nvo1 (progn (princ "ЧИСЛО однополюсных выключателей откр.уст. = ")
(princ nvo1)(terpri)))
(if nvz1 (progn (princ "ЧИСЛО однополюсных выключателей скр .уст. = ")
(princ nvz1)(terpri)))
(if nvo2 (progn (princ "ЧИСЛО сдвоенный выключателей откр.уст. = ")
(princ nvo2)(terpri)))
(if nvz2 (progn (princ "ЧИСЛО сдвоенный выключателей скр .уст. = ")
(princ nvz2)(terpri)))
(if nvg (progn (princ " ЧИСЛО герметичных выключателей = ")
(princ nvg)(terpri)))
(princ "-------------------------------------------")(terpri)
(if rpvm (progn (princ "ЧИСЛО БЛОКОВ розеток ПЭВМ откр.уст. = ")
(princ rpvm)(terpri)))
(if r2o (progn (princ "ЧИСЛО розеток 2-пол.откр.уст. = ")
(princ r2o)(terpri)))
(if r2oz (progn (princ "ЧИСЛО розеток 2-пол.откр.уст.заземл.конт. = ")
(princ r2oz)(terpri)))
(if r2s (progn (princ "ЧИСЛО розеток 2-пол.скр .уст. = ")
(princ r2s)(terpri)))
(if r2sz (progn (princ "ЧИСЛО розеток 2-пол.скр.уст.заземл.конт. = ")
(princ r2sz)(terpri)))
(if 2r2sz (progn (princ "ЧИСЛО розеток сдвоен.2-пол.скр.уст.заземл.конт.= ")
(princ 2r2sz)(terpri)))
(if r3oz (progn (princ "ЧИСЛО розеток 3-пол.с заземл.конт. = ")
(princ r3oz)(terpri)))
(if rpr1 (progn (princ "ЧИСЛО розеток потолочных на ПЛАНЕ = ")
(princ rpr1)(terpri)))
(princ "-------------------------------------------")(terpri)
(if krl48 (progn (princ "ЧИСЛО коробок (Л48) на ПЛАНЕ = ")
(princ krl48)(terpri)))
(if nu1 (progn (princ "ЧИСЛО коробок разветвит.ПОТОЛОЧ.(У198) на ПЛАНЕ = ")
(princ nu1)(terpri)))
(if nu2 (progn (princ " ЧИСЛО коробок разветвит.ПОТОЛОЧ.(У75) на ПЛАНЕ = ")
(princ nu2)(terpri)))
;(princ "-------------------------------------------")(terpri)
(if kl1 (progn (princ "ЧИСЛО клемм КЛ-2,5 на ПЛАНЕ = ")
(princ kl1)(terpri)))
;(princ "-------------------------------------------")(terpri)
(if kr1 (progn (princ "ЧИСЛО крюков для подвеса светильников на ПЛАНЕ = ")
(princ kr1)(terpri)))
(if nt1 (progn (princ " ЧИСЛО стояков по 1 трубе в шт. T26 на ПЛАНЕ = ")
(princ nt1)(terpri)))
(if nt2 (progn (princ " ЧИСЛО стояков по 2 трубе в шт. T26 на ПЛАНЕ = ")
(princ nt2)(terpri)))
(princ "----------------------------------------------")(terpri)
;(princ " КАБЕЛЬ ДЛЯ ВЕРТИКАЛКИ ")(terpri)
;(princ "---------------------------------------------")(terpri)
;(if pr2 (progn (princ " ДЛИНА кабеля 2-жильного ГОРИЗ. = ")
; (rinc pr2)(terpri)))
;(if pr3 (progn (princ " ДЛИНА кабеля 3-жильного ГОРИЗ. = ")
; (princ pr3)(terpri)))
;(if pr4 (progn (princ " ДЛИНА кабеля 4-жильного ГОРИЗ. = ")
; (princ pr4)(terpri)))
;(if pr5 (progn (princ " ДЛИНА кабеля 5-жильного ГОРИЗ. = ")
; (princ pr5)(terpri)))
;(princ "------------------------------------------")(terpri)
;(if pr2v (progn (princ " ДЛИНА кабеля 2-жильного ВЕРТИК. = ")
; (princ pr2v)(terpri)))
;(if pr3v (progn (princ " ДЛИНА кабеля 3-жильного ВЕРТИК. = ")
; (princ pr3v)(terpri)))
;(if pr4v (progn (princ " ДЛИНА кабеля 4-жильного ВЕРТИК = ")
; (princ pr4v)(terpri)))
;(if pr5v (progn (princ " ДЛИНА кабеля 5-жильного ВЕРТИ. = ")
; (princ pr5v)(terpri)))
;(princ "----------------------------------------")(terpri)
(setq klprr (* 15.0 svob))(setq klprr2 svob2)
(setq klpr3 (* klprr 0.35))(setq klpr4 (* klprr 0.1))
(setq klpr5 (* klprr 0.05))
(princ "-----------------------------------------")(terpri)
(princ " КАБЕЛЬ ПО ПЛАНУ ")(terpri)
(princ "-----------------------------------------")(terpri)
(if klpr2 (progn (princ "ДЛИНА кабеля 2-жильного ПО ПЛАНУ РАСЧЕТНОЕ = ")
(princ klpr2)(terpri)))
(if klpr3 (progn (princ "ДЛИНА кабеля 3-жильного ПО ПЛАНУ РАСЧЕТНОЕ = ")
(princ klpr3)(terpri)))
(if klpr4 (progn (princ "ДЛИНА кабеля 4-жильного ПО ПЛАНУ РАСЧЕТНОЕ = ")
(princ klpr4)(terpri)))
(if klpr5 (progn (princ "ДЛИНА кабеля 5-жильного ПО ПЛАНУ РАСЧЕТНОЕ = ")
(princ klpr5)(terpri)))
(princ "-----------------------------------------")(terpri)
(setq a nil b nil c nil a1 nil)(gc)
)
Copyright © Сайт поддержки пользователей САПР