В статье представлена простая методика разработки некоммерческого программного обеспечения проектной организации и некоторые способы применения современных алгоритмических языков для выполнения этой разработки.
Основной акцент сделан на возможном отказе, в долгосрочной перспективе, от приспосабливания коммерческих разработок к процессу выпуска проектной документации в пользу разработки, накопления и использования специализированных программных инструментов, образующих производственную цепочку, с предсказуемым по лимиту времени объемом выпускаемой продукции, независимо от квалификации исполнителя.
Данная статья является ознакомительной для инженеров и выпускников технических учебных заведений, разрабатывающих собственное прикладное программное обеспечение; в публикации представлены текущие задачи, которые были решены в процессе проектирования с использованием Windows и AutoCAD.
Необходимость автоматизации повторяющихся или трудоемких вычислительных процессов и технологических последовательностей возникает из задачи повышения рентабельности и конкутентоспособности проектного производства.
Процесс автоматизации проектных работ должен приводить ко все более совершенным методам расчета и конструирования в инженерном деле, но это отдельный вид работ, не относящийся непосредственно к строительному проектированию.
Составляющей процесса автоматизации является реализуемая на основе шаблонов алгоритмизация нормативной документации, существовавшей и вновь разрабатываемой, а также ее частей, имеющих логические и аналитические зависимости.
На сегодняшний момент автоматизирована небольшая часть нормативных документов, и текущие производственные задачи не всегда входят в эту часть.
Инженерные задачи, решаемые в процессе строительного проектирования с использованием строительных норм и правил (СНиП), обычно обеспечиваются исходными данными трех типов: информационнологической (1), аналитической (2), геометрической (3).
Информационнологическая составляющая — это текстовая часть СНиП, представляющая определенный набор условий, при которых физические и математические зависимости применимы к проектируемым объектам, то есть выполняются формулы, прописанные в аналитической составляющей.
Аналитическая составляющая — это математические зависимости, описывающие количественную связь между физическими параметрами с их допустимыми величинами, размерностями и коэффициентами. Иными словами — это формулы, представленные в СНиП.
Геометрическая составляющая — это геометрические размеры и формы тел, их взаимное расположение и связи между телами, при которых формулы аналитической составляющей применимы. Геометрическая составляющая определяется в процессе проектирования.
Данные типа (1) и (2) в СНиП логически связаны как таблицы и формулы, которые используют данные из этих таблиц. Алгоритмизация подобных связей на основе единого шаблонареализована в модуле для расчета стационарной защиты рентгеновских кабинетов (рис. 1а), где используется одна формула и выборки из девяти таблиц. В данном случае объектом алгоритмизации является процесс поиска, интерполяции/экстраполяции данных из таблиц и вычисление конечного результата, доступного для вывода в Excel.
Вполне закономерен вопрос: зачем создавать программу для одной формулы и нескольких таблиц? Это зависит от ваших возможностей и поставленных задач.
Имея возможность разработать в MVS (Microsoft Visual Studio) либо в других инструментах разработчика шаблон Windows Forms, несложно применить его в целях вычисления конкретной части СНиП, СанПиН или других нормативных документов. Это позволяет поручить выполнение выборки из таблиц и арифметические вычисления компьютеру, не привлекая к рутинной работе инженерный персонал, либо передать эту операцию специалисту, не имеющему опыта подобной работы, предоставив ему данный модуль.
Рис. 1
Другой пример использования единого шаблона показан на рис. 1б, где алгоритмизации подлежат выборки из 37 таблиц Постановления ПМО 713/30.
Единого шаблона Windows Forms вполне достаточно, чтобы в полной мере описать вычислительные процессы большинства нормативных документов (СНиП), изменяя названия окон ввода данных, вычислительную часть кода и справочную часть, представленную в Webбраузере шаблона (под шаблоном понимается некоторый неизменный набор элементов вводавывода Windows и переменная часть кода, реализующая формулы вычисления).
Таким способом происходит формирование пакета прикладных программ проектной организации в части непосредственно возникающих текущих задач, поскольку применение единого шаблона к новой задаче вполне укладывается в сроки ее выполнения.
После накопления достаточного количества решенных задач на шаблоне Windows Forms, приложив небольшие усилия, формируем из них пакет прикладных программ как приложение Win32 или Win64. Весь процесс создания пакета прикладных программ по времени занимает небольшой срок — годполтора. За это время на основе единого шаблона можно создать до 50 отдельных прикладных задач и объединить их в приложение с доступным интерфейсом.
Действия, подлежащие алгоритмизации, то есть не требующие принципиальных инженерных решений и возникающие в процессе проектирования, — это выборки из графиков, представленных в СНиП в виде растровых графических файлов, вариантные вычисления, вычисления или анализ однотипных данных для большого количества объектов (анализ отдельных групп конечных элементов по результатам работы программ МКЭ), построение 2D, 3Dобъектов методами вычислительной геометрии, итерационные вычисления т.п.
Например, в СНиП имеется достаточно графиков, которые вполне могут быть применимы при проектировании, но они представлены в растровом виде, что затрудняет их использование.
Для хранения подобных графиков с возможностью последующего программного доступа алгоритмизируем выборку данных из них путем, показанным на рис. 2.
ab
v
Рис. 2
Здесь исходный растровый файл (рис. 2а), вспомогательные построения в AutoCAD, выполненные по подложке из растрового файла (рис. 2б), и пользовательская команда «Графикв*.txt» (рис. 2в), выполняющая непосредственно описательное представление графиков в виде файла Сплайны.txt (рис. 3).
Рис. 3
График описан координатным способом в осях X,Y с соответствующими им значениями начала и конца осей и тремя сплайнами третьей степени, AutoCAD выполняет вспомогательную функцию получения текстового файла с координатами осей и параметрами сплайнов.
Данных в этом текстовом файле достаточно, чтобы использовать график в любой прикладной программе, применяя алгоритм получения координат точек пересечения сплайна с лучами X, Y для снятия с графиков величин F1, F2, F3. Инструмент вычисления координат пересечения представляет собой отдельный модуль математической обработки текстового файла для работы в программном или ручном режимах, формат хранения исходных данных — *.txt.
Алгоритмизация построений из 2D в 3D основана на командах, которые не описаны в популярных книгах по использованию AutoCAD, где, как правило, предлагается выполнять 3Dчертеж при помощи координатнографического устройства. Алгоритмизацию 2D разберем ниже в параметрических построениях, а 3Dпостроения этажа здания показаны на рис. 4.
Рис. 4
Здесь представлена 2Dсхема этажа с абрисами сечений стен, плиты перекрытия, отверстий и соответствующий этой схеме 3Dобъем, который создается выполнением прикладной команды DPFA_VOLUMEC, пункта меню Все (рис. 5).
Рис. 5
Рис. 6
Прикладная команда состоит из меню и параметров управления (рис. 6). В коде используются команды SetXData, GetXData, без применения которых данные построения не представляются возможными.
Команда применяется для подсчета объемов строительного материала, который обычно получают по площадям абрисов стен, плиты, высоте этажа, толщине плиты за вычетом всех входящих отверстий.
Вопрос: для каких целей делать программное обеспечение, если получить результат можно путем выполнения некоторого количества арифметических действий?
Как правило, два человека, выполняющие подсчет объемов, а именно проектировщик и строитель, не получают одинаковых результатов, и данная команда была разработана для того, чтобы исключить в вычислениях человеческий фактор. Результат ее работы однозначен, скорость выполнения действия увеличивается в разы (под действием здесь понимаются трудозатраты на выполнение всех подсчетов).
Дальнейшее использование 3Dобъектов из рис. 4 заключается в построении всего здания в автоматизированном режиме, которое производится модулем, показанным на рис. 7, применяя уже построенные этажи. Для этого процесса не требуется переносить какиелибо объекты вручную, достаточно задать одну точку построения в координатах X, Y, Z в окне ввода и уровни этажей. Дальнейшие построения будут выполнены по заданным высотам и точке вставки.
Рис. 7
Алгоритмизация графических построений (черчения) основана на создании справочников Dictionary и использовании их при параметрических построениях, а также применении любых параметров, описывающих в аналитическом виде геометрические объекты, в том числе недоступные в интерактивном диалоге AutoCAD — «Параметризация».
Что представляют собой справочники базы данных чертежа *.dwg? В общем случае — набор текстовых строк. Для создания справочника необходимо выполнить разработанную вами прикладную команду (рис. 8), задать параметры справочника и OK. Пример диалогового окна параметров для создания справочника анкеровки в базе данных чертежа представлен на рис. 9а, а последующего вызова — на рис. 9б.
Рис. 8
Отличие команды DPFA_WORKMODES от исполняемых программ состоит в том, что эта команда выполняется однократно и создает справочник Dictionary, который хранится в пользовательском формате в базе данных чертежа.
Справочник присутствует в составе базы данных чертежа до тех пор, пока пользователь не сочтет нужным удалить его; к справочнику имеется доступ (см. диалоговое окно Выбор данных).
Количество пользовательских справочников неограниченно; состав их определяется прикладными задачами; структура справочника, доступ к элементам и их обновление определяется пользователем и его специализированной прикладной программой, приведенной, например, на рис. 8.
Использование справочника в геометрических построениях происходит, как правило, в автоматическом режиме, например командой, показанной на рис.10, но возможно извлечь данные в виде таблицы и сохранить в пространстве «MODEL»: таблица для A400, представленная на рис. 9в.
ab
v
Рис. 9
Рис. 10
На рис. 11в представлена часть чертежа с объектами, выполненными в автоматическом режиме черчения, которые создаются выбором пункта меню Отверстие команды DPFA_TASKSHARING, диалоговым окном Выбор режима работы (рис. 11а), где назначается нормативный документ, по которому будет выполняться чертеж, и выбором строки справочника (см. рис. 9б) «В25_А400» из справочника анкеровки СП 521012003 для бетона В25 и арматуры А400 с последующим назначением арматуры в диалоговом окне (рис. 11б).
В данном случае справочник уже должен быть создан в базе данных чертежа для применения параметрического 2Dпостроения. Дальнейшие действия заключаются только в указании точек на чертеже, где будет выполнено построение отверстия, обрамления, сечения и вставлена спецификация и эскизы.
abv
Рис. 11
Чтобы получить объект чертежа, необходимо и достаточно ввести в диалоговое окно 11 параметров, включая выбор диаметров обрамления низа/верха и торца, а также типа расчетного сопротивления.
Такое комплексное параметрическое построение не выполняется стандартными инструментами AutoCAD («Параметризация»), но именно такое построение объектов чертежа способно обеспечить повышение производительности труда при выпуске рабочей документации.
Объектом чертежа в данном случае называется логически завершенная часть чертежа.
Параметрические построения, представленные на рис. 911, — это шаги в направлении создания конструкторского языка проектирования, где объекты чертежа с параметрическими зависимостями не требуется чертить из элементарных геометрических объектов, а необходимые чертежные виды физического объекта будут выполняться при указании его технического наименования (балка, плита, пилон и т.п.), геометрических размеров и иных параметров.
В заключение необходимо обратить внимание на отличие учебнопроизводственных алгоритмов от профессиональных.
Учебнопроизводственный алгоритм работы (УПА) — проектноконструкторская деятельность с применением навыков работы в AutoCAD, полученных из «Справочной документации», и использованием базового набора инструментов, разработанного компанией Autodesk. Основой работы с использованием УПА является черчение элементарных геометрических фигур типа линии, окружности, эллипса и т.п. и составление из них объектов чертежа (см. ранее данное определение).
Профессиональный алгоритм — это выполнение построений специализированными инструментами, разработанными для решения конкретной задачи с оптимальной степенью укрупнения, требуемой последовательностью производимых действий, оптимальной сложностью связей между параметрами для создания объектов чертежа, максимальным исключением человеческого фактора, а также использование неграфических инструментов типа SetXData, GetXData, Dictionary, позволяющих выполнить весь лист чертежа с минимальными затратами ручного труда.
Специализированные профессиональные инструменты, разрабатываемые под AutoCAD коммерческими организациями, ориентированы на расширенное использование возможностей программирования, например proxyобъекты или методы ускорения ручного черчения. Подход автора другой: он основан на более широком использовании возможностей математики и, в частности, вычислительной геометрии с применением стандартного набора геометрических фигур AutoCAD и параметризации построений без применения объектов типа proxy и т.п., которые, как известно из практики, являются помехой при работе над чертежами объекта проектирования нескольких конструкторов или организаций в связи с отсутствием или наличием у них коммерческого приложения.
В каком объеме нужна вычислительная математика для программ, показано на примере вычисления объема котлована.
Стандартное упрощенное вычисление объема котлована — вычисление объема усеченной пирамиды, повторяющееся с разными комбинациями исходных данных, — это учебнопроизводственный алгоритм.
Профессиональный алгоритм вычисления того же объема — это анализ планировочных особенностей расположения котлована на рельефе и использование возможностей вычислительнографической системы, с которой вы работаете в данном конкретном случае, а именно AutoCAD.
Пример расположения некоего котлована показан на рис. 12.
Рис. 12
Рис. 13
Для вычисления его объема требуются программные инструменты. Создадим их (рис. 13).
Основные инструменты: Участок, Откос, Приямок, вспомогательные: Интерполяция, дополнительные: Картограмма, Среднее. Они используются для вычисления объема котлована по высотным отметкам площади участка, объема склона по высотным отметкам вдоль линии верхней и нижней границ склона, вычисления приямка как обычной усеченной пирамиды, сгущения высотных отметок, вычисления картограммы земляных работ и упрощенного вычисления объема по участку соответственно.
Все линейные объекты на чертеже представляются в виде любой комбинации сплайнов, линий и полилиний.
На рис. 14 показана принципиальная схема работы инструмента Откос: полоса между двумя кривыми с известными высотными отметками заполняется элементарными объемами, сумма которых вычисляется. Полоса фиксируется поперечными отрезками для визуализации выполненного вычисления.
Рис. 14
Рис. 15
На рис. 15 показана принципиальная схема работы инструмента Участок: участок, ограниченный набором линий, заполняется элементарными объемами, ограниченными по высоте плоскостями триангуляции Делоне, и вычисляется сумма объемов. Процедуры Участок и Откос повторяются до полного вычисления всего котлована.
Эти инструменты отличаются от УПА точностью вычислений, скоростью исполнения работ и ясностью выполняемого процесса.
Набор инструментов всегда может быть дополнен новым инструментом, который может потребоваться в случае неучтенных вариантов исходных данных.
Формирование пакета прикладных программ проектной организации, в данном конкретном случае для работы в AutoCAD, производится в два этапа:
- Накопление простых прикладных задач.
- Оформление этих задач как приложения с помощью любых предназначенных для этого средств, например MVS.
Средств для реализации геометрических, алгебраических и иных задач в AutoCAD достаточно: Lisp, VBA, C++, C#, VB.Net и среда выполнения VLisp с ActiveX and VBA Reference.
Первоначальное накопление прикладных задач производится за полторадва года — в зависимости от количества исполнителей и сложности задач. К примеру, параметрическая вычислительная геометрия и справочники в базе чертежа *.dwg достаточно трудоемки для исполнения и требуют несколько больших трудозатрат.
В дальнейшем уже реализованные методы построения и решения технических задач должны совершенствоваться в направлении упрощения производственного процесса, когда любое регулярно повторяющееся действие будет иметь свой программный инструмент, а выходные данные одного вычислительного модуля по умолчанию будут входными для следующего (принцип, реализованный в ANSYS).
В статье не затронут вопрос об интерфейсе пользователя, поскольку обсуждалась инженерная составляющая прикладного программного обеспечения, а не его оформительская часть, для которой в среде AutoCAD достаточно средств иного вызова команд, например через выпадающие меню, панели или реакторы действий пользователя, а не только с использованием командной строки.
Необходимо отметить, что вкладка «MODEL» чертежа *.dwg AutoCAD — это реализованное фирмой Autodesk трехмерное пространство, для работы с которым необходимо и достаточно знаний в объеме курса математики высшего технического учебного заведения, требуемых для выполнения геометрических построений в программном режиме с некоторой специализацией в области сплайнов и сплайнповерхностей.
Программное обеспечение организации, разрабатываемое под AutoCAD, в зависимости от поставленных задач различается трудоемкостью и в некоторых случаях требует работы нескольких специалистов с fourletter Registered Developer Symbol, а также библиотеки математических программ для работы с геометрическими объектами в трехмерном пространстве «MODEL» без их непосредственного создания.