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

Mach, популярные и не очень CAD, CAM. Обсуждение и разработка программ для управления станками.
NOGAN75
Новичок
Сообщения: 35
Зарегистрирован: 09 дек 2022, 23:19
Репутация: 1
Контактная информация:

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

Сообщение NOGAN75 »

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

Может кто чего посоветует?
Аватара пользователя
shad
Новичок
Сообщения: 27
Зарегистрирован: 15 окт 2012, 16:13
Репутация: 4
Настоящее имя: Андрей
Откуда: Россия
Контактная информация:

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

Сообщение 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
NOGAN75
Новичок
Сообщения: 35
Зарегистрирован: 09 дек 2022, 23:19
Репутация: 1
Контактная информация:

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

Сообщение NOGAN75 »

Добрый день, вы имеете ввиду функцию MachMsg?
Но она же модально выводится и ждет ответа от пользователя. Мне же надо чтобы остановки выполнения процесса не проиcходило...
Аватара пользователя
hmnijp
Мастер
Сообщения: 1723
Зарегистрирован: 20 авг 2017, 15:02
Репутация: 526
Настоящее имя: Константин
Откуда: Ульяновск
Контактная информация:

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

Сообщение hmnijp »

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

Только может вам не дро надо c единичкой и нулём, а togglebutton?
NOGAN75
Новичок
Сообщения: 35
Зарегистрирован: 09 дек 2022, 23:19
Репутация: 1
Контактная информация:

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

Сообщение NOGAN75 »

togglebutton вполне бы подошел, но в MACH3 нет такого элемента интерфейса. Или я что-то не знаю?
Аватара пользователя
hmnijp
Мастер
Сообщения: 1723
Зарегистрирован: 20 авг 2017, 15:02
Репутация: 526
Настоящее имя: Константин
Откуда: Ульяновск
Контактная информация:

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

Сообщение 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, и поверх него кнопку прозрачную)
NOGAN75
Новичок
Сообщения: 35
Зарегистрирован: 09 дек 2022, 23:19
Репутация: 1
Контактная информация:

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

Сообщение NOGAN75 »

Кнопка не может исполнить скрипт и что-то поменять на экране. Потому что в этот момент исполняется другой скрипт.
Ответить

Вернуться в «Windows / Mach»