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

Опрос кнопок в процессе выполнения макроса

Добавлено: 28 янв 2024, 14:02
NOGAN75
Добрый день. Помогите с красивым решением задачи:
Выполняется макрос, который собственно управляет инструментом.
В процессе выполнения макроса мне необходимо чтобы пользователь мог вводить коррективы в процесс выполнения.
Для этого я сейчас сделал окошечки UserDRO, в которые пользователь вбивает значение 0 или 1, которые опрашиваются в макросе и в зависимости от этого макрос принимает решение и выполняет или не выполняет заданные действия.
В принципе все работает, но через UserDRO кривовато как-то. По идее кнопочки бы ему нажимать отключая/включая операции, но кнопки не знаю как опрашивать...

Может кто чего посоветует?

Re: Опрос кнопок в процессе выполнения макроса

Добавлено: 29 янв 2024, 14:03
shad
Возможно Вам нужно вот это.
MachMsg
Function MachMsg(Prompt As String, Title As String, DialogType As Integer) As
Integer

https://www.machsupport.com/wp-content/ ... og_Ref.pdf
страница 51

Re: Опрос кнопок в процессе выполнения макроса

Добавлено: 29 янв 2024, 18:59
NOGAN75
Добрый день, вы имеете ввиду функцию MachMsg?
Но она же модально выводится и ждет ответа от пользователя. Мне же надо чтобы остановки выполнения процесса не проиcходило...

Re: Опрос кнопок в процессе выполнения макроса

Добавлено: 29 янв 2024, 19:39
hmnijp
NOGAN75 писал(а): Мне же надо чтобы остановки выполнения процесса не проиcходило...
макросы не могут асинхронно работать, как и программы, они исполняются в одном последовательном цикле. это только плагины могут. Ну или вот как вы делаете, опрашивать userdro, либо переменные плагина(которые могут быть в своём гуи параллельно обычному).

Только может вам не дро надо c единичкой и нулём, а togglebutton?

Re: Опрос кнопок в процессе выполнения макроса

Добавлено: 29 янв 2024, 23:02
NOGAN75
togglebutton вполне бы подошел, но в MACH3 нет такого элемента интерфейса. Или я что-то не знаю?

Re: Опрос кнопок в процессе выполнения макроса

Добавлено: 30 янв 2024, 01:43
hmnijp
NOGAN75 писал(а): 29 янв 2024, 23:02 togglebutton вполне бы подошел, но в MACH3 нет такого элемента интерфейса. Или я что-то не знаю?
Кнопка исполняет скрипт который переключает led.
If (GetUserLED(1111) = 0) Then
SetUserLED(1111,1)
Else
SetUserLED(1111,0)
End If
(для красивости в интерфейсе ставят двухцветный red/green led, и поверх него кнопку прозрачную)

Re: Опрос кнопок в процессе выполнения макроса

Добавлено: 07 фев 2024, 20:37
NOGAN75
Кнопка не может исполнить скрипт и что-то поменять на экране. Потому что в этот момент исполняется другой скрипт.