October 4, 2016

Как добавить точку в ломаную линию?

В преддверии новой визуализации на html5 и css3 поковыряем нюансы старой-доброй визуализации под TwinCAT 2.

Начнем с простого — надписью может быть любой элемент, достаточно отключить у него бордюр: Colors → No frame color.

Кнопкой может быть любой элемент, но элемент Button (кнопка) ведет себя как кнопка и не требует дополнительных телодвижений от разработчиков. Правда она не так удобна в плане изменения своего внешнего вида, зато всегда ведет себя как кнопка, а не как ХЗ-что.

Поле Variables → Invisible — это в прямом смысле "невидимость". TRUE → элемент невидим, FALSE → элемент отображается, то есть его видно.

Значение параметров фигуры (цвет, размер и пр.) могут задаваться в нескольких местах одновременно и тогда одни значения начинают перекрывать другие. Можно задать величину параметра как статическое значение (например, цвет в поле Colors). Это значение перекроется значением, заданным в виде переменной  из раздела ColorVariables. Переменную, в свою очередь, может перекрыть программная структура из раздела Programmability. При отладке программы, значения переменных введенные через Watch-n-Recipe перекрывают вообще все.

Можно добавить новую точку в ломаную линию или многоугольник: удерживая клавишу Ctrl, тянем левой кнопкой мыши за уже существующую точку и вытягиваем из нее новую точку. Ctrl + Shift + клик — удаляет уже существующую точку.

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

Motion absolute:
  • Углы задаются в градусах.
  • Масштабирование, оно же Scale: 1000 = 100% размера фигуры. Масштабирование касается всей фигуры в целом, в том числе и расстояния до центра фигуры.
  • Y-offset, X-offset — сдвинуть всю фигуру влево-вправо / вверх-вниз.
  • Angle — поворот относительно центра (кружок с перекрестием), но(!): Shape (прямоугольники и эллипсы) вращаются так, что верх фигуры остается всегда вверху. Polygon (многоугольники, контуры, кривые) вращаются так, что все точки совершают вращение относительно центра фигуры. Если вам нужен квадрат вращающийся относительно своего центра — нарисуйте его из ломаной поли-линии.

Можно добавить один экран визуализации на другой экран в виде элемента меньшего размера. Размер такого элемента определяется типом масштабирование пропорций:
  • Anisotropic — произвольные пропорции и размер.
  • Isotropic — фиксированные пропорции, но произвольный размер.
  • Fixed — фиксированные пропорции и размер.
  • Fixed and scrollable — как и Fixed, но можно прокручивать (не работает в Windows CE, см. раздел про ограничения).

Пунктирные, штрихпунктирные и прочие тире-тире-точки можно получить, задав ColorVariables → Frame flag отличный от нуля. Тип линии меняется только во время работы визуализации и не меняется во время разработки:
  • 0 сплошная ____
  • 1 пунктир - - - -
  • 2 точки ......
  • 3 тире-точка -.-.-
  • 4 тире-точка-точка -..-..-
  • 8 невидимая, но ее толщина учитывается

Input → Execute Program — это целый отдельный мир программирования. Здесь можно создавать макросы (Macro). Например, при нажатии кнопки Сохранить на экране задания параметров, сменяется текущая визуализация (Input → Zoom to viz.). Можно сделать так, что одновременно со сменой визуализации будет задаваться значение какой-либо переменной (как глобальной, так и локальной в подпрограмме). Таким образом можно отследить, что пользователь уходит с экрана настроек и необходимо сохранить persisitent-переменные, если он нажал ОК, и не сохранять, если он ушел по кнопке Отмена.

Programmability → Object name, если установить галку и ввести имя переменной, то после перекомпиляции проекта появляется новая глобальная переменная-структура типа VisualObjectType. Объявление этой переменной не видно в проекте, но она как суслик все-равно есть и доступна для Intellisense по F2.


Все эти вопросы неплохо рассмотрены в справочной системе, но на английском языке (или немецком) и все равно всплывают раз-за-разом:

No comments

Post a Comment

Note: Only a member of this blog may post a comment.