САПР бесплатно! Сделай САПР своими руками!


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

к.т.н. доцент КубГТУ Шумков Евгений Александрович

Технический директор ЗАО «Орбита» (граснодар) Федоров Виталий Юрьевич

Аннотация

В данной статье показан простой способ создания САПР Проектной организации, позволяющий с минимальным участием проектировщиков создавать чертежи проектов средней сложности и повторно использовать наработки уже созданных проектов.

 

Введение

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

 

Структура БД

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

·       Objects – объекты (шапка);

·       Objects_params – объекты (табличная часть);

·       Projects_passports – данные проектов;

·       Volumes – тома проектов;

·       Volumes_stuff – листы томов;

·       Equipments – оборудование;

·       Equipment_packages – пакеты оборудования;

·       Logic – логика размещения пакетов;

·       другие справочные таблицы.

 

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

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

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

 

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

Целесообразно выделить 5 секторов размещения оборудования: Дверь, Сторона, Потолок, Окно и Угол (Рисунок 2).

room.JPG

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

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

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

 

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

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

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

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

logic.JPG

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

 

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

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

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

2-й шаг: размещение посекторно (то есть сначала размещаем то, что находится возле двери, потом то, что находится в углах и т. д.).

3-й шаг: связь оборудования (при размещении оборудования заполняется массив связей оборудования).

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

Для оборудования следует предварительно создать значки в средстве вывода чертежей, например для 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. Данная система «САПР ПД» используется в Проектном департаменте ЗАО «Орбита» (г. Краснодар).

 

*  Статья опубликована в журнале «САПР и графика» (www.sapr.ru ) №1 2010.

 

**  возможна консультация по созданию подобных систем. Пишите apsheronka@mail.ru



; ; ; ;


Контактная информация

КубГТУ
Краснодар
ул. Красная 135
Телефон: (861) 255 15 09
Fax: -
E-mail: sneveld@rambler.ru