Автор Тема: автоматизация в Давинчи  (Прочитано 2291 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Ivankak

  • Освоившийся
  • **
  • Сообщений: 37
    • Просмотр профиля
автоматизация в Давинчи
« : Сентябрь 11, 2021, 05:53:23 pm »
Здравствуйте.
Если вы использовали Dasvinchi resolv, то знаете, что у него есть вот такая панель цветокорекции и нету шоткатов длят упраления ей.
Вместо этого Блек мэджик продет за несколько тысяч долларов специальный девайс.


есть вот такой девайс


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

То есть я себе работу скрипта представляю так
определяем кнопки на клавиатуре (или сочетания) например в соответствии с названиями кругов на картинке
1 -sadow
2-Midtone
3-Highlights
4-offset

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

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

Я честно прочитал хэлп к кликерману, но не понял, как это запрограмировать. У меня вообще очень маленький опыт программирования.

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


« Последнее редактирование: Сентябрь 11, 2021, 05:57:00 pm от Ivankak »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3756
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: автоматизация в Давинчи
« Ответ #1 : Сентябрь 13, 2021, 10:31:46 am »
Шар трекбола - это то же самое что и перемещение мыши? А колесо - это колесо мыши? Просто никогда не было трекбола в пользовании.

Тогда
если пользователь тронул шарик
Это можно отследить. Отследить положение курсора. Только шар трекбола и мышь это одно и то же. От движений мышью не отделить.

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


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

как указать в каком окне скрипт должен работать?
Лучше пока этого не касаться, эта тема сложнее и с кучей ограничений, да и не нужно это здесь.

Каким оператором лучше распознавать нажатие клавиши или клавиатурного сочетания?
Есть два оператора ISKEYDOWN и GETKEYSDOWN. Что из них лучше, зависит от ситуации. В большинстве, без разницы.

Можно ли сделать, чтобы в каком-то случае нажатия клавиш не доходили до Давнчи и он не отрабатывал их, как свои шоткаты?
Нет. Можно только отключить/включить на время всю клавиатуру и все кнопки для всех программ. При этом программные нажатия кнопок будут работать.

Как правильно организовать цикл для такой задачи?
Обычный бесконечный цикл WHILE

P.S. Пока гуглил трекболы... Kensington Expert Mouse Trackball
« Последнее редактирование: Сентябрь 13, 2021, 03:20:01 pm от Vint »


Ivankak

  • Освоившийся
  • **
  • Сообщений: 37
    • Просмотр профиля
Re: автоматизация в Давинчи
« Ответ #2 : Сентябрь 16, 2021, 01:33:31 am »

получилась такая блок - схема. скачать PDF
Я пока очень плохо ориентируюсь возможностях языка. подскажите пожалуйста конкретные операторы.
какой механизм лучше использовать для опроса клавиш, чтобы меньше нагружать процессор?
если нажата "А" сделатть то-то..
Если нажата "Б" сделать другое..
И так 10 или больше вариантов
Оптимально ли будет использоватб  IF ... END_IF?
Или SWITCH ... END_SWITCH?
или другую конструкцию?

Мне надо следить за тем была ли сдвинута мышь, было ли повернуто колесо мыши и за тем не была ли нажата одна из нужных клавиш.
Не могу найти оператор, который отдает координаты мыши.
Не могу найти оператор, который сообщает о повороте колеса мыши.
можно ли использовать что-то вроде функции win API mouse_event MOUSEEVENTF_WHEEL (Кнопка колеса повернута)или MOUSEEVENTF_MOVE(Произошло движение) ?
может есть готовый плагин, который дополняет язык этими возможностями?
Вижу, что есть работа с массивами, но не могу найти, как задать массив, как обратиться к  элементу по строке и столбцу. Или массив это всегда строка?
Есть оператор INIREAD Функция. Считывает параметр из файла конфгурации (*.ini) Можно ли задать массив в таком ini файле? (как?)

« Последнее редактирование: Сентябрь 16, 2021, 02:09:06 am от Ivankak »

Ivankak

  • Освоившийся
  • **
  • Сообщений: 37
    • Просмотр профиля
Re: автоматизация в Давинчи
« Ответ #3 : Сентябрь 16, 2021, 01:37:29 am »
Да, трекбол и мышь одинаково управляют курсором.

Не нашел оператора для получения координат курсора. Как узнать, что пользователь тронул мышь?
« Последнее редактирование: Сентябрь 24, 2021, 04:45:26 am от Ivankak »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3756
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: автоматизация в Давинчи
« Ответ #4 : Сентябрь 16, 2021, 04:38:02 pm »
Справка -- >> Язык сценариев -->> Введение -> Перечень служебных переменных
$_xmouse Текущие координаты мыши по оси Х
$_ymouse Текущие координаты мыши по оси Y

Примерный сценарий
Код: Clickermann
  1. // запоминаем текущее положение курсора
  2. $xm_old = $_xmouse
  3. $ym_old = $_ymouse
  4.  
  5. WHILE(1)
  6.    // основной скрипт
  7.  
  8.    // когда нужно проверить сместился ли курсор, проверяем так
  9.    IF(($_xmouse != $xm_old) | ($_ymouse != $ym_old))
  10.        LOGWRITE("Курсор сместился")    
  11.    END_IF
  12.    WAITMS(50)
  13. END_CYC


Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3756
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: автоматизация в Давинчи
« Ответ #5 : Сентябрь 16, 2021, 05:57:20 pm »
Я пока очень плохо ориентируюсь возможностях языка. подскажите пожалуйста конкретные операторы.
какой механизм лучше использовать для опроса клавиш, чтобы меньше нагружать процессор?
если нажата "А" сделатть то-то..
Если нажата "Б" сделать другое..
И так 10 или больше вариантов
Оптимально ли будет использоватб  IF ... END_IF?
Или SWITCH ... END_SWITCH?
или другую конструкцию?
Без разницы

Раскидал по всем темам, теперь отследить не успеваешь.

Не могу найти оператор, который отдает координаты мыши.
http://crapware.aidf.org/forum/index.php?topic=5603.msg36707#msg36707

Мне надо следить за тем была ли сдвинута мышь, было ли повернуто колесо мыши и за тем не была ли нажата одна из нужных клавиш.
Не могу найти оператор, который сообщает о повороте колеса мыши.
Всё рассказывал здесь http://crapware.aidf.org/forum/index.php?topic=5603.msg36703#msg36703

Вижу, что есть работа с массивами, но не могу найти, как задать массив, как обратиться к  элементу по строке и столбцу. Или массив это всегда строка?
В справке же есть всё. Есть операторы. Есть в разделе "Введение" внизу часть про массивы. Там же есть ссылка
http://crapware.aidf.org/forum/index.php?topic=319.0

Про многомерные массивы
http://crapware.aidf.org/forum/index.php?topic=321.msg2686#msg2686
http://crapware.aidf.org/forum/index.php?topic=1138.msg5115#msg5115
http://crapware.aidf.org/forum/index.php?topic=2909.msg19070#msg19070

Есть оператор INIREAD Функция. Считывает параметр из файла конфгурации (*.ini) Можно ли задать массив в таком ini файле? (как?)
Формат ini файлов подразумевает секции и в них параметр=значение
Никаких массивов там нет. Можешь хранить одномерный массив объединив значения через разделитель при записи и так же разделяя при чтении.
Не проблема так хранить
Код: Clickermann
  1. var1=значение_1,значение_2,значение_3
  2. $str = INIREAD("config.ini", "var1")
  3. STRSEPARATE($str, ",", $arr)

Можно хранить массив в отдельном файле,  каждое значение массива на новой строке. Есть операторы для чтения записи TFREADARR, TFWRITEARR.


Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3756
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: автоматизация в Давинчи
« Ответ #6 : Сентябрь 16, 2021, 06:21:44 pm »
По блок схеме набросок
Код: Clickermann
  1. $N = 0
  2. $xm_old = $_xmouse
  3. $ym_old = $_ymouse
  4.  
  5. SUB(Will)
  6.    LUP($_xmouse, $_ymouse)
  7.    WAITMS(100)
  8.    LDOWN($X[$N], $Y[$N])
  9.    WAITMS(100)
  10. END_SUB
  11.  
  12. WHILE(1)
  13.    IF(($_xmouse != $xm_old) | ($_ymouse != $ym_old))
  14.        // LOGWRITE("Курсор сместился")
  15.        IF($N != 0)
  16.            Will()
  17.            $xm_old = $_xmouse
  18.            $ym_old = $_ymouse
  19.        END_IF
  20.    END_IF
  21.  
  22.  
  23.    GETKEYSDOWN($keys)
  24.    IF(ARRSIZE($keys) > 0)
  25.        $key_code = $keys[0]
  26.        IF($key_code >= 48) & ($key_code <= 57)
  27.            $key = $key_code - 48
  28.            $N = $key
  29.            print("Нажата кнопка ", $key)
  30.  
  31.            IF($key > 0)
  32.                Will()
  33.            END_IF
  34.  
  35.        END_IF
  36.    END_IF
  37.  
  38.    // С колесом нужно что-то делать
  39.    WAITMS(20)
  40. END_CYC
  41.  
  42. HALT

Непонятно что за куча массивов справа.

В начале схемы, кажется сделано плохо. Сначала нужно определить если N не равно 0, тогда только определять сместился ли курсор.

С колесом не знаю что делать. Нет функции его определения.


Ivankak

  • Освоившийся
  • **
  • Сообщений: 37
    • Просмотр профиля
Re: автоматизация в Давинчи
« Ответ #7 : Сентябрь 17, 2021, 02:54:59 am »
сори, не могу понять синтаксис
вы писали
Цитировать
Формат ini файлов подразумевает секции и в них параметр=значение
Никаких массивов там нет. Можешь хранить одномерный массив объединив значения через разделитель при записи и так же разделяя при чтении.
Не проблема так хранить
Код: Clickermann

Код: Clickermann
  1. var1=значение_1,значение_2,значение_3
  2. $str = INIREAD("config.ini", "var1")
  3. STRSEPARATE($str, ",", $arr)


Не очень понимаю, что значит" никаких массивов там нет"
1. как хранить данные в ini файле
из описания в хэлпе я понял, что одна строка - одно значение, обращаться по номеру строки. А тут вы описываете другую конструкцию. Не могли бы вы прояснить:
как выглядят секции?
Первая строка в в этом примере и есть секция из ini файла и сам файл будет иметь следующее содержание?
var1=значение_1,значение_2,значение_3
var2=значение_1,значение_2,значение_3
.....
varN=значение_1,значение_2,значение_3

Будут ли проигнорированы пробелы и знаки табуляции? (например "12 , 34 , 5 ")
Можно ли таким образом в одном ini файле задать весь двумерный массив (по строкам) или надо все же отдельный ini на каждую строку?
(было бы удобно задавать массив прямо из csv файла с разделителями - запятыми)
Правильно ли я понимаю, что надо будет в программе записать столько операторов INIREAD, сколько строк в массиве или можно в одном операторе прочитать весь массив?



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

Код: Clickermann
  1. $str = "12,45,56" // без кавычек не работает. Как язык отличает это строковые значения или числовые? Если стоят кавычки, то в массиве все равно числа?
  2. strseparate($str, ",", $arr)
  3. print($x[1])

я вижу две переменных $str и $arr, но не очень понимаю, как их использовать
str - входная строка / что это за переменная? она появляется только для объявления строки?
$arr - выходной массив / в этом месте происходит объявление массива? А если мне надо 2 строки, то strseparate писать после каждой строки? А если одномерный массив, то зачем 2 переменных и str и arr?

Как задать несколько строк в двумерном массиве?
Если не сложно, пожалуйста напишите пример, как задать одномерный и двухмерный массив.


« Последнее редактирование: Сентябрь 17, 2021, 04:33:57 am от Ivankak »

Ivankak

  • Освоившийся
  • **
  • Сообщений: 37
    • Просмотр профиля
Re: автоматизация в Давинчи
« Ответ #8 : Сентябрь 17, 2021, 04:19:12 am »
Спасибо за код.
Массив это координаты органов управления Давинчи, на которые надо позиционировать курсор.
N - это переменная, условный номер органа управления для удобства она номер элемента в массиве, где хранятся координаты.
Вот картинка - номера не обязательно в таком порядке, просто для ясности.

« Последнее редактирование: Сентябрь 17, 2021, 04:23:01 am от Ivankak »

Ivankak

  • Освоившийся
  • **
  • Сообщений: 37
    • Просмотр профиля
Re: автоматизация в Давинчи
« Ответ #9 : Сентябрь 17, 2021, 04:53:51 am »
по поводу колеса мыши.
http://crapware.aidf.org/forum/index.php?topic=33.msg562#msg562
Цитировать
"Количество функций Clickermann`а неуклонно продолжает расти, но необходимо очень много времени, чтоб можно было сделать свои обертки на все функции Windows. А теперь, когда появилась эта функция мы можем на прямую работать с интерфейсами окошек. И использовать максимум функционала."
далее по ссылке говорится, что можно использовать напрямую коды winapi из windows для команды POSTMESSAGE

означает ли это, что можно для команды GETMESSAGE также использовать коды?
тут https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-mouse_event
код для события поворот колеса
MOUSEEVENTF_WHEEL
0x0800
Колесо было перемещено, если у мыши есть колесо. Величина движения указывается в dwData

аналогично для проверки движения мыши можно использовать событие
MOUSEEVENTF_MOVE
0x0001
Произошло движение.
« Последнее редактирование: Сентябрь 17, 2021, 04:59:07 am от Ivankak »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3756
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: автоматизация в Давинчи
« Ответ #10 : Сентябрь 17, 2021, 09:53:15 am »
по поводу колеса мыши.
http://crapware.aidf.org/forum/index.php?topic=33.msg562#msg562
Цитировать
"Количество функций Clickermann`а неуклонно продолжает расти, но необходимо очень много времени, чтоб можно было сделать свои обертки на все функции Windows. А теперь, когда появилась эта функция мы можем на прямую работать с интерфейсами окошек. И использовать максимум функционала."
далее по ссылке говорится, что можно использовать напрямую коды winapi из windows для команды POSTMESSAGE

означает ли это, что можно для команды GETMESSAGE также использовать коды?
тут https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-mouse_event
код для события поворот колеса
Нет, нельзя. В справке же написано что POSTMESSAGE "Посылает окну системное сообщение". Только посылает, никакие ответы не получает.
По ссылке и нет никаких кодов. Это функция на C++ которую можно вызвать и получить значения. Кликером это не сделать в стандартном функционале. Может можно на dll? но это к другим.


Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3756
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: автоматизация в Давинчи
« Ответ #11 : Сентябрь 17, 2021, 10:39:56 am »
сори, не могу понять синтаксис
Не очень понимаю, что значит" никаких массивов там нет"
1. как хранить данные в ini файле
из описания в хэлпе я понял, что одна строка - одно значение, обращаться по номеру строки. А тут вы описываете другую конструкцию. Не могли бы вы прояснить:
как выглядят секции?
Первая строка в в этом примере и есть секция из ini файла и сам файл будет иметь следующее содержание?
var1=значение_1,значение_2,значение_3
var2=значение_1,значение_2,значение_3
.....
varN=значение_1,значение_2,значение_3
Вот так и нет. Одна строка - одно значение. Обращаться не по номеру строки, нет там такого. Обращение идёт по имени секции и имени параметра.

Формат ini
Код: PHP
  1. [Section1]
  2. par1=значение1
  3. par2=значение2
  4. par3=значение3
  5.  
  6. [Section2]
  7. par1=значение4
  8. par5=значение5
  9. par6=значение6

Имена параметров в одной секции уникальные. Определённое имя - только одно. В разных секциях могут быть одинаковые имена параметров.
Кодировка файла ini win1251.

Читаем параметр "par1" из одной секции 1 и из секции 2
Код: Clickermann
  1. $var1 = INIREAD("config.ini", "par1", "Section1")
  2. $var2 = INIREAD("config.ini", "par1", "Section2")

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

Будут ли проигнорированы пробелы и знаки табуляции? (например "12 , 34 , 5 ")
Не будут. Всё перейдёт в значение. Но при извлечении из массива это не помешает их переводу в числа (пробелы точно). В более старых версиях мешало. Поэтому я привык пробелы не оставлять если строка будет биться по разделителю.
« Последнее редактирование: Сентябрь 17, 2021, 10:54:59 am от Vint »


Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3756
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: автоматизация в Давинчи
« Ответ #12 : Сентябрь 17, 2021, 11:00:51 am »
Код: Clickermann
  1. $str = "12,45,56" // без кавычек не работает. Как язык отличает это строковые значения или числовые?
Конечно не работает. Все строки должны быть заключены в кавычки.
Если значение можно перевести в число, то переведёт, если нельзя - останется строкой.

Если стоят кавычки, то в массиве все равно числа?
Если можно перевести в число - то будут число.

Вот тест
Код: Clickermann
  1. $str = "12, 45, 56"
  2. strseparate($str, ",", $arr)
  3. print("==", $arr[2], "==")  // == в начале и конце чтобы видны были пробелы
  4. print($arr[2] + 10, "   сложение выполняется")
  5.  
  6. IF($arr[2] = 56)
  7.    print("равно")
  8. ELSE
  9.    print("НЕ равно")
  10. END_IF
  11.  
  12. HALT

Вывод:
Цитировать
11:00:04 == 56==
11:00:04 66   сложение выполняется
11:00:04 равно


Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3756
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: автоматизация в Давинчи
« Ответ #13 : Сентябрь 17, 2021, 12:03:36 pm »
$str - входная строка / что это за переменная? она появляется только для объявления строки?
$arr - выходной массив / в этом месте происходит объявление массива?
Да.
Да.
$str можно не задавать и писать строку прямо в
Код: Clickermann
  1. strseparate("12,45,56" ",", $arr)
Но это неудобно если строка длянная или получается откуда-то извне.

А если одномерный массив, то зачем 2 переменных и str и arr?
Непереводимая игра слов  :)


Код: Clickermann
  1. $str = "12,45,56" // без кавычек не работает. Как язык отличает это строковые значения или числовые? Если стоят кавычки, то в массиве все равно числа?
  2. strseparate($str, ",", $arr)
  3. print($x[1])

Как задать несколько строк в двумерном массиве?
Если не сложно, пожалуйста напишите пример, как задать одномерный и двухмерный массив.
Это и есть пример задания одномерного массива. Только принт неправильный

Код: Clickermann
  1. // одномерный
  2. STRSEPARATE("12,45,56", ",", $one_dimensional_array)
  3.  
  4. LOGWRITE("Одномерный массив")
  5. LOGWRITE("Размер массива: ", ARRSIZE($one_dimensional_array))
  6. FOR($i=0, $i < ARRSIZE($one_dimensional_array))
  7.    LOGWRITE("[", $i, "] = ", $one_dimensional_array[$i])
  8. END_CYC
  9. LOGWRITE(" ")
  10.  
  11.  
  12. // псевдо-двумерный
  13. STRSEPARATE("1,2,3,4", ",", $two_dimensional_array)
  14. STRSEPARATE("10,20,30,40", ",", $two_dimensional_array)
  15. STRSEPARATE("100,200,300,400", ",", $two_dimensional_array)
  16.  
  17.  
  18. // выводим все элементы массива  $two_dimensional_array
  19. LOGWRITE("Двумерный массив")
  20. LOGWRITE("Размер массива: ", ARRSIZE($two_dimensional_array))
  21. FOR($i=0, $i < ARRSIZE($two_dimensional_array))
  22.    LOGWRITE("[", $i, "] = ", $two_dimensional_array[$i])
  23. END_CYC
  24. LOGWRITE(" ")
  25.  
  26. // выводим в двумерном виде  $two_dimensional_array
  27. LOGWRITE("Двумерный вид")
  28. $size = 4
  29. FOR($row=0, $row < ARRSIZE($two_dimensional_array) / $size)
  30.    $line = ""
  31.    FOR($col=0, $col < $size)
  32.        $n = $row * $size + $col
  33.  
  34.        // это для красивого вывода
  35.        FOR($i=0, $i < (3 - $row))
  36.            $line = STRCONCAT($line, " ")
  37.        END_CYC
  38.  
  39.        $line = STRCONCAT($line, $two_dimensional_array[$n])
  40.    END_CYC
  41.    LOGWRITE($line)
  42. END_CYC
  43.  
  44. HALT

Вывод:
12:00:52 Одномерный массив
12:00:52 Размер массива: 3
12:00:52 [0] = 12
12:00:52 [1] = 45
12:00:52 [2] = 56
12:00:52 
12:00:52 Двумерный массив
12:00:52 Размер массива: 12
12:00:52 [0] = 1
12:00:52 [1] = 2
12:00:52 [2] = 3
12:00:52 [3] = 4
12:00:52 [4] = 10
12:00:52 [5] = 20
12:00:52 [6] = 30
12:00:52 [7] = 40
12:00:53 [8] = 100
12:00:53 [9] = 200
12:00:53 [10] = 300
12:00:53 [11] = 400
12:00:53 
12:00:53 Двумерный вид
12:00:53    1   2   3   4
12:00:53   10  20  30  40
12:00:53  100 200 300 400


Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3756
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: автоматизация в Давинчи
« Ответ #14 : Сентябрь 17, 2021, 12:06:45 pm »
Перенесу посты из темы "IF_PICTURE_IN - Для новичков" сюда. Нечего им там делать