ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ РАСЧЕТНО-ГРАФИЧЕСКОГО МОДЕЛИРОВАНИЯ В ИНЖЕНЕРНЫХ ЗАДАЧАХ

Болотов В.П.
Комплекс включает: систему подготовки графических данных единого формата "ЕФ", систему векторной машинной графики "Вектор" и систему растровой машинной графики СG (транспьютерный вариант реализации ТСG) и несколько модулей проблемно-ориентированного назначения (подсистема "Аппарат конструктора" для проектирования судовых линий, подсистема "Теоретический чертеж" (ТН) для проектирования теоретического чертежа корпуса судна и т.д. Комплекс работает под управлением программы "Монитор графического диалога", обеспечивающей ведение графического диалога, создание сценария диалога, обработку ошибок, выполнение простейших расчетов и программирование на уровне пользователя, не являющегося квалифицированным программистом.

Комплекс организован по модульному принципу. Это обусловлено, во-первых, необходимостью оптимального использования ограниченного объема оперативной памяти РС IBM и, во-вторых, выполнением условия открытости системы.

Система "Вектор" состоит из следующих модулей (структура ).

Vec_Аппарат конструктора (Vec_АК) - модуль генерирования плоских и пространственных линий с поддержкой их в БД "Аппарата конструктора" (БДАК).

Vec.1PS - модуль задания простейших аналитических поверхностей (сферы, эллипсоида, конуса, цилиндров и их отсеков), а также поверхностей, моделируемых через точечный каркас по линейному, квадратичному, кубическому и сплайновым законам.

Vec_Line - модуль автономного задания и исследования различных аналитических, лекальных и составных линий как в самом модуле, так и в задаваемых пользователем отдельных файлах. В данный модуль включена возможность распознавания пространственных линий по их плоским проекциям, представленным в формате .pcx. Использование данных линий другими модулями возможно с помощью их включения в качестве базовых или через специальным образом организованные файлы обмена данными.

VEC_R - модуль формирования поверхностей вращения и винтовых. В качестве образующей линии используются линии из набора самого модуля и линий, генерируемых модулями Vес_Line и Vec_AK  системы "Вектор" или системой AutoCAD.

VEC_СК - модуль генерирования кинематических и специ-ального контура поверхностей по направляющей линии, задаваемой отрезком прямой или сплайном. В данный модуль включены известные методы формирования поверхностей по методу "Специального контура" (СК).

VEC_Gran - модуль рациональной линейной, квадратичной и кубической параметризации поверхностей по линиям контура, генерируемым модулем, или по линиям, генерируемым в БДАК или системой AutoCAD. Перечисленные методы моделирования являются  традиционными и применяются во многих известных геометрических системах мировой и отечественной практики. Однако использование гиперключевого метода, явного, полупараметрического и параметрического способов заданий поверхностей, а также подключения неявных управляющих функций в перечисленные выше методы делает данный модуль более гибким при проектировании судовых форм.

VEC_Kf - модуль построения двумерных  и трехмерных сеток и построения над ними различных конформных рельефов и топологических преобразований. Есть возможность "чтения" сеток (массива точек в формате .rlf), сгенерированных пользователем на любом программируемом языке, или "вызова" сеток из библиотеки программ системы "Вектор", представляющей вариант библиотечного набора, во-первых, всех способов моделирования геометрических форм, реализованных в различных модулях, и, во-вторых, набор своих уникальных алгоритмов, не реализованных ни в одном из модулей системы "Вектор".

Vec.Solid - модуль задания простейших фигур - тел (параллелепипеда, различных многогранников, конуса, шара, цилиндра и т.п.) - и решения с этими телами задач позиционного и метрического характера, а также задания трехмерных фигур через точечный каркас по линейному, квадратичному, кубическому и сплайновым законам.

Vec_S.R - модуль генерирования трехмерных фигур путем вращения или винтового перемещения граней.

Vec_S.CK - модуль генерирования тел  по методу специального контура (например, мгновенного преобразования от куба к гладким формам и далее к шару) движения граней по направляющим линиям (отрезка прямой или сплайновой кривой). В данном модуле расширены возможности методов "СК" (известных в большей степени для моделирования двумерных поверхностей) в плане  генерирования трехмерных фигур как тел. Данный подход наиболее удобен для проектирования и расчетов гребных винтов и турбинных лопаток.

Vec_Сon - модуль трансверсального формирования трехмерных фигур по их граням. Данный модуль построен по идеологии модуля Vec_Gran, но для трехмерного случая.

Vec_Gip.S - модуль формирования четырехмерных объектов в трехмерном пространстве (образно это можно представить как преобразование во времени одного объекта к другому по тому или иному закону) и трехмерных тел как гиперсечений этих четырехмерных фигур.

Vec_Optim - модуль, обеспечивающий визуализацию (и расчет) целевых функций (в стандартном варианте размерности до пяти) в самых различных разнесенных ортогональных и аксонометрических проекциях комплексного чертежа. Особенно полезной является возможность автоматического построения изолиний ЦФ, что позволяет определять зоны предпочтительного решения и зоны Парето в многокритериальных задачах. Есть возможность непосредственного обращения из данного модуля к программам генерирования ЦФ, что позволяет последовательным "сужением" области ограничений "подойти" к точке минимума или максимума ЦФ.

Формирование ЦФ выполняется на языке СИ по специальной  программе-трафарету (буквально двух - трех образцов) и для пользователя не представляет затруднений. Здесь же в модуле можно проверить различные топологические преобразования четырехмерных форм. Гиперсечения таких форм записываются в специальный файл и затем могут быть использованы в твердотельной системе CG для формирования сцен динамического преобразования объектов.

Организующим элементом всех модулей является монитор графического диалога /МГД / со встроенным в него языком "Калькулятор". Монитор обеспечивает диалог пользователя с пакетами прикладных программ, прием и расшифровку директив, контроль правильности задания данных, запуск процедур и переход по диаграмме состояний. Задание директив осуществляется с помощью функциональной клавиатуры, джойстика или светового пера.

Язык систем, с помощью которого можно составлять комбинации из математических предложений, директив графической системы и обращений к программам ПНП, определяет современный пользовательский инструмент интерактивного расчетно-графического программирования в прикладных задачах.

Во всех модулях программного комплекса на основе транслятора YACC реализован язык пользователя "Калькулятор", который представляет собой расширение языка программирования СИ. Язык "Калькулятор" ориентирован на эксплуатацию системы пользователем, не обладающим квалификацией  программиста.

Язык и графические возможности системы Вектор предоставляют пользователю удобный инструмент владения методами геометрического программирования: элементами векторной и линейной алгебры, аналитической геометрии, комплексных чисел, дифференциального исчисления, оптимизации и т.д. В системе отобран минимум возможностей языка СИ и максимум графических возможностей, которых достаточно не только для решения инженерных задач, но и для проработки научных идей. При этом весь ход интерактивного процесса решения задач оформляется в библиотеку макрокоманд, которые могут быть в дальнейшем использованы в других задачах.

Кроме того, в среде системы геометрического комплекса, поддерживаемого монитором МГД, можно выполнять следующие действия:
- обращение к программам /смешанное программирование/, написанных на языках СИ, ФОРТРАН, Бейсик;
- использование массивов [x,y,z], полученных средствами данной системы или другими, например, системой CorelDraw;
- выполнение расчетов по программам пакета научных исследований SYS.SPPLIB, специально адаптированного для ПЭВМ из ЕС ЭВМ;
- возможность редактиpования макpокоманд без выхода из системы;
- возможность записи pассчитываемых паpаметpов  в специальный файл с тем, чтобы этими pасчетами можно было воспользоваться в следующем сеансе pаботы;
- возможность визуализации рисунков полученных в других модулях комплекса и в других системах, в частности, АutoCad и CorelDraw;
- возможность чтения рисунков, получаемых в других системах и распознавания линий, снимаемых с помощью сканера.

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

Другим компонентом комплекса расчетно-графического программирования является система твердотельного моделирования CG. Эта система обеспечивает моделирование реалистических сцен и объектов по геометрическим примитивам самой системы, а также поверхностям, генерируемым модулями системы "Вектор". Связь между системами CG и модулями многомерного моделирования системы "Вектор" осуществляется на уровне обмена файлами. Модули Vec_gran и Vec_con системы "Вектор" подключены непосредственно к системе СG, образуя новые модули CG_Vec_Gran и CG_Vec_Con. Такая структура ПО позволяет наиболее эффективно использовать возможности векторного и растрового моделирования.

Связь комплекса с системой AutoCAD обеспечивает возможность использования сервиса этой системы для оформления чертежей моделирования объектов и вывода их на плоттер.
Предусмотрена возможность передачи информации в модуль Vec_Calc о геометрических образах из любого модуля системы "Вектор" (или автономной программы) в виде массива точек для расчета различных дифференциально-геометри-ческих (например, расчет площади, объема, построение эквидистанты кривой или поверхности, построение геодезических линий и т.п.) характеристик моделируемых форм, а также для получения всевозможных преобразований и изображений с выводом их на плоттер.

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

Системы Вектор, CG, АК, "Теоретический чертеж" имеют организацию данных на уровне СУБД и файловую.