Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Оперативные графические системы в автоматизации проектирования

..pdf
Скачиваний:
4
Добавлен:
19.10.2023
Размер:
6.87 Mб
Скачать

программы с этой точки в конце подпрограммы записыва­ ется команда ВОЗВР. Команда ПОВТ используется для регенерации. Изменение координат точки в команде 100) приводит к сдвигу части изображения — квадрата, кото­ рый описан подпрограммой, содержащей команды отно­ сительного перемещения луча. Обход команды обраще­ ния к подпрограмме 103) с помощью команды безуслов­ ного перехода 102) позволяет стереть изображение треугольника (рис. 5.8, в).

Рассмотрим принципы отображения информации о модели.

В ОГС индикатор является окном, через которое пользователь видит изменение проектируемого объекта. Он может по желанию указывать системе ту часть объ­ екта, которая его интересует, выбрать проекцию, мас­ штаб, точку зрения на объект.

При наличии в ОГС двух уровней представления информации о проектируемом объекте — структуры дан­ ных модели (см. главу 1) и массива команд отображе­ ния— большое значение для характеристик системы имеют принципы преобразования информации при вы­ воде.

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

Существуют ОГС [13, 14], в которых трансформация изображения выполняется специализированными аппа­ ратурными блоками, использующими простоту и однотип­ ность матричных операций. В таких системах использу­ ется метод непосредственной интерпретации структуры данных, хранимой в памяти ЭВМ. При этом ГП в каж­ дом цикле регенерации сканирует модель и прямо интер­ претирует содержащуюся в ней графическую информа­ цию (геометрические величины, дополнительную тек­ стовую и размерную информацию н т. п.) с учетом

150

100)

ТЧК 250; 750

 

-Подпрограмма «квадрат»

 

200)

 

ПР

50;

0

 

101)

ИП

200------------

 

 

 

 

201)

 

ПР

0;

50

250,75С

102)

ТЧК 250; 2 5 0 ^

 

 

 

202)

 

ПР — 50;

0

 

 

 

 

 

 

 

 

 

203)

 

ПР

0; —50

103)

ИП

300 —

— 204)

 

ВОЗВР

 

 

 

 

 

 

 

 

 

104)

ТЧК 750; 250

 

Подпрограмма треугольник»

105)

ИП

300----

 

300)

ПР

50

 

 

106) ПОВТ—« —

 

301) ПР —50

 

 

 

 

 

 

302)

ПР

0

 

 

 

 

 

 

.303)

ВОЗВР

250,250 750,250

 

 

 

 

в

 

 

 

 

■^100)

ТЧК

500; 750

I*—Подпрограмма «квадрат»

 

200) ПР

50;

0

 

101)

ИП

200 ---------------

201)

ПР

0;

50

 

—102)

И

104-е----------1

902)

ПР

—50;

0

 

103)

ИП

300

 

203) ПР

0;

— 50

&------

И 04)

ТЧК

750; 250

1------204)

ВОЗВР

 

 

500,750

 

 

 

-=>- Подпрограмма «треугольник»

105)

ИП

300—

 

300)

ПР

50;

0

 

 

301)

ПР

—50;

50

 

 

 

 

 

 

106)

ПОВТ -е --------------------

302)

ПР

0; —50

 

303)

ВОЗВР

 

 

750,250 *

 

 

 

 

 

 

 

 

 

Рис. 5.8. Пример программы ГП с использованием расширенного набора команд

установленных пользователем н управляющими програм­

мами

параметров

трансформации.

Блоки

графической

информации

в

структуре

данных

связаны

между

собой

 

командами

перехода,

так

что при сканирова­

нии ГП

выполняет

непрерывную

последовательность

команд

отображения.

Если

очередной

выбранный

процессором

элемент

данных

несет

информацию

негеометрического

характера,

происходит

прерывание

на

уровень

 

графического

 

супервизора,

который

интерпретирует

эту

информацию и производит ариф­

метические или логические

операции, реализует перехо­

ды по условию, циклы и другие негеометрические дейст­ вия. Это позволяет учитывать в качестве параметров графических подпрограмм содержимое вводных регист­ ров пульта, выполнять непрерывное вращение изображе­ ния и т. п. [15].

5.5. ОРГАНИЗАЦИЯ ОПЕРАТИВНОГО ВВОДА ИНФОРМАЦИИ

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

В ОГС вводимые данные используются в качестве параметров графических и вычислительных процедур и могут служить для указания на элемент изображения в процедурах геометрических и структурных преобразова­ ний (повернуть элемент, стереть элемент и т. п.), задания координат точки, которые могут интерпретироваться как в геометрическом смысле, так и задавать абстрактные числовые параметры [16].

Задача указания на элемент состоит в определении соответствующего ему блока в модели объекта. При этом, кроме графической, необходима дополнительная

152

информация об уровне иерархии, которому принадле­ жит элемент. Так, например, точка изображения может задавать различные элементы, частью которых она является: прямую, резистор R, цепь RC, усилительный каскад.

В качестве информации, указывающей на элемент, устройство ввода графической информации (УВГИ) может передавать адрес команды ГП, вызывающей его отображение. Для установления соответствия между элементами нижнего уровня модели («прямые», «дуги», «точки»,...) и командами отображения используют табли­ цу связи (ТС) со строками вида «адрес команды отобра­ жения— адрес элемента модели», которая вырабаты­ вается при компиляции модели одновременно с МКО. Переход к элементу необходимого уровня осущест­ вляется за счет ассоциативных связей элементов. В си­ стемах с интерпретацией модели графическим процессо­ ром адрес указанного с помощью УВГИ элемента опре­ деляется непосредственно в процессоре.

Элемент может быть задан координатами принадле­ жащей ему точки. Обычно при этом используется яркост­ ная отметка — маркер, которую пользователь визуально совмещает с нужной точкой изображения. УВГИ пере­ дает программе координаты маркера (Хм, Уы). Для на­ хождения указанного маркером элемента необходим сплошной программный перебор координат точек (Xi, У,), принадлежащих изображению, и проверка их совпа­ дения с координатами маркера:

(|Xt- X M| < 8)A (| У; - У м | < е ) ,

учитывающая погрешность е совмещения маркера с изо­ бражением.

Задача ввода координат произвольной точки экрана может решаться с помощью УВГИ, использующих прин­ цип временного совпадения, что требует значительных аппаратурных или программных затрат на слежение за световым пером пли вывод растра. Целесообразнее определять координаты точки за счет подвода к ней автономно упра!Вляемого маркера. Возникающая при этом возможность программной реализации некоторых функций ввода позволяет упростить и удешевить аппа­ ратуру УВГИ без существенного снижения характери­ стик ОГС.

153

В качестве примера рассмотрим программно-аппара­

турный

способ ввода

координат,

применяемый в

системе

[9]

(рис. 5.9).

При отклонении ручки мпогопо-

змционного

ключа

код

направления КОДНАПР запо­

минается в буферном

регистре РКП.

Таймер вызывает

периодические обращения

к программе продвижения

маркера

(рис. 5.10),

которая вводит код направления и

в зависимости от его значения корректирует содержимое ячеек текущих координат маркера (A, Y) . В соответст­ вии с этими координатами программа модификации мас-

Сигнал „Конец подвода

Рис. 5.9. Схема программно аппаратурного способа пиода координат

154

 

С

Начало

3

 

 

 

 

 

 

 

Ввести

КОД НАПР

 

 

 

 

 

 

_______

 

1

 

Ля

 

 

 

 

(

Есть признак конца подвода ?

 

 

 

 

 

 

 

 

 

С

 

 

1//ест

 

 

 

 

 

Ли?НАПР=0 .//ест

 

/to J НАПР=СЕВЕР

 

-.Нет

УМ-'=У

 

Ла

Ла

 

jAa

 

'

 

 

 

 

 

У +Д > У тал

 

 

 

 

 

 

 

Г Исключить

 

 

 

 

 

jHcm

 

I

 

 

 

 

 

У : = У + Д

 

I

команду

I

 

 

 

 

Г

 

 

. „Чертить мар-1

 

 

 

 

 

Нет

Q

кер“ из MKD

|

 

 

 

(

Код НАПР = ЮГ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ла.

ТД<Г

 

 

 

 

 

 

 

У - д < 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

У: = У-Д

 

 

 

 

 

 

 

 

 

о .

 

.//ест

 

 

 

 

 

 

(ко д НАПР = ВОСТОК

 

 

 

 

 

 

 

 

 

 

 

 

ла

--------- ал?

 

.

 

 

 

 

 

 

 

Х+Д > X m a x >

 

 

 

'нет

 

X:=Х +Д

1

<( Код НАПР= ЗАПАД

Ч//е/7?

Ла

£Да

У

х -д < О

 

\нет~

Х:=Х-Д |

кзТ:_пЬ

Сформировать команду „ Чертить маркер

6 мко

с

щ

г —

Коней,

3

Рис. 5.10. Алгоритм программы продвижения маркера

сива команд отображения формирует команду вычерчи­ вания маркера в точке (A', У), которая затем выпол­ няется г-рафшчеоким процессором ГП. Отклонение ручки

MiHопопоз11цIюнного

ключа в определенном направлении

вызывает

периодическое сложение соответствующей ко­

ординаты

маркера

с приращением Д, т. е. движение

маркера

по экрану

в заданном направлении с постоян­

ной скоростью. Для

удобства оператора в системе пре­

дусмотрены две скорости: для грубого и точного подвода

маркера; соответствующие им значения Д задаются пе­

реключателем

пульта (на схеме управление скоростью

не показано).

После подвода маркера в нужную точку

пользователь

сообщает об этом программе сигналом

«Конец подвода», после чего текущие значения коорди­ нат маркера могут попользоваться в качестве парамет­

ров Лм, У„ в других

процедурах.

Поле

перемещения

маркера

ограничено

прямоугольником

(0,

j max;

О, Ушах) •

 

 

 

 

 

 

Ввод символьной

информации.

Символьная

форма

представления информации является

наиболее универ­

сальной.

В такой форме пользователь

может

вводить

числовые данные (параметры процедур), текстовую ин­ формацию (надписи, комментарии, имена программ и файлов п т. п.).

Символьная информация с пульта пользователя вво­ дится либо устройствами чтения с носителя (перфокарт, перфолент), либо с помощью клавиатур. Первый способ удобен при вводе больших массивов данных, но требует предварительной подготовки носителей (перфорации). Для оперативного ввода символьной информации в ЭВМ обычно используют стандартную клавиатуру телетайпа или электрофицированной пишущей машинки. При орга­ низации диалога с помощью такой клавиатуры необхо­ димо реализовать следующие возможности: оперативное отображение вводимой информации на экране для конт­ роля пользователем; редактирование вводимой после­ довательности символов, исправление ошибок; получение протокола.

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

156

Программная реализация ввода представляет интерес с точки зрения экономичности и гибкости системы.

Рассмотрим систему ввода, имеющую четыре режима: «Накопление», «Удалить символ», «Вставить символ», «Заменить символ». Основным является режим «Накоп­ ление». При нажатии на клавишу в этом режиме проис­

ходит ' прерывание

текущей

программы. Код клавиши

вводится в ЭВМ и запоминается

как последний элемент

А [/г] стека символов с адресом,

равным текущему зна­

чению указателя

стека /г.

Указатель

наращивается

п : /г+1. На экран выводится строка

символов, соот­

ветствующая стеку Л[1 : п].

Сообщение набирается при

последовательном вводе символов. После нажатия кла­ виши, которая интерпретируется как «конец сообщения», символы сообщения передаются программе обработки, а стек накопителя считается пустым п : = 0 . Если в про­ цессе набора сообщения замечена ошибка, строчку мож­ но скорректировать в одном из трех режимов редактиро­ вания.

Рассмотрим работу используемых при этом процедур редактирования.

Процедура «Удалить символ». Адрес удаляемого символа в стеке задается пользователем с помощью указательного маркера. Пользователь подводит маркер к нужному символу последовательными нажатиями на клавишу «продвижение». При этом пропрамма продви­ гает маркер вдоль строчки, наращивая счетчик i. Нажа­ тием на клавишу «конец подвода» пользователь сооб­ щает программе, что маркер подведен к символу /4[£], который необходимо удалить. При удалении символа Л[£] адреса символов А [1]-ь4 [/—1] не изменяются, сим­ волы A [ t + 1] -f-A [я—1] сдвигаются в стеке на одну пози­ цию влево, начиная с А[£-}-1]:

A[i]: = A[i -!- 1]; A[i -\- \] \ = А -|- 2];

А [п — 2]: = А [ п — 1].

Указатель стека уменьшается на единицу:

п : = п — 1.

Скорректированная строчка выводится на экран. .

157

Процедура «Вставить символ». С помощью маркера пользователь задает адрес i символа, после которого необходимо сделать вставку. Символы Л[/+1]-ь/1[д—1] сдвигаются в стеке на одну позицию вправо, начиная с Л [/г-1]:

А [/г]: = А [п — 1];

/1 [ п — 1]: = А [ п — 2];

е................................................................................

 

A [ i + 2 ] :

= A [ i

+

l}.

 

Увеличивается на единицу указатель стека:

 

 

п : =

 

 

 

 

Вставляемый

символ

записывается

в стек по адресу

i+ l. Скорректированная строчка

выводится на экран.

Процедура «Заменить символ». По адресу указанно­

го маркером

символа Л[/']

в стек

записывается

вновь

введенный символ. Адреса

остальных символов и указа­

тель стека не изменяются.

Скорректированная строчка

выводится на экран.

символьных

сообщений

часто

При вводе

коротких

необходимо

скорректировать только

последний введен­

ный символ. С этой целью можно организовать упрощен­ ную систему ввода, которая не требует задания адреса символа, а всегда оперирует с последним символом стека

( i = n — 1).

Для случаев, когда ошибка замечена не в последнем символе, удобны следующие способы редактирования: удалить всю строку символов; последовательно удалять символы, начиная с последнего А [/г—1] и кончая оши­ бочным А [£].

Рассмотрим алгоритмы процедур, реализующих ввод

иредактирование коротких сообщений.

Впроцедуре «Ввод с возможностью удаления послед­ него символа и всей строки» используются две выделен­ ные клавиши алфавитно-цифровой клавиатуры для ввода признаков «удалить» п «конец ввода». При наборе на клавиатуре последовательности символов строки соот­

ветствующие им коды накапливаются в стеке А [ 1 : п]. При нажатии на клавишу «удалить» уменьшается указа­ тель стека (а : = п —1). Если клавиша «удалить» нажа­ та два раза подряд, то стек очищается (п : =0), что соот­

158

ветствует стиранию строки. По клавише «конец ввода-» стек символов и указатель стека передаются обрабаты­ вающей программе, выполнение процедуры ввода закан­ чивается.

В процедуре «Ввод с возможностью многократного удаления последнего символа» используются клавиши «удалить» и «конец ввода». Последовательность введен­ ных символов накапливается в стеке. Каждое нажатие на клавишу «удалить» уменьшает указатель стека /г: =

= п—1, если п ф 0.

Соседние файлы в папке книги из ГПНТБ