Тема.9. « Компьютерная инженерная графика»
9.1. Интерактивные системы машинной графики
Задача интерактивной системы машинной графики при выполнении вывода заключается в преобразовании информации из исходного высокоуровневого представления предметной области в представление команд графических устройств вывода. Её можно представить виде схемы:
рис.1. Обобщенная модель интерактивной системы
При выполнении ввода, наоборот, требуется преобразование низкоуровневой информации от физических устройств ввода в высокоуровневую информацию на языке предметной области.
Можно выделить два основных способа построения средств вывода:
системы с графическим языком высокого уровня, включающим в себя развитые средства для обработки графической и геометрической информации, и
системы с расширенным языком, которые, как правило, представляют тот или иной алгоритмический язык высокого уровня, расширенный средствами обработки графической и геометрической информации.
На практике - это пакет подпрограмм, реализующих требуемые функциональные возможности.
Ввод информации обеспечивается с помощью языка диалога. Диалог обычно осуществляется в виде команд, содержащих числовые значения, имена, координаты, произвольный текст. Выполняя ввод команд пользователь работает с тем или иным набором вводных устройств, определяемых лексикой языка - алфавитно-цифровой и функциональной клавиатурами, шаровым указателем (track ball), планшетом (tablett) и т.д.
9.1.2. Графические языки высокого уровня
Имеется два подхода к построению систем программирования с языками машинной геометрии и графики высокого уровня.
Первый подход состоит в создании автономного языка, второй - в необходимой модификации того или иного исходного алгоритмического языка. Позволяет создать язык, наиболее соответствующий специфике работы с графической и геометрической информацией, но только в том классе приложений, для которых предназначался язык.
Основная область приложений таких языков
автоматизация программирования для оборудования с ЧПУ;
системы автоматизации проектно-конструкторских работ, требующие средств работы с данными, отсутствующих в широко распространенных алгоритмических языках;
системы геометрического моделирования.
Одним из первых проблемно-ориентированных языков, имеющих средства для описания геометрической информации, явился язык АРТ (AUTOMATED PROGRAMMING TOOLS) Этот язык послужил основой для разработки разнообразных систем автоматизации программирования для станков с ЧПУ.
Имеется базовый проблемно-ориентированный язык описания графической информации ОГРА, предназначенный для описания графических конструкторских документов и операций их формирования в системах автоматизированного проектирования.
В качестве примеров систем с автономным языком высокого уровня могут также служить системы геометрического моделирования трехмерных тел - COMPAC и СИМАК-Д. Система COMPAC (COMPUTER ORIENTED PART CODING) предназначена для формирования описания объемных тел из объемных элементов формы - (метод конструктивной геометрии). Кроме трех базовых объемных элементов (кубы, цилиндры, конусы), могут использоваться профилированные детали, получаемые перемещением замкнутого контура вдоль прямой или дуги, а также тела вращения, получаемые вращением замкнутого контура вокруг оси. Элементы задаются, позиционируются и соразмериваются языковыми конструкциями, напоминающими язык АРТ Составление детали из объемных элементов производится с помощью операций объединения, вычитания и отсечения.
Отличия СИМАК-Д от COMPAC состоят в разном входном языке и ином наборе базовых элементов формы, включающем в себя точку, плоскость, прямоугольный параллелепипед, круговые цилиндры и конус.
Автономные графические языки, как всякая специализированная разработка, обладают высокой эффективностью в своей области приложений, однако разработка и использование таких языков сопряжена с рядом проблем:
довольно значительные затраты на создание языка и транслятора с него, так, например, трудозатраты на систему COMPAC составили около 40 ч/лет;
затраты на внедрение, на включение языка в работающую систему программирования и на обучение пользователей, которые не всегда охотно берутся за изучение еще одного языка, а предпочитают пользоваться процедурными расширениями известных им алгоритмических языков: ALGOL, FORTRAN, PL-1, PASCAL и т.д.;
трудности с последующим расширением языка;
известные в настоящее время языки машинной геометрии и графики, в отличие от процедурных расширений, как правило, не обеспечивают интерактивного режима, а предназначены для написания пассивных программ;
затруднено объединение в рамках одной прикладной программы графических и геометрических действий и обычных вычислений, которое легко реализуется в случае процедурных расширений.
В настоящее время наибольшее применение получили процедурные графические расширения алгоритмических языков, так называемые процедурные языки.