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

Диалоговая Панель ввода и редактирования операторов служит основным универсальным средством изначального формирования операторов, составляющих программу геометрического агоритма, а также для редактирования ранее введенных в программу операторов. Альтернативным средством ввода команд в программу являются клавиатурные сокращения (горячие клавиши), которые в ряде случаев позволяют сократить время ее подготовки, при этом панели ввода и редактирования операторов на экран монитора не вызываются.

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

Если панель вызвана для редактирования уже существующего оператора, то после выполнения изменений содержимого полей панели и нажатия кнопки Ввод диалоговое окно закрывается.

   
 
   
 

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

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

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

Кнопки могут находиться в одном из двух состояний: активном и неактивном. Если кнопка активна, то на ней представлено полноцветное условное изображение функции, в противном случае изображение выводится в нейтральном сером цвете.

Кнопка становится активной, если на экране системы присутствует (выбрано) активное окно геометрического построения и связанный с этим окном алгоритм допускает изменение своей программы. Кнопка будет неактивной в том случае, если на экране нет ни одного окна, предназначенного для отображения построения, или если алгоритм построения, отображаемого в окне, переведен в режим защиты от изменеия его программы.

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

Щелчок левой кнопкой мыши над активной кнопкой приводит к вызову панели формирования оператора, соответствующего ее функции, с целью формирования оператора и последующего пополнения им программы геометрического построения.

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

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

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

 

 

 

Виды панелей ввода операторов

В системе Симплекс реализованы диалоговые панели ввода операторов нескольких различающихся между собой видов. Необходимось наличия разных панелей обусловлена спецификой некоторых функций. Большинство операторов задаются посредством панели основного типа. Некоторые функции, такие как итератор (IT), селектор (G3), контур из компонентов (W0) и некоторые другие, формируются панелями, работающими по правилам, несколько отличающимся от принципов работы с основной панелью.

   
 

Основная панель

   
 

Панель для формирования оператора функции Итератор

   
 

Панель для формирования оператора функции Селектор

   
 

Панель для формирования оператора функции Контур из компонентов

   
 

Секции панелей ввода операторов

Интерфейсные компоненты каждой диалоговой панели ввода операторов располагаются в четырех секциях: секции формирования выходных параметров оператора, секции формирования входных параметров оператора, секции задания вида согласования параметров и секции задания режимов исполнения алгоритма.

   
 

Секция формирования выходных параметров оператора

Данная секция содержит интерфейсные компоненты для описания выходных параметров функции.

   
 

Секция формирования выходных параметров

   
 

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

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

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

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

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

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

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

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

   
 

Секция формирования входных параметров оператора

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

   
 

Секция формирования входных параметров

   
 

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

Ввод текстовых конструкций в поля входных параметров может быть осуществлен несколькими способами.

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

2. Ввод посредством указания курсором на изображения объектов в окне построения. При щелчке левой кнопкой мыши над изображением объекта под курсором система определяет имя этого объекта и передает его имя в поле входного параметра, в котором в данный момент находится фокус ввода, после чего фокус ввода автоматически переходит в следующее поле. При необходимости передачи в поле формирования входного параметра имен нескольких объектов, образующих единый список, следует удерживать нажатой клавишу Shif. При этом между именами объектов система автоматически размещает символ "запятая", являющийся разделителем элементов списка. При необходимости выполнить перевод фокуса ввода в следующее поле после указания последнего объекта, завершающего список, при указании этого объекта клавиша Shift не удерживается. Необходимо помнить, что в момент вызова панели ввода оператора из некоторого окна геометрического построения между панелью и алгоритмом, ассоциированным с этим окном, устанавливается соответствие. Поэтому ввод в панель имен объектов путем указания курсором на их изображение допускается только из окон, ассоциированных с алгоритмом, связанным с вызванной панелью. Передача имен объектов из окон, ассоциированных с другими алгоритмами, в таком случае невозможен, и при обнаружении подобной попытки система выводит предупреждение о недопустимости ввода.

Удержание нажатой клавиши Alt во время указания объекта курсором приводит к передаче в параметр полного имени объекта (списочной переменной) и порядкового номера этого объекта, указываемого в квадратных скобках. Таким образом из списка объектов вычленяется отдельный индивидуальный объект.

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

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

3. Некоторые наиболее употребительные конструкции языка Симплекса можно ввести в поле ввода с помощью выбора подпунктов пункта Ввести контекстного всплывающего меню этого поля. К таким конструкциям относятся следующие записи:

break - обозначение объекта-разделителя;
false - логическое значение "ложь";
iline - обозначение бесконечно удаленной прямой линии;
nil - обозначение объекта с неопределенным значением;
null - символьное обозначение числа 0 (неизменяемая константа);
Ox - обозначение оси абсцисс;
Oy - обозначение оси ординат;
pi - число 3.1415...
rect - символьное обозначение числа 90 (неизменяемая константа);
true - логическое значение "истина";
0 - число ноль;
90 - число девяносто;
[0~1~n] - обозначение равномерного списка значений в интервале от 0 до 1, подразделенного на n частей (количество значений n+1);
[0~180~n] - обозначение равномерного списка значений в интервале от 0 до 180, подразделенного на n частей (количество значений n+1);
[0~360~n] - обозначение равномерного списка значений в интервале от 0 до 360, подразделенного на n частей (количество значений n+1).

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

В числе таких функций следующие:

Точка задана координатами (P0) - в поля входных параметров вводятся числовые значения координат позиции под курсором;
Точка задана координатами с линейной границей (P0L) - в поля входных параметров вводятся числовые значения координат позиции под курсором;
Точка задана координатами с двойной линейной границей (P0A) - в поля входных параметров вводятся числовые значения координат позиции под курсором;
Точка задана относительно точки приращениями координат (P1) - в поля входных параметров вводятся числовые значения приращений координат позиции под курсором относительно точки, указанной в первом параметре;
Точка задана относительно точки приращениями координат с линейной границей (P1L) - в поля входных параметров вводятся числовые значения приращений координат позиции под курсором относительно точки, указанной в первом параметре;
Точка задана относительно точки приращениями координат с двойной линейной границей (P1A) - в поля входных параметров вводятся числовые значения приращений координат позиции под курсором относительно точки, указанной в первом параметре;
Точка задана относительно точки по расстоянию и направлению (PJ) - в поля входных параметров вводятся числовые значения расстояния от позиции под курсором относительно точки, указанной в первом параметре и направление на позицию от этой точки относительно оси Ox;
Точка принадлежит объекту (P9),
Прямая задана координатами двух точек (O2) - переопределение третьего и четвертого входных параметров функции для редактируемого объекта с целью изменения направления прямой линии;
Прямая проведена через точку под углом к оси OX (O1) - занесение числового значения угла прямой, определяемой указанной в первом входном параметре точкой и текущей позицией курсора;
Прямая, параллельная прямой (O7) - занесение во второй входной параметр значения расстояния от прямой, указанной в первом входном параметре, до строящейся параллельной к ней прямой, проходящей под позицией курсора с учетом знака этого расстояния;
Прямые на равном расстоянии от прямой (OE) - занесение во второй входной параметр значения удвоенного расстояния от прямой, указанной в первом входном параметре, до строящейся одной из параллельных к ней прямых, проходящей под позицией курсора;
Фаска (OB) - занесение в третий входной параметр значения отступа фаски, определенное исходя из прохождения лиии фаски через текущую позицию курсора в отношении прямых линий, указанных в первом и втором входных параметров;
Вектор заданной величины в точке (V3);
Окружность задана центром и радиусом (D0) - занесение во второй входной параметр числового значения радиуса строящейся окружности с центром в точке, указанной в первом входном параметре, и проходящей через текущую позицию курсора;
Окружность задана центром и диаметром (D2) - занесение во второй входной параметр числового значения диаметра строящейся окружности с центром в точке, указанной в первом входном параметре, и проходящей через текущую позицию курсора;
Окружности заданы двумя точками и радиусом (DB) - занесение в третий входной параметр радиуса сопрягающей окружности, проходящей через текущую позицию курсора.
Окружность, сопрягающая две прямые (DC0) - занесение в третий входной параметр радиуса сопрягающей окружности, проходящей через текущую позицию курсора;
Окружность проведена через точку, касательно к прямой (DD) - занесение в третий входной параметр радиуса сопрягающей окружности, проходящей через текущую позицию курсора;
Окружность проведена через точку касательно к окружности (DE) - занесение в третий входной параметр радиуса сопрягающей окружности, проходящей через текущую позицию курсора;
Окружности, сопрягающие две окружности (D7) - занесение в третий входной параметр радиуса сопрягающей окружности, проходящей через текущую позицию курсора;
Окружности, сопрягающие прямую и окружность (DA) - занесение в третий входной параметр радиуса сопрягающей окружности, проходящей через текущую позицию курсора;

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

Прямая задана двумя точками (O0) - передача имени генерируемой точки во второй входной параметр.
Окружность задана диаметральными точками (DN) - передача имени генерируемой точки во второй входной параметр.
Окружность задана центром и точкой (D1) - передача имени генерируемой точки во второй входной параметр.
Расстояние между точками (C2) - передача имени генерируемой точки во второй входной параметр.
Превышение по X (C5) - передача имени генерируемой точки во второй входной параметр.
Превышение по Y (C6) - передача имени генерируемой точки во второй входной параметр.
Вектор задан двумя точками (V0) - передача имени генерируемой точки во второй входной параметр.
Окружность задана тремя точками (D4) - передача имени генерируемой точки в третий входной параметр.
Вертикальная размерная линия (F0) - передача имени генерируемой точки в третий входной параметр.
Горизонтальная размерная линия (F1) - передача имени генерируемой точки в третий входной параметр.
Наклонная размерная линия (F4) - передача имени генерируемой точки в третий входной параметр.
Коллинеация по четырем парам точек (K0) - передача имени генерируемой точки в восьмой входной параметр.
Коника по пяти точкам (Y0) - передача имени генерируемой точки в пятый входной параметр.
Кривая Безье (Z0) - передача имени генерируемой точки в четвертый входной параметр.

5. Отдельные элементы текста, формируемого в поле входного параметра, могут быть занесены с помощью окна-конструктора, вызываемого с помощью кнопки K, расположенной в справа от поля ввода в строке данного параметра.

6. Если в момент вызова панели формирования оператора в окне отображения построения был выделен объект, то его имя можно передать в поле ввода параметров, имеющее фокус с помощью пункта контекстного всплывающего меню Выделенное в параметр. После занесения имени в поле фокус ввода переместится в следующее поле. В том случае, если в окне выделены несколько объектов, то все их имена в порядке выделения будут переданы в поле и разделены запятыми, в результате чего в поле будет образован список из переданных в него объектов. После занесения, как и в предыдущем случае, фокус ввода будет автоматически перемещен в следующее поле.

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

8. Если несколько объектов объединены в рамках группы, то их имена можно автоматически последовательно ввести в поля входных параметров панели, начиная с поля, имеющего фокус, если при выделении имени группы в списке отображения меток невизуальных объектов в окне геометрического построения указать курсором на имя группы, предварительно нажав и удерживая клавишу Ctrl.

При заполнении всех полей входных параметров оператора фокус ввода перемещается на кнопку завершения формирования оператора и исполнения алгоритма Ввод.

   
 

"Замораживание" поля ввода входного параметра

При многократном вводе операторов посредством одной и той же функции может возникнуть ситуация, при которой одно или несколько полей входных параметров будут одинаковыми. Для упрощения и ускорения ввода команд имеет смысл указать системе, что некоторые поля ввода следует использовать многократно и их не нужно очищать от содержимого при вводе нового оператора. Указание таких полей осуществляется при помощи т.н. режима "заморозки", который назначается при вводе имени объекта с помощью курсора (см. п. 2) с одновременно нажатой и удерживаемой клавишей Ctrl. При этом текущий ввод параметра завершается, как обычно, но при этом фон поля ввода изменяется на серый, а цвет текста на белый (неактивный режим работы поля). При последующем вводе содержимое замороженного поля не изменяется, а при определении фокуса ввода следующего поля замороженное поле пропускается. Режим "заморозки" действует до закрытия поля ввода оператора или замены его новым. При этом в панели кнопок вызова функций под закладкой Прототипы формируется новая кнопка, ассоциированная с функцией того же типа и учитывающая "заморозку" полей. При необходимости вернуться к ранее определенному и использованному режиму "заморозки" можно воспользоваться соответственными кнопками из панели с закладкой Прототипы. Замороженные поля изменяются, если используется режим ввода, описанный в п. 4.

   
 

Перемещение по иерархии порождения объектов

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

 

 

 

Режим визуализации объекта параметра

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

   
 

Группа флажков для взаимного обмена полей значениями параметров

   
 

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

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

   
 

Определение исходной инволюции и ее двойных точек

   
 

Параметры исходной инволюции

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

Результат обмена полями второго и четвертого входных параметров своим содержимым

   
 

Результат переопределения инволюции и получения ее двойных точек

   
 

Групповой ввод однотипных операторов

   
 

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

Предположим, что требуется построить несколько точек с различающимися именами, у которых будет одна и та же координата X, равная 10, и при этом все точки будут иметь разные координаты Y.

Установим флажок слева от входного параметра Y диалоговой панели, задающей точки функцией Точка задана координатами (P0). Введем в поле первого параметра число 10, а в поле второго параметра список из чисел, разделенных запятыми: 10,20,30,40,50,60.

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

Кнопка Тест панели ввода оператора переводится в неактивный режим, а окончательное занесение группового оператора в программу осуществляется кнопкой Ввод.

 

Заполнение общего и выделенного параметров значениями

   
 

Формирование отдельных объектов с различающимися именами

   
 

Секция указания вида согласования входных параметров

   
 

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

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

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

   
 

Секция назначения вида согласования параметров

   
 

Секция управления вводом оператора в программу построения

   
 

Кнопки Тест и Ввод в нижней секции панели предназначены для подтверждения окончания формирования оператора и вызова исполнительной подсистемы для расчета значений объектов алгоритма с учетом нового введенного оператора. Обе кнопки изначально находятся в неактивном состоянии, тем самым не допуская ввод в программу несформированного до конца оператора, и становятся активными только тогда, когда все поля входных и выходных параметров диалоговой панели заполнены.

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

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

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

   
 

Секция управления вводом оператора в программу

   
 

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

Панель ввода операторов можно использовать для изменения содержания параметров оператора, ранее объявившего тот или иной объект. Основной способ выполнения редактирования заключается в выделении подлежащего редактированию объекта курсором мыши, после чего ее правой кнопкой вызывается контекстное всплывающее меню. В этом меню следует выбрать пункт Редактировать.

   
 

Вызов контекстного меню для редактирования объектов из окна визуализации геометрического построения

   
  Вызвать оператор, породивший объект, для его редактирования можно и из других диалоговых панелей системы, в которых возможен доступ к именам объектов. Так, например, в диалоговой панели отображения значений объектов имеется всплывающее меню с пунктом Редактировать, который становится активным в случае выделения какого-либо объекта в списке имен объектов алгоритма.
   
 

Вызов контекстного меню для редактирования объектов из окна протокола значений объектов

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

Отображение панели Захват при выделении двух и более объектов

   
 

Если в выделении присутствуют несколько объектов, порожденных общей для них функцией, то в этом случае становится возможным групповое изменение сразу всех таких объектов в единственной панели редактирования операторов. Так в примере, представленном ниже, с помощью функции Окружность задана координатами точки центра и радиусом в программу введены три различные окружности. Требуется присвоить всем трем окружностям радиус, равный 50.

   
 

Три окружности, радиус которых планируется изменить

   
 

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

На первом этапе выделяем все три окружности, удерживая клавишу Shift и указывая на них курсором.

   
 

Выделение объектов, подлежащих изменению

   
 

На втором этапе правой кнопкой мыши вызываем контекстное меню и выбираем пункт Редактировать.

   
 

Вызов контекстного меню для перехода в режим редактирования

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

Отображение списка выделенных объектов в диалоговом окне Захват

   
  На третьем этапе следует выделить все необходимые строки списка в окне Захват и нажать кнопку Ввод.
   
 

Осуществление выбора объектов, подлежащих редактированию

   
  В результате выполненных действий на экран монитора будет выведена панель редактирования оператора, в поле выходного параметра которого будут перечислены имена всех редактируемых объектов, разделенных символом точка с запятой. Поле выходного параметра блокируется и не допускает внешних изменений. В четвертой секции отсутствует кнопка Тест. Поля входных параметров будут заполнены только в том случае, если соответственные параметры у всех без исключения параметров одинаковые, в противном случае поля не заполняются. Если пользователь заполнит одно поле или несколько полей, то соответственные параметры всех объектов после нажатия кнопки ввод будут переопределены. Параметры, соответствующие незаполненным полям, у в операторах, порождающих выделенные объекты, останутся прежними. По этой причине кнопка Ввод будет активной, вне зависимости от того, что некоторые из полей остаются незаполненными.
   
 

Вид панели редактирования параметров операторов при групповом редактировании

   
  Реализуя финальный четвертый этап редактирования, занесем в параметр Радиус число 50 и нажмем кнопку Ввод.
   
 

Заполнение общего для всех редактируемых объектов значения третьего параметра

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

Окончательный результат группового редактирования

 

Режим принудительного группирования объектов

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

Если текущая панель будет использована для формирования нового оператора, то после заполнения всех полей ввода входных параметра кнопка Ввод будет активирована и ее метка будет отображаться красным цветом, что говорит об активности режима принудительного группирования объектов. При нажатии на кнопку Ввод для формирования новой группы нажатие и удержание клавиши Shift более не требуется.

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