Комплекс программ отображения геометрической информации включает в себя программы преобразования входной информации в команды управления устройствами отображения. В него входят:
программы-трансляторы, преобразующие исходную информацию в форму, удобную для машинной обработки;
программы графических операций, к которым обращаются оттранслированные проблемные программы (примерами графических операций являются перевод чертежа или его части в другой масштаб, нанесение штриховки в разрезе или сечении, формирование размера с нанесением выносных и размерных линий, стрелок и т. д.);
программы создания архива графических документов, которые позволяют использовать типовые графические фрагменты в процессе работы проблемных программ с целью включения их в изображение объекта; естественно, что и полученный чертеж объекта в целом может быть помещен в графический архив для последующего неоднократного использования;
проблемные программы, обеспечивающие воспроизведение чертежа или его фрагмента;
управляющая программа, осуществляющая все связи между программами и управление всей чертежно-графической подсистемой.
Сформированная проблемными программами информация содержит все данные, необходимые для автоматического отображения. Эти данные можно непосредственно преобразовать в программы управления устройствами отображения, но это делать нецелесообразно по следующим причинам:
- В решении различных задач одни и те же программы графических операций реализуются в различной последовательности, и только после выполнения последней программы информацию необходимо преобразовать в команды графопостроителя или дисплея.
- Результат может отображаться на нескольких графических устройствах, имеющих различные системы команд управления. Например, сформированный чертеж можно сначала отобразить на экране дисплея, визуально проверить, а затем дать указание вычертить рабочий чертеж на графопостроителе.
- Отображение может производиться по частям или полностью, непосредственно после формирования графического элемента или с любой задержкой во времени.
- Набор программ графических операций и системы команд устройств отображения могут со временем изменяться. При этом комплекс проблемных программ машинной графики не должен подвергаться коренным изменениям.
- Взаимодействие ЭВМ с различными графическими устройствами является сложным процессом, в котором наряду со специфическими для каждого устройства действиями есть много общих черт.
В связи с этими соображениями результаты работы проблемных программ записываются на некотором промежуточном языке, который еще не является языком команд устройств отображения, но позволяет при необходимости быстро преобразовать данные в команды управления графопостроителя или дисплея. Это преобразование осуществляется программным блоком постпроцессоров. Кроме программы постпроцессора существует программный блок связи ЭВМ с устройствами отображения. Именно эти программы приходится в большей или меньшей степени дорабатывать при включении в подсистему графических устройств новых средств отображения. Все остальные программные средства являются инвариантными по отношению к комплексу технических средств машинной графики. Такая структура программного обеспечения делает ее гибкой и быстро приспосабливаемой к составу конкретной САПР.
Следует отметить, что общесистемное программное обеспечение машинной графики базируется на общесистемном программном обеспечении САПР (см. § 3.4).
Из сказанного следует, что общесистемное программное обеспечение машинной графики должно включать либо специальные пакеты программ, либо специализированные языки для описания и ввода графической информации с соответствующими трансляторами.
В СССР среди графических пакетов программ наибольшее распространение получили PAD—ЕС [101], ФАП-КФ [99], ОГРА [102], ГРАФОР [103], графический пакет ЕС ЭВМ [41] и ряд других, а среди языков — ГРАФИК [104] и ИНКАНЭЛ [105].
Пакет программ PAD-ЕС используется в качестве основы для создания прикладных программ машинной графики применительно к ЕС ЭВМ.
С учетом универсального характера функциональных операций и необходимости их реализации на разных графопостроителях пакет PAD-ЕС разделен на два внутренних пакета:
пакет программ аппаратно-ориентированного уровня — базисный пакет (PADB);
пакет программ функционального уровня — функциональный пакет (PADF).
В настоящее время функционируют пакеты PADB для чертежных автоматов типа ЕС-7054 и др.
Пакет PADB включает 9, а пакет PADF — 29 основных подпрограмм, кроме них имеются еще внутренние подпрограммы. Все программы, за исключением некоторых служебных, написаны на ФОРТРАН-4.
Пакеты имеют простую структуру, т. е. в них нет специально выделенной управляющей программы. Если пользователь хочет расширить или сузить функции пакетов, он должен составить новую ФОРТРАН-программу и включить ее в состав пакета, а ненужную — исключить. Таким образом, пакет PAD-EC является открытым для расширения со стороны пользователей.
Пакет PADB предназначен для выполнения операций формирования графических элементов чертежа (линий, символов), управления параметрами чертежа и подготовки программы управления графопостроителем. Программы, включенные в состав пакета, выполняют в основном служебные функции:
ZBEGIN — «открытие» чертежа с типизацией параметров (т. е. начало программы формирования чертежа);
ZENDE — «закрытие» чертежа;
ZPANEU — изменение параметров в специальном массиве (изменение системы координат, номера пера, масштабного коэффициента и т, д.);
ZPAR — чтение значения элемента массива PAR с номером PAR и его использование в арифметических операциях;
ZPUNKT — вычерчивание совокупности точек;
ZLINIE— вычерчивание соединения точек отрезками прямых и вычерчивание отрезков;
ZKURVE — интерполяция вычерчивания кривой, заданной множеством точек;
ZKRIB — вычерчивание дуги окружности;
ZTEXT — построение и вычерчивание алфавитно-цифровых символов.
Программы пакета формируют и выводят из ЭВМ перфоленту — программу управления графопостроителем; программа может быть введена из ЭВМ непосредственно в графопостроитель, минуя перфорацию.
Обращение к программам пакета осуществляется с помощью оператора CALL. К двум программам ZBEGIN и ZENDE можно обращаться только из программ пользователя, ко всем остальным программам пакета можно обращаться из программ пользователя и из программ PADF.
При составлении программы все операторы обращения к PADB и PADF записываются между CALL ZBEGIN и CALL ZENDE. Программы пакета PADB реализуют внутри пакета следующие связи: со своими внутренними подпрограммами; с другими программами базисного уровня.
Программы пакета PADF предназначены для автоматического выполнения операций, наиболее часто встречающихся при формировании в ЭВМ графических представлений результатов машинного расчета и проектирования. Все операции выполняются в двухмерном пространстве (на плоскости). Исходные данные для них формируются программами пользователя и передаются через входную систему данных пакета соответствующим программам.
Результаты выполнения операций являются исходными данными для программ пакета PADB. Вычерчивание результатов операций осуществляется только с помощью базисного пакета.
По выполняемым функциям 29 программ пакета PADF разделены на пять групп:
- Программы построения графических элементов и унифицированных геометрических фигур: отрезок прямой; прямоугольник; многоугольник; семейство параллельных отрезков; система координат с градуировкой осей; окружность, дуга окружности, эллипс, дуга эллипса.
- Программы построения контуров различных типов (замкнутых или незамкнутых):
контур из отрезков прямых по известным опорным точкам;
контур из отрезков прямых и дуг окружностей по известным опорным точкам;
контуры из отрезков прямых, дуг и интерполированных кривых.
- Программы штриховки произвольных связных и несвязных областей.
- Программы построения различных размеров: линейного размера;
размера радиуса или диаметра; углового размера.
- Программы преобразования и черчения сложных графических изображений, состоящих из линий различных типов и текстовых фрагментов:
вычерчивание заданного изображения; линейное перемещение изображения; вращение изображения; построение симметричного изображения; перевод изображения в необходимый масштаб.
В пакет включена программа, позволяющая в удобной унифицированной форме печатать сообщение об ошибках, которые автоматически распознаются в программах пакета PADF.
Обращение к программам пакета также осуществляется с помощью оператора CALL. Выходная система данных пакета PADF включает множество совокупностей параметров, необходимых для обращения к пакету PADB, и некоторые общие параметры.
Программы пакета PADF в процессе выполнения заданной графической операции обращаются к внутренним подпрограммам, другим программам пакета PADF или программам базисного пакета PADB.
Пошаговая обработка графической информации позволяет пользователям разделить процесс счета задач графического документирования на несколько этапов, что дает возможность:
накапливать в архиве BAZIS, организованном на магнитной ленте или пакете дисков, информацию о графическом документе, полученную на уровне обращений к программам пакета PADB;
накапливать в архиве ITEKAN информацию о графическом документе иа уровне команд графопостроителя;
реализовывать задачи большого объема, так как значительно экономится память ЭВМ;
обнаруживать и исправлять ошибки до получения графического документа. Запись данных в архив BAZIS осуществляется на уровне обращений к программам базисного пакета PADB. Таким образом, при работе с архивом BAZIS счет задачи разбивается на два независимых этапа в соответствии со схемой, приведенной на рис. 6.4.
На первом этапе проектирования в памяти присутствуют проблемные прикладные программы, необходимые для графического оформления счета программы пакета PADF и переходного пакета. На втором этапе работают программа разгрузки архива и программа пакета PADB.
Пакет переходных программ написан на языке ФОРТРАН-4 и играет роль унифицированного программного интерфейса для связи пакетов PADF и PADB. Его выходом является структура данных в виде переменных и массивов с определенными именами фактических параметров. Программы переходного пакета сведены в библиотеку объектных модулей.
Рис. 6.4. Схема функционирования и взаимодействия пакетов PADF и PADB и архива BAZIS
Пакет ФАП-КФ ориентирован на решение задач моделирования плоских и пространственных механизмов, расчеты размерных цепей на изображении детали, создание алгоритмов вывода конструкторской документации, подготовки программ для станков с ЧПУ, раскроя материала и других задач, решаемых путем геометрического моделирования.
Операторы пакета ФАП-КФ являются синтаксически правильными конструкциями ФОРТРАНА. Результаты их работы — координаты различных точек вычерчиваемой фигуры и топология их соединения — хранятся в двух специальных массивах, длина которых должна быть заранее определена.
Особенностью пакета ФАП-КФ является то, что его параметрами могут быть, кроме арифметических переменных, геометрические переменные, которые организованы в массивы той размерности, которую допускает базовый транслятор с ФОРТРАНа. Элементами одного массива одновременно -могут быть геометрические переменные любых типов. Другой важной особенностью пакета ФАП-КФ является возможность с помощью операторов, содержащих геометрические переменные, производить различные действия: перенос, вращение, объединение нескольких геометрических объектов под одним именем, построение эквидистантных и локальных кривых, вычисление геометрических характеристик, аппроксимация кривых, построение линий пересечения поверхностей, сечений, проекций и т. д.
Для тех же целей, что и ФАП-КФ, разработан пакет программ ОГРА. Принципиальное различие двух пакетов заключается лишь в методе программной реализации. Все операторы пакета ОГРА оформлены как макрокоманды АССЕМБЛЕРа. Однако возможность обращения к операторам пакета из ФОРТРАН-программ обеспечивается.
Наибольшее распространение в последнее время получил пакет программ ГРАФОР, который является универсальным пакетом, поскольку может работать с любым графическим устройством при любом способе его подключения к ЭВМ. Пакет ГРАФОР представляет собой набор подпрограмм на ФОРТРАНе, за исключением программы связи с операционной системой ЭВМ и графическим устройством, написанной на АССЕМБЛЕРЕ. Следовательно, для перехода на работу с новым типом устройства или новой версией ОС достаточно изменить только одну программу, которая как бы находится в острие перевернутой пирамиды (рис. 6.5). На следующем уровне находятся программы, реализующие графические утилиты: перевод пера в указанную точку, вычерчивание вектора, дуги, произвольного текста, различных маркеров и т. д. На этих программах базируется второй уровень программ пакета, предназначенный для отображения плоских изображений. Примером таких программ являются программы разметки числовых осей в различных системах координат, программы аффинных преобразований на плоскости, программы штриховки и экранирования произвольной плоской области и т. д.
К третьему уровню пакета ГРАФОР относятся программы, реализующие алгоритмы проекционной машинной графики: аффинные преобразования в трехмерном пространстве, вычерчивание пространственных кривых, вычерчивание изолиний функций двух переменных и др.
Рис. 6.5. Структура пакета ГРАФОР
Характеристика | ГРАФОР | | ФАП-КФ | ГП | PAD-EC |
Тип | Совокупность обращений к подпрограммам | Расширение ФОРТРАНА | Совокупность обращений к подпрограммам | Совокупность обращений к подпрограммам |
Технические | Графопостроители: ЕС-7051, ЕС-7052, ЕС-7053, ЕС-7054, АП-7252, ИТЕ- КАН, АТЛАС Графические дисплеи: ЕС-7064, СИГДА | Графопостроители: ЕС-7051, ЕС-7052, ЕС-7053, ЕС-7054 | Графопостроители: ЕС-7051, ЕС-7052, ЕС-7053, ЕС-7054 | Графопостроители: ИТЕКАН-2, ИТЕКАН-3, ИТЕКАН-4, ЕС-7054 |
Назначение | Является интерфейсом между прикладной программой и конкретным графическим устройством | Ориентирован на автоматизацию геометрического моделирования и инженерно-графических работ | Позволяет создать программы на ФОРТРАНЕ для получения различных графиков, рисунков, чертежей | Является средством автоматизации программирования графической информации |
Характерные | Функциональное разнообразие | Параметрами функций и подпрограмм могут быть арифметические и геометрические переменные | — | — |
Основные понятия | Страница — прямоугольное поле на бумаге или экране дисплея, в пределах которого должны размещаться области для графиков, тексты и другие графические элементы | Элементарные геометрические объекты: точка, прямая, окружность, отрезок прямой, дуга окружности, кривая второго порядка, вектор | Графический элемент | Графический элемент |
Характеристика | ГРАФОР | ФАП-КФ | ГП | PAD-ЕС |
Структура | Простая | Простая | Простая | Простая |
Количество операторов | 330 | 156 | 40 | 43 |
Наименование групп операторов | Инициализации; изображения прямой линии; вывода текста, чисел, маркеров; изображения многоугольников; изображения дуг, спиралей, секторов кругового кольца; изображения эллипсов, дуг эллипсов; линейного преобразования следа пера; экранирования, штриховки; геометрических вычислений; геометрических построений; построения графиков; аппроксимации и сглаживания функций; восполнения функций двух переменных; построения плоских изображений трехмерных объектов; завершения | Инициализации; определения точек; определения прямых; определения окружностей; определения отрезков; определения дуги кривой; определения ломаных и лекальных кривых; формирования состава геометрических объектов; логические операторы; построения эквидистантны; формирования геометрических комплексов и анализа структуры геометрического объекта; симметрии, поворота, переноса, масштабирования; вычисления параметров соприкосновения; геометрических объектов; вычисление линейных и угловых величии; топологического анализа; вывода графической информации; завершения | Базисные; общего назначения для научно- технических задач; чертежные | Инициализации, базисные; функциональные |
Наличие средств моделирования | Нет | Есть | Нет | Нет |
В табл. 6.1 приведены сравнительные характеристики рассмотренных графических пакетов. Эти характеристики наглядно отражают функциональную направленность и возможности пакетов, общими чертами которых являются связь с процедурноориентированным языком ФОРТРАН и функционирование в среде операционной системы ЕС ЭВМ.
Наряду с графическими пакетами программ для ЕС ЭВМ начали создавать графические языки. Отличием графических языков от обычных языков программирования является наличие в них средств для описания специфических графических действий, таких как аффинное преобразование изображений, определение аппарата проецирования, формирование структур графических данных и др. По такой схеме построен язык ГРАФИК, имеющий синтаксис, подобный синтаксису языка АЛГОЛ. Ключевыми словами языка являются названия графических утилит: точка, прямая, кривая и т. д. При помощи операторов, аналогичных АЛГОЛУ (перехода, цикла и др.), можно описать различные геометрические фигуры и их сочетания.
Специальные графические средства разрабатываются для мини-ЭВМ, АРМ на базе мини-ЭВМ и т. д. Эти средства, так же как и для ЕС ЭВМ, являются расширением языка ФОРТРАН и предназначены для взаимодействия программы пользователя на ФОРТРАНЕ с графическими устройствами. В табл. 6.2 приведены основные характеристики следующих пакетов:
графического языка программиста и конструктора ДОС АРМ (ГЯПК ДОС АРМ);
графических операций ОС РАФОС;
системы программирования графического диалога ДИФОР;
базовой интерактивной графики DISPL2.
Основные принципы развития машинной графики получили свое отражение в международном стандарте GKS, который начал разрабатываться в 1976 г. в ФРГ, а с 1979 г. — международной группой ISO на международном уровне.
GKS аппаратно- и проблемно-независимая система, которая описывает функции определенных процедур для графической переработки данных, а также соответствующих структур в форме, не зависящей от языков программирования.
GKS обеспечивает следующее:
графический ввод — вывод на одном или нескольких графических рабочих местах;
растровую графику;
временное хранение графической информации в аппаратно-независимой форме во время выполнения прикладной программы;
постоянное хранение графической информации в портативном файловом формате;
линейные преобразования между системами пользователя и устройств;
возможности корректировки способа действия прикладных программ для использования возможностей имеющихся рабочих мест.
Реализация GKS требует относительно много времени и памяти ЭВМ. Однако, поскольку с развитием вычислительной техники эти характеристики играют все меньшую роль, комплексное применение стандартизированных графических систем становится экономически более оправданным.
Характеристика | ГЯПК ДОС АРМ | Графические операции ОС РАФОС | ДИФОР | DISPL3 |
Тип | Совокупность обращений к подпрограммам | Совокупность обращений к подпрограммам | Совокупность обращений к подпрограммам | Совокупность обращений к подпрограммам |
Технические | УПГИ | ПКГИО, УПГИ, графопостроитель АП-7251 | УПГИ | УПГИ, ЭПГ-400, графопостроитель АП-7251, АП-7252, ПКГИО |
Назначение | Интерфейс между прикладной программой и УПГИ; формирование изображений | Интерфейс между прикладной программой и УПГИ; формирование изображений | Интерфейс между прикладной программой и УПГИ; формирование изображений | Интерфейс между прикладной программой и графопостроителем или графическим дисплеем. |
Характерные | — | — | Наличие режима «окна» | Наличие режима «окна» |
Основные понятия | Графический элемент, узел | Точка, сектор, строка символов, подызображение | Графический элемент, фрагмент | Примитив, сегмент, поверхность обзора, атрибут, текст, окно обзора, уровень |
Структура | Простая | Простая | Простая | Простая |
Наименование | Формирования, перекодировки, обмена, ввода чисел | Масштабирования, вычерчивания графических элементов | Формирования элементов, организации диалога, определения изображения | Формирования примитивов, работы с сегментами |
Наличие средств моделирования | Нет | Нет | Нет | Нет |