Segnetics

Вернуться   Segnetics > Форум Segnetics > SMLogix > SMArt

SMArt Разработка интерфейсов пользователя

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2024, 07:31   #1
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 752
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Элемент "Вывод числа"

Вопрос по элементу "вывод числа". Позиционирование на экране в Смарт и на экране контроллера несколько различается. Идет сдвиг на 1-3 пикселя. Как решить данную проблему? Что бы отображение на контроллере полностью совпадало со Смартом? На данный момент вручную смещаю в Смарте глядя на экран контроллера. А это 2-3 перезагрузки контроллера на каждый вывод числа. Попытался использовать блоки ScreenTrim(***). Тут по крайней мере можно за 1 итерацию выставить нужные числа в нужные позиции. На Пикселе и 2G это работало. С Матриксом засада: при выводе с прозрачным фоном переписываются только пиксели непосредственно пиксели попадающие на число, изображение становится нечитаемым. Если выводить с фоном, то размер фона намного больше, чем размеры числа, фон затирает подложку.


__________________
Нет абсолютно бездарных людей. Каждый бездарен в своей области.
tvf вне форума   Ответить с цитированием
Старый 04.03.2024, 11:19   #2
Ilya J.
Сотрудник Сегнетикс
 
Аватара для Ilya J.
 
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 338
Благодарил(а): 0 раз(а)
Поблагодарили: 255 раз(а) в 251 сообщениях
По умолчанию Ответ: Элемент "Вывод числа"

Приложите проект и покажите на какой элемент обратить внимание.


__________________
Если ничто другое не помогает, прочтите, наконец, инструкцию
Ilya J. сейчас на форуме   Ответить с цитированием
Старый 04.03.2024, 12:03   #3
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Элемент "Вывод числа"

Цитата:
Сообщение от tvf Посмотреть сообщение
ВМатриксом засада: при выводе с прозрачным фоном переписываются только пиксели непосредственно пиксели попадающие на число, изображение становится нечитаемым. Если выводить с фоном, то размер фона намного больше, чем размеры числа, фон затирает подложку.
Фон нужно обновлять, причём делать это также в смарте. Например, вывели картинку, сверху число с прозрачным фоном. И всё будет ок.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 04.03.2024, 12:21   #4
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 752
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Элемент "Вывод числа"

Цитата:
Сообщение от Arsie Посмотреть сообщение
Фон нужно обновлять, причём делать это также в смарте. Например, вывели картинку, сверху число с прозрачным фоном. И всё будет ок.
Как обновлять картинку в смарте?

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

Переносишь вывод числа в ФБД. Если с фоном, то затирается часть картинки, фон слишком широк. Если с прозрачным фоном, то при изменении числа само число становится нечитаемым.

Можно конечно все сделать из ФБД. Но тогда зачем смарт? если все делать вручную.

Вопрос в том и состоял, что бы сделать позиционирование 1:1 как на экране в смарте, а не примерно в том месте экроана.

Или сделать поля при выводе из фбд ровно по размеру числа, а не как поля у сомбреро.


__________________
Нет абсолютно бездарных людей. Каждый бездарен в своей области.
tvf вне форума   Ответить с цитированием
Старый 04.03.2024, 12:39   #5
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Элемент "Вывод числа"

Цитата:
Сообщение от tvf Посмотреть сообщение
Как обновлять картинку в смарте?
Она автоматом обновляется, если поверх вывод числа.


Добавлено через 1 минуту


Цитата:
Сообщение от tvf Посмотреть сообщение
Переносишь вывод числа в ФБД. Если с фоном, то затирается часть картинки, фон слишком широк. Если с прозрачным фоном, то при изменении числа само число становится нечитаемым.
Всё верно, над картинкой элемента "вывод числа" нет, картинка перестаёт автообновляться.


Добавлено через 2 минуты


Цитата:
Сообщение от tvf Посмотреть сообщение
Вопрос в том и состоял, что бы сделать позиционирование 1:1 как на экране в смарте, а не примерно в том месте экроана.
Не травите душу, я так и не смог за годы убедить программеров решить эту проблему.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 04.03.2024, 13:20   #6
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 785
Благодарил(а): 12 раз(а)
Поблагодарили: 194 раз(а) в 190 сообщениях
По умолчанию Ответ: Элемент "Вывод числа"

Цитата:
Сообщение от Arsie Посмотреть сообщение
Не травите душу, я так и не смог за годы убедить программеров решить эту проблему.
Для этого нужен практически полный эмулятор контроллера.

А все WYSIWYG немного грешат неточностями.


__________________
Не являюсь сотрудником Segnetics !!!
ATS вне форума   Ответить с цитированием
Старый 05.03.2024, 06:27   #7
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 752
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Элемент "Вывод числа"

Цитата:
Сообщение от Ilya J. Посмотреть сообщение
Приложите проект и покажите на какой элемент обратить внимание.
Тестовый проект во вложении. Если в Смарте значение выводится по центру рамки, то в контроллере смещено вверх-влево. Но и это не все.

Если выводить хотя бы 1 значение в смарте, то значения выводимые в ФБД отображаются корректно, одним и тем же шрифтом, хоть с прозрачным фоном, хоть не с прозрачным. При непрозрачном фоне затирается подложка. Это на экране Тест 1. Тут все понятно, картинка подложки обновляется каждый цикл.

Если не выводить значение в Смарте, а только из ФБД, то при непрозрачном фоне все выводится корректно. Но затирается подложка. При прозрачном фоне при изменении значения становится нечитаемым. С этим тоже примерно понятно. Картина в Смарте не обновляется. Но почему неизменное значение выводится другим шрифтом? Более толстым и размытым. Это размытие и утолщение происходит не мгновенно, а за 2-3 такта. Это хорошо видно при большой длительности такта. Если сделать затирание неизменного значения через такт то значение выводится стандартным шрифтом. Такое впечатление, что значения выводятся шрифтом со сглаживанием, значит есть полутона. И при каждом выводе отдельные пиксели не записываются по новой, а идет накопление. Это экран Тест 2. И тут уже вопросы не к Смарту, а к Лоджику.
Изображения
Тип файла: jpeg WhatsApp Image 2024-03-05 at 09.20.27.jpeg (74.2 Кбайт, 4 просмотров)
Вложения
Тип файла: psl Тест.psl (273.7 Кбайт, 1 просмотров)


__________________
Нет абсолютно бездарных людей. Каждый бездарен в своей области.
tvf вне форума   Ответить с цитированием
Старый 05.03.2024, 08:28   #8
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 163
Благодарил(а): 240 раз(а)
Поблагодарили: 165 раз(а) в 157 сообщениях
По умолчанию Ответ: Элемент "Вывод числа"

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


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Старый 05.03.2024, 08:38   #9
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 752
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Элемент "Вывод числа"

На фото в предыдущем посте оба значения выводятся из ФБД одним из стандартных для лоджика шрифтов. Одинаковых. Разница только в фоне. У одного прозрачный, у другого нет. А разница значительная.


__________________
Нет абсолютно бездарных людей. Каждый бездарен в своей области.
tvf вне форума   Ответить с цитированием
Старый 05.03.2024, 11:07   #10
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Элемент "Вывод числа"

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

А все WYSIWYG немного грешат неточностями.
Ну конкретно эта проблема решаема, для основного шрифта Miriad математику позиционирования я разработал. А так всё верно, для рандомного шрифта визивиг очень непросто сделать, т.к. винда и Qt под винду и Qt под линукс рендерят шрифты по разному. Хотя тоже, "мультиплатформа, везде одинаково (с)" и всё такое.


Добавлено через 2 минуты


Цитата:
Сообщение от tvf Посмотреть сообщение
Если не выводить значение в Смарте, а только из ФБД, то
Не повторяйтесь, я вам уже объяснил, почему так происходит.

Выводить нужно либо всё на СМАрте, либо всё на ФБД. Либо всё руками разруливать, если используете смесь. И смириться с тем, что не разруливается, искать способы обхода.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 05.03.2024, 11:12   #11
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 752
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Элемент "Вывод числа"

Цитата:
Сообщение от tvf Посмотреть сообщение
И при каждом выводе отдельные пиксели не записываются по новой, а идет накопление.... И тут уже вопросы не к Смарту, а к Лоджику.
Это ошибка на уровне идеологии. При выводе числа с прозрачным фоном и полутонами в качестве фона берется значение конкретного пикселя из предыдущего такта. А там полутона от предыдущего вывода числа. И далее по кругу. Пока все полутона не станут как цвет цифры. Тут не только круг в квадрат превращается. Если выводить @ можно вообще черное пятно получить.


__________________
Нет абсолютно бездарных людей. Каждый бездарен в своей области.
tvf вне форума   Ответить с цитированием
Старый 05.03.2024, 11:15   #12
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Элемент "Вывод числа"

Цитата:
Сообщение от tvf Посмотреть сообщение
Это ошибка на уровне идеологии.
Вы не до конца понимаете, что такое прозрачность и как она работает. Не более того.

Я не вижу никаких проблем в работе графики. Да, она работает не так, как вы ожидаете, но это проблема в ваших ожиданиях, а не в графике.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 05.03.2024, 11:20   #13
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 752
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Элемент "Вывод числа"

Цитата:
Сообщение от Arsie Посмотреть сообщение
Выводить нужно либо всё на СМАрте, либо всё на ФБД. Либо всё руками разруливать, если используете смесь. И смириться с тем, что не разруливается, искать способы обхода.
Способы обхода есть. Но это из серии гланды автогеном прижигать. Через задницу.


__________________
Нет абсолютно бездарных людей. Каждый бездарен в своей области.
tvf вне форума   Ответить с цитированием
Старый 05.03.2024, 11:28   #14
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Элемент "Вывод числа"

Цитата:
Сообщение от tvf Посмотреть сообщение
Способы обхода есть. Но это из серии гланды автогеном прижигать. Через задницу.
Это вам так кажется. Я это я вам как человек, программировавший игры на ассемблере, говорю. Всё в порядке, вы просто не совсем понимаете, что происходит. Но это нормально для программиста ПЛК, требовать от вас понимания я не просто могу, но это даже звучит смехотворно.

Поэтому повторю свой совет: либо всё делаете на СМАрте, либо всё на ФБД.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 06.03.2024, 05:53   #15
tvf
Senior Member
 
Регистрация: Dec 2011
Сообщения: 752
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Элемент "Вывод числа"

Попробую все варианты. И выберу наименее трудозатратный.


__________________
Нет абсолютно бездарных людей. Каждый бездарен в своей области.
tvf вне форума   Ответить с цитированием
Ответ


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

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 17:20.


Версия vBulletin: 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2024