1 - 2010

Построение САПР проектной организации

Евгений Шумков, Виталий Федоров

В случае крупных проектов с большим количеством объектов необходимо создавать много однотипных чертежей, по сути копируя тома из одного проекта в другой. Также зачастую возникает возможность использования уже наработанного потенциала, то есть применения схем одного проекта в другом. Но для решения двух этих задач нужны средства автоматизации. В данной статье мы покажем, как это сделать с помощью широко распространенного ПО и несложного встроенного языка программирования в нем.

Структура БД

Сначала опишем структуру БД, в которой хранятся все данные по проекту (проектам).  Основными таблицами данной БД являются:

  • Objects — объекты (шапка);
  • Objects_params — объекты (табличная часть);
  • Projects_passports — данные проектов;
  • Volumes — тома проектов;
  • Volumes_stuff — листы томов;
  • Equipments — оборудование;
  • Equipment_packages — пакеты оборудования;
  • Logic — логика размещения пакетов;
  • другие справочные таблицы.

В качестве примера покажем таблицу Volumes_stuff (рис. 1).

Таким образом, в БД у нас есть все данные, необходимые для создания чертежей, теперь опишем метод программного создания чертежей.

Рис. 1. Таблица состава томов

Рис. 1. Таблица состава томов

Места расположения оборудования

Целесообразно выделить пять секторов размещения оборудования: дверь, сторона, потолок, окно и угол (рис. 2).

Для каждого из них перечисляются варианты расположения оборудования относительно сектора, например для двери: на_двери; внутри_слева; внутри_справа; над; снаружи_слева; снаружи_справа. Таким образом, мы также захватываем пространство вне помещения, например «снаружи, слева от двери».

Рис. 2. Секторы расположения оборудования

Рис. 2. Секторы расположения оборудования

Полезно также ввести следующие атрибуты размещения оборудования: количество на объем; количество на площадь; минимальное количество и т.д. В случае если одно и то же оборудование присутствует на нескольких чертежах тома,  вводится атрибут «Якорь». При ненулевом его значении необходимо запоминать координаты оборудования при первом выводе на чертеж. В то же время при увеличении дополнительных атрибутов код усложняется за счет введения большого количества операторов if — else и/или case.

Пакетный способ

Поскольку обычно на одном чертеже размещается оборудование только одного подраздела тома, рационально ввести понятие «пакет оборудования». Например, для подраздела «Сети охранной сигнализации» тома «ОПС» пакет оборудования может быть следующий: «РИП­12», «С2000­4», «ИП­212­58», «ИПР­ЗСУ», «КомКоробка», «УКЩ­1».

Рационально занести в БД наиболее используемые проектным отделом пакеты оборудования. Обычно пакет состоит из небольшого количества оборудования — 4­8 единиц. В качестве примера размещения оборудования пакетным способом приведем часть таблицы Logic  из созданной САПР (рис. 3).

Рис. 3. Таблица логики расположения оборудования

Рис. 3. Таблица логики расположения оборудования

Алгоритм размещения оборудования

В нашем случае в процессе построения САПР алгоритм размещения оборудования эволюционировал в следующий (укрупненно):

1. Выбор и подсчет количества оборудования по секторам.

2. Размещение посекторно, то есть сначала размещаем то, что находится возле двери, потом то, что в углах, и т.д.

3. Связь оборудования — при размещении оборудования заполняется массив связей оборудования.

При размещении оборудования желательно ввести матрицу помещения МП[Длина/Х; Ширина/Х], в которой отмечается, занят или нет данный участок помещения. При этом Х равен максимальному размеру оборудования или исходя из количества оборудования на листе (подсчет на первом этапе). Данная матрица предотвращает наложение одного оборудования на другое. То есть если координаты оборудования попадают в ячейку МП, не равную нулю, то делаем смещение по координатам на заданный шаг.

Для оборудования следует предварительно создать значки в средстве вывода чертежей, например для MS Visio это «Наборы элементов», и сопоставить ID значка с ID оборудования в БД.

Программная архитектура

Приведем последовательность запуска функций, отвечающих непосредственно за создание чертежа:

1. Формирование нового листа из заданного шаблона (то есть листа с заполненной рамкой и заполненной неизменяемой частью — экспликацией и др.).

2. Инициализация параметров помещения.

3. Отрисовка помещения с окнами и дверьми.

4. Считывание необходимых пакетов оборудования, подсчет оборудования.

5. Размещение оборудования поочередно по секторам с последующим связыванием.

При этом отметим, что сам код черчения не сложный. Например, в случае вывода в MS Visio из VBA MS Access код будет не сложнее приведенного ниже:

Vis.ActiveWindow.Page.DrawRectangle X1, Y1, X1 + dlina * Scale, Y1 + shirina * Scale

Основным моментом будет расчет координат.  Отметим, что в БД должны быть указатели того, как ориентированы в пространстве двери, окна, длина и т.д.

А вот последовательность запросов в случае массовой генерации чертежей по большому количеству объектов:

SELECT * FROM Objects… \\ выбираемобъекты

SELECT * FROM Volumes ….. \\ выбираем тома

SELECT * FROM VOLUME_STUFF \\ выбираем листы в каждом томе

Повторное использование проектов

Отметим два варианта повторного применения готовых проектов:

  • использование уже созданных пакетов оборудования — пакеты обычно статичны в течение года и более;
  • применение наиболее близкого из ранее разработанных к поступившему проекту.

Подробнее остановимся на втором из них — найти наиболее похожий проект можно несколькими способами. Например, используя метод «ближайшего соседа» или метод прецедентов. Во втором случае необходимо создание псевдоэкспертной системы, то есть нужно ввести тэги, определяющие параметры проекта, например «сфера деятельности заказчика», «основной поставщик оборудования» и т.д. В качестве тэгов также логично применять этаж, размещение помещений на этаже, материал здания, линейные параметры помещения, окон, дверей и т.д. Ядром экспертной системы прецедентов в последнее время все чаще выступают нейронные сети, в частности очень органично использование сети Кохонена, суть которой — классификация. То есть на вход подаются параметры поступившего проекта, на выходе — номер разработанного ранее, наиболее близкого к поступившему. Применение нейронной сети не панацея, но в данном случае это позволяет сократить время на разработку модуля поиска близкого проекта. Поиск также можно реализовать большим количеством запросов и условий обработки результатов запросов.

Дальнейшее развитие системы

В проектах нередко необходимо чертить также смежные помещения или целый этаж. Для этого нужен графический конструктор и введение некоторых дополнительных сущностей, например «патрубки кондиционеров выводить наружу здания».

Выводы

Таким образом, мы показали, что при использовании несложных средств за небольшое время можно добиться значительной автоматизации проектной организации. В качестве средства разработки рекомендуется применять VBA, в качестве БД — MS Access. Для самих чертежей: в случае стадии проектирования «П» — MS Visio, в случае стадии «Р» — Autodesk AutoCAD. Данная система «САПР ПД» используется в проектном департаменте ЗАО «Орбита» (г.Краснодар).


Евгений Шумков

Канд. техн. наук, доцент КубГТУ (г.Краснодар).

Виталий Федоров

Технический директор ЗАО «Орбита» (г.Краснодар).

САПР и графика 1`2010