Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: VisuStructPoint (структура для точек многоугольника)

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    04.12.2012
    Адрес
    Санкт-Петербург
    Сообщений
    3

    По умолчанию VisuStructPoint (структура для точек многоугольника)

    СПК107
    нужно менять позиции точек многоугольника на экране
    в хелпе есть, свойства элементов визуализации
    Динамические значения (для элементов с несколькими позиционными точками: pPointArray, Count)
    создаю по примеру
    pPoints : POINTER TO ARRAY[0..100] OF VisuStructPoint;
    создаю конечно структуру
    VisuStructPoint

    а состав структуры ни где не описан в хелпе
    как описать структуру что бы Многоугольник брал координаты точек из неё ?
    Последний раз редактировалось serg28serg; 10.03.2015 в 22:21.

  2. #2
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Хелп написан диверсантами. Структура VisuStructPoint определена в библиотеке CmpVisuHandler. Добавляете эту либу, затем в PLC_PRG пишете что-нибудь типа
    Код:
    VAR
        polyline: ARRAY [0..2] OF VisuStructPoint;
        polylen: INT := 3;
    END_VAR
    
    polyline[0].iX := 0;
    polyline[0].iY := 0;
    
    polyline[1].iX := 10;
    polyline[1].iY := 20;
    
    polyline[2].iX := 20;
    polyline[2].iY := 10;
    У элемента параметр Array of points делаете ADR(PLC_PRG.polyline), параметр Number of points ставите PLC_PRG.polylen, и получаете в верхнем левом углу визуализации закорючку.

  3. #3
    Пользователь
    Регистрация
    04.12.2012
    Адрес
    Санкт-Петербург
    Сообщений
    3

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    Добавляете эту либу, затем в PLC_PRG пишете что-нибудь типа.
    спасибо , так заработало

    в пределах этого "резинового" многоугольника надо поместить например маленький элементик типа круг который медленно ползает в разных направлениях

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

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

  4. #4

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    Хелп написан диверсантами. Структура VisuStructPoint определена в библиотеке CmpVisuHandler. Добавляете эту либу, затем в PLC_PRG пишете что-нибудь типа
    Код:
    VAR
        polyline: ARRAY [0..2] OF VisuStructPoint;
        polylen: INT := 3;
    END_VAR
    
    polyline[0].iX := 0;
    polyline[0].iY := 0;
    
    polyline[1].iX := 10;
    polyline[1].iY := 20;
    
    polyline[2].iX := 20;
    polyline[2].iY := 10;
    У элемента параметр Array of points делаете ADR(PLC_PRG.polyline), параметр Number of points ставите PLC_PRG.polylen, и получаете в верхнем левом углу визуализации закорючку.
    Делаю все, как написал Yegor, но почему-то не получается. Многоугольник координат своих не меняет. Подскажите, пожалуйста, что не так?
    Вложения Вложения

  5. #5
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,233

    По умолчанию

    Цитата Сообщение от GoodLuck Посмотреть сообщение
    Делаю все, как написал Yegor, но почему-то не получается. Многоугольник координат своих не меняет. Подскажите, пожалуйста, что не так?
    По-моему, у вас библиотека VisuElem3DPath не подцепилась. Удалите и добавьте ее снова, лучше версию 3.5.6.0.

  6. #6

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    По-моему, у вас библиотека VisuElem3DPath не подцепилась. Удалите и добавьте ее снова, лучше версию 3.5.6.0.
    А где-ж ее взять-то эту либу (3.5.6.0)?!
    У меня вообще ничего не работает! При этом заметил, что если записать в поля динамических точек всякую чушь - компилятор кушает и не давится... и рисовать них...а не хочет!

  7. #7
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,233

    По умолчанию

    Цитата Сообщение от viktor__ Посмотреть сообщение
    А где-ж ее взять-то эту либу (3.5.6.0)?!
    У меня вообще ничего не работает! При этом заметил, что если записать в поля динамических точек всякую чушь - компилятор кушает и не давится... и рисовать них...а не хочет!
    Она входит в состав CODESYS 3.5 SP6. Но конкретно вам она вряд ли нужна - используйте библиотеку CmpVisuHandler.

  8. #8

    По умолчанию

    Работает, только у меня при объявлении потребовало записи вида "OF VisuElems.VisuStructPoint"

  9. #9

    По умолчанию

    viktor__

    у меня ваш код нормально функционирует и в режиме эмуляции тоже.

  10. #10

    По умолчанию

    Вот пример "бешенной синусоиды"
    PROGRAM PLC_PRG
    VAR
    func: ARRAY[0..157] OF VisuStructPoint;
    p_cnt: INT;

    i: INT;
    x, y: REAL;
    init: BOOL;

    scan, way: INT;
    fwd: BOOL;
    END_VAR

    IF init THEN

    IF (scan = 10) THEN

    (* Смена направления движения *)
    IF (way = 10) THEN
    fwd := NOT(fwd);
    way := 0;
    ELSE
    way := way + 1;
    END_IF

    IF (fwd) THEN
    (* Перемещаем на 10 точек вправо *)
    FOR i := 0 TO p_cnt - 1 DO
    func[i].iX := func[i].iX + 10;
    END_FOR
    ELSE
    (* Перемещаем на 10 точек влево *)
    FOR i := 0 TO p_cnt - 1 DO
    func[i].iX := func[i].iX - 10;
    END_FOR
    END_IF

    scan := 0;
    ELSE
    scan := scan + 1;
    END_IF

    ELSE
    p_cnt := 158;

    FOR i := 0 TO p_cnt - 1 DO
    x := i / 25.0;
    y := SIN(x);

    func[i].iX := 100 + REAL_TO_INT(x * 100);
    func[i].iY := 240 - REAL_TO_INT(y * 100);
    END_FOR

    fwd := TRUE;
    init := TRUE;
    END_IF

    Все работает в эмуляции, но только если вписать в свойствах "Переменные состояний->Невидимый" что-нибудь. Достаточно даже просто "FALSE", либо переменную, которую при инициализации обнулять ну и т.п. Если этого не сделать то на экране отражается первоначальная закорючка (я использовал кривую Безье). И что самое интересное, этот ... нюанс... ну нигде не обозначен!

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Ответов: 2
    Последнее сообщение: 21.11.2014, 21:53
  2. Ответов: 5
    Последнее сообщение: 08.07.2014, 00:05
  3. Программа для построения граиков для МСД 200
    от Михаил_А в разделе Сервисное ПО
    Ответов: 3
    Последнее сообщение: 22.12.2012, 09:36
  4. HMI WagoID 1.1 (для Андроид) для Овен ПЛК
    от osv007 в разделе Панели оператора (HMI)
    Ответов: 2
    Последнее сообщение: 10.11.2012, 20:42
  5. внутренняя структура плк
    от andrious в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 18.02.2010, 22:53

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •