Трансляция геометрических моделей двухконтурных
геодезических оболочек
А.Я. Лахов
Геодезическими оболочками (куполами) принято называть семейство применяемых в строительстве видов оболочечных покрытий, построение геометрической формы которых основывается на приеме разбивки сферической поверхности геодезическими линиями (в данном случае линиями большого круга - центральными сечениями сферы).
Указанный вид покрытий хорошо зарекомендовал себя в строительной практике 50 - 70-х годов.
Одноконтурными называются геодезические оболочки, которые могут состоять из различного вида плоских или криволинейных пластин (элементов разбивки), образуя приближающуюся к сфере поверхность. Двухконтурные геодезические оболочки состоят из двух взаимосвязанных поверхностей, одна из которых может иметь стержневую структуру.
Первые публикации о практическом применении геодезических оболочек принадлежат профессору МАРХИ М.С. Туполеву (1951г.) и американскому инженеру Б.Фуллеру (1952г.). Исследования относились к геометрической проблеме построения разбивки геодезических куполов на элементы, представляющей большую трудоемкость математических вычислений, катастрофически возрастающей по мере увеличения перекрываемого пролета здания.
Последующие разработки (В.В Ермолаев, И.В. Ломбардо, А.Н. Косолапов, В. Е. Михайленко, Г.Н. Павлов и мн. др.) завершились созданием системы автоматизированного построения геометрических моделей одноконтурных и двухконтурных геодезических оболочек на платформе АгсЫСАО [1,2] на уровне выбора из библиотеки вида разбивки, получения визуального образа оболочки и документации на элементы разбивки купола.
Ведутся работы по применению триангуляции для разбивок поверхностей [3]. Однако при этом не охвачен не менее трудоемкий этап проектирования -расчет оболочки на прочность и устойчивость.
Для включения этих операций в общий цикл автоматизированного проектирования геодезических оболочек могут быть использованы современные мощные специализированные программные комплексы (Nastran, Ansys и др.). Однако для этого требуется конвертирование геометрической модели оболочки в понятный расчетному комплексу формат. Для этого можно использовать различные подходы, к которым можно отнести:
1) использование универсальных форматов обмена информацией для CAD и CAE систем (ACIS, IGES, STEP). Например, универсальный ACIS формат может хранить информацию о геометрических моделях во внешних файлах, включающих типы хранимых данных, подтипы и ссылки;
2) использование специализированных программных средств визуализации и конвертации 3D моделей в CAD форматах, к которым можно отнести CADLook, 3D Shop ModelScan;
4) использование специализированных программ конверторов 3D моделей. Например, семейства программ трансляторов 3DTranslateIt, пригодных для различных направлений трансляции геометрических моделей, транслятора IGEStoSTEPConverter;
5) использование специализированных библиотек визуализации и конвертации 3D моделей. В качестве примера можно привести коммерческую библиотеку SMLIB и библиотеку с открытым кодом OPENCASCADE [4,5].
Наиболее простым подходом являлся бы экспорт/импорт геометрических моделей геодезических куполов из ArchiCAD в систему Patran/Nastran с использованием встроенной поддержки универсальных CAD форматов обмена информацией. Однако этот метод оказался непригодным для имеющейся версии Patran, поэтому проектировщик и расчетчик
вынуждены были использовать STL формат и далее вручную редактировать параметры сложных многоэлементных конструкций.
Поэтому была поставлена задача разработки специального транслятора, преобразующего геометрическую модель из программы ArchiCAD в расчетную модель в формате программы расчета конструкций [68].
С помощью первой версии этой программы можно было выполнить экспорт геометрической модели одноконтурной геодезической оболочки [9]. При применении этого транслятора к двухконтурной геодезической оболочке была выявлена проблема потери одномерных элементов (стержней). Данная проблема была решена заменой одномерных элементов (lin) на трехмерные (slab), для чего потребовалось выполнение модификации библиотечных объектов ArchiCAD геодезических оболочек. Для различения элементов, представляющих разные контуры геодезической оболочки, было использовано назначение им различных материалов.
В качестве программного средства реализации был выбран Visual Basic 2008, использующий возможности современной платформы Microsoft Net Framework.
Для разработки транслятора двухконтурных геодезических оболочек следовало построить программу, принимающую на вход содержание файла в формате OBJ, т.е. геометрическую модель геодезического купола, и выдающую файл сессии Patran, предназначенный для генерации модели геодезического купола в базе данных Patran.
Файл OBJ состоит из последовательности полигонов, разделенных пробелами. Весь поток заканчивается символом eof. Каждый полигон состоит из последовательности номеров вершин, разделенных пробелами. Номер вершины ссылается на ее координаты X, Y, Z в декартовой системе координат. Требуемый выходной файл должен содержать вызовы функций Patran Command Language (PCL), генерирующих соответствующие поверхности и отрезки. Данная программа - транслятор является
преобразователем, принимающим на вход последовательность полигонов, а на выходе выдающем последовательность вызовов функций PCL, генерирующих поверхности и отрезки в базе данных Patran. Для ее разработки был использован синтаксически ориентированный подход: выделение структуры входной последовательности символов и выполнение семантических действий при распознавании определенных нетерминалов [10].
Для построения транслятора необходимо включить в алгоритм семантические правила, выполняемые по ходу распознавания. На каждом шаге распознавания выполняются именно те семантические действия - Y0-Y9 , которые соответствуют данному этапу (см. табл. 1).
Алгоритм решения задачи предусматривает инициализацию входящих массивов и открытие файла на чтение (блок 2 - см. Рис. 1). Далее организуется цикл для определения количества точек. Если конец файла не обнаружен, то предусматривается переход в тело цикла (блок 3), чтение очередной строки (блок 4), если строка содержит координаты точки (блок 5), то происходит увеличение счетчика количества точек (блок 6).
Таблица 1.
Семантические правила
0 L=0.Dim X(),Y(),Z() Open F1 FOR INPUT AS #1 I=0 Параметры принимают начальные значения
1 L++ Очередная точка
2 REDIM X(L),Y(L),Z(L) CLOSE #1 I=0 OPEN F1 FOR INPUT AS #1 Переопределение динамического массива
3 I++ X(I)=X,Y(I)=Y,Z(I)=Z Считывание координат точек в массив
OPEN F2 FOR OUTPUT AS#2 Открытие файла
4 G1=FALSE G2=FALSE для вывода
G1=TRUE Читаем первую
5 группу
PRINT "Poligon" Создать точки,
6 "Create Point " отрезки, поверхность,
"Create Curve " удалить точки, отрезки
"Create Surface "
"Delete Point "
"Delete Curve "
PRINT "Line" Создать 2 точки,
7 "Create Point 2" "Create Curve " "Delete Point 2" отрезок, удалить точки
8 G2=TRUE Вторая группа
CLOSE #1 Закрытие файлов
9 CLOSE #2
Далее выполняется переопределение массивов и открытие файла на чтение (блок 7). Затем организуется цикл для считывания координат точек. Если конец файла не обнаружен, то предусматривается переход в тело цикла (блок 8). В теле цикла читается очередная строка (блок 9). Если строка содержит координаты точки (блок 10) , то выполняется запись координат в массивы (блок 11).
Затем выполняется переход к считыванию информации о полигонах и производится открытие файла на запись (блок 12). Если все полигоны считаны (блок 13), то осуществляется переход к закрытию файлов (блок 26). В противном случае - считывание очередной строки файла (блок 14).
Рис. 1 Блок-схема программы Translator v.2.0
Если она относится к первому контуру, то выполняется чтение информации о первой группе полигонов (блок 16). Если все полигоны считаны (блок 17), то осуществляется переход к закрытию файла (блок 26). В противном случае выполняется считывание индексов вершин, формирующих очередной полигон (блок 18). Если строка файла относится к первому контуру (блок 19), то проверяется описывает ли она полигон (блок 20). Если это треугольник, то выполняется запись в выходной файл треугольной поверхности. Если это четырехугольник, то осуществляется запись в выходной файл четырехугольной поверхности. Аналогично для пятиугольника и для шестиугольника (блок 21).
Далее выполняется переход к считыванию информации о втором контуре геодезической оболочки (блоки 22, 23). В соответствующей ветви алгоритма выполняется определение полигона и запись в выходной файл стержня (блок 25). При завершение работы программы производится закрытие файлов (блок 26).
Выводы:
Создана программа-транслятор геометрических моделей двухконтурных геодезических куполов и оболочек из программы архитектурного проектирования АгсЫСАО в программный комплекс конечно-элементного расчета Ра1хап/Мав1;гап, которая обеспечивает автоматизированное построение геометрической модели расчетной схемы двухконтурной геодезической оболочки и позволяет выполнять исследования данных типов строительных конструкций.
Литература:
1. Павлов Г.Н. Геодезические купола - проектирование на современном уровне [Текст] / Г.Н. Павлов, А.Н. Супрун // САПР и графика. - М., 2006. - С. 25-27.
2. Павлов Г.Н. Автоматизация архитектурного проектирования геодезических куполов и оболочек [Текст] : Монография / Г.Н. Павлов, А.Н.
Супрун, Нижегор. гос. архитекур.-строит. ун-т. - Н.Новгород: ННГАСУ, 2006, -162 с.
3. Замятин А.В. Алгоритм построения развертки поверхности. [Электронный ресурс] / А.В. Замятин, Е.А. Замятина // Инженерный вестник Дона. - 2012. -№4 - Режим доступа: http://www.ivdon.ru/magazine/archive/n4p2y2012/1233 (доступ свободный) -Загл. с экрана. - Яз. рус.
4. Rappoport A. An architecture for universal CAD data exchange.//SM'03, June 16-20, 2003, Seattle, Washington, USA, - P.266-269.
5. M.P. Bhandarkar, B. Downie, M. Hardwick, R. Nagi. Migrating from IGES to STEP: one to one translation of IGES drawing to STEP drafting data.//Computers in industry, Volume 41, Issue 3, May 2000, P.261-277.
6. Супрун А.Н. Автоматизация архитектурного проектирования и прочностного расчета геодезических оболочек [Текст] / А.Н. Супрун, Г.Н. Павлов, А.Я. Лахов, А.К Ткаченко. //Приволжский научный журнал. - Н. Новгород, ННГАСУ, 2008 - № 23 (7), - С. 15-19.
7. Лахов А.Я., Супрун А.Н. SVN - трехмерные графические интерфейсы на основе DirectX и VC# для визуализации результатов расчетов безопасности строительных конструкций [Текст] //Приволжский научный журнал. - Н.Новгород, ННГАСУ, 2010.-№2, - С.10 - 15.
8. Лахов А.Я. Программное обеспечение для стереовизуализации результатов конечно-элементного моделирования [Электронный ресурс] // Инженерный вестник Дона. - 2013. -№1 - Режим доступа: http://www.ivdon.ru/magazine/arhive/n1y2013/1501 (доступ свободный) - Загл. с экрана. - Яз. рус.
9. Лахов А.Я. Транслятор геометрических моделей одноконтурных геодезических оболочек ArchiCAD - Patran [Текст]// КОГРАФ 2012. Материалы научно-технической конференции. - Н. Новгород, 2012, - С.155-159.
10. Карпов Ю.Г. Теория и технология программирования. Основы построения трансляторов [Текст] - СПб., БХВ-Петербург, 2005. - 272 с.: ил.