Страница 1 из 1

Перерисовка графика

Добавлено: 09 июн 2018, 15:08
Boris_K
Мне очень желательно, чтобы :labview: перерисовывала один график (XY graph) только по сигналу, а не автоматически. Видел метод Force redraw, вроде то что нужно. Но как отключить автоматическую перерисовку?

Re: Перерисовка графика

Добавлено: 09 июн 2018, 16:53
dadreamer
Defer Panel Updates с флагом true, затем Redraw, затем Defer Panel Updates с флагом false.
http://zone.ni.com/reference/en-XX/help ... pnl_updts/

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

Re: Перерисовка графика

Добавлено: 09 июн 2018, 18:09
IvanLis
Boris_K писал(а):Мне очень желательно, чтобы :labview: перерисовывала один график (XY graph) только по сигналу, а не автоматически. Видел метод Force redraw, вроде то что нужно. Но как отключить автоматическую перерисовку?
Приходилось делать, но в основе лежала State Machine, считал количество итераций и писал в контрол данные например каждую 10 итерацию.
Есть еще вариант с использованием свойства Timeout от Event Structure, например перерисовывать через определенный интервал времени.

Re: Перерисовка графика

Добавлено: 09 июн 2018, 19:28
Boris_K
Хотя, наверно, это бесполезный совет, т.к. не избавит от случайной перерисовки графика
Не пробовал ещё, но по идее будет работать, почему не должно? Что значит "случайная" перерисовка? Если отключить обновление для всей фронт-панели, по идее ничего не должно отрисовываться само, пока не включишь.

IvanLis, у меня проблема не в частоте обновлений, а в том, что в процессе работы кол-во Plot'ов на графике может меняться, программно добавляются/удаляются, и у разных плотов отличаются некоторые свойства (цвет, тип линии, интерполяция и заполнение к уровню), эти свойства также программно обновляются при необходимости (через property node). И из-за того что добавление/удаление кривых самим :labview: происходит не одновременно с изменением их свойств, то в момент добавления/удаления мигают артефакты из-за "поехавших" свойств. Хотел бы это убрать.

Re: Перерисовка графика

Добавлено: 10 июн 2018, 20:46
dadreamer
Boris_K писал(а):Не пробовал ещё, но по идее будет работать, почему не должно? Что значит "случайная" перерисовка? Если отключить обновление для всей фронт-панели, по идее ничего не должно отрисовываться само, пока не включишь.
Работать будет, но :labview: может сам внезапно захотеть перерисовать (обновить) график. В таком случае мой совет смысла не имеет. А если отключить обновления панели насовсем, то и все прочие элементы не будут обновляться.

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

Re: Перерисовка графика

Добавлено: 14 июн 2018, 12:05
Boris_K
С Defer panel updates проблема решилась, Force redraw даже не использовал. Благодарю за совет.