Как прикрутить макрос в Mach3 ?

fineobjects_ru

нужно установить макрос на кнопку Auto Tool Zero - Edit Button Script не работает 😦
что делать ? где искать ?
Использую Flash Screen - Mach_Nation_11-20

Макрос такой

PlateThickness = GetUserDRO(1151) 'Z-plate thickness DRO

If GetOemLed (825)=0 Then 'Check to see if the probe is already grounded or faulty
DoOEMButton (1010) 'zero the Z axis so the probe move will start from here
Code “G4 P5” ’ this delay gives me time to get from computer to hold probe in place
Code “G31Z-40 F500” 'probing move, can set the feed rate here as well as how far to move
While IsMoving() 'wait while it happens
Wend
ZProbePos = GetVar(2002) 'get the axact point the probe was hit
Code “G0 Z” &ZProbePos 'go back to that point, always a very small amount of overrun
While IsMoving ()
Wend
Call SetDro (2, PlateThickness) 'set the Z axis DRO to whatever is set as plate thickness
Code “G4 P0.25” 'Pause for Dro to update.
Code “G0 Z25.4” 'put the Z retract height you want here
Code “(Z axis is now zeroed)” 'puts this message in the status bar
Else
Code “(Z-Plate is grounded, check connection and try again)” 'this goes in the status bar if aplicable
Exit Sub
End If

STEPMOTOR

Скрипт для одной и той же цели, проверенный !

Добавляется при помощи редактора рабочего экрана(Mach3Screen) непосредственно в кнопку запускающею процесс коррекции.
Высоту датчика можно задать в скрипте или считать из окна, которое будет расположено на рабочем экране и иметь свободный user OEM код, для возможности обращения к нему.
Если потребуется считывать высоту датчика из окна то надо будет внести небольшую поправку в начало скрипта.

PlateOffset=2.33 'толщина платы мм.

Заменить на
PlateOffset = GetOemDRO(OEM код окна)

fineobjects_ru

Screen работает только с обычными темами - flash не открывает 😦

STEPMOTOR
fineobjects_ru:

Screen работает только с обычными темами - flash не открывает 😦

Ну тогда открывайте прогой в которой был сделан экран. Вам потребуется наверно проект экрана еще … а то флеш файл просто так не отредактируеш. Можно конечно попробовать его декомпилировать в проект специальной прогой.
На саппорте Mach3 флеш экран делают в Macromedia Flash Professional 8.

14 days later
AUS16

Всем привет.
Появилась проблемка. При выполнении команды AUTO TOOL ZERO мак опускает ось Z до касания контакта. И тут наступает самое интересное. Z либо подпрыгивает на заданную высоту (в моем случае 50мм) либо протыкает пластину, то есть опускает пластину на 50 мм. И третий вариант, он опускает ось примерно на 30 мм, (другими словами протыкает пластину) и сразу после этого поднимает ось на высоту +20мм.
Использую Пурилджиковское оборудование PLC4x драйверы PLD545.
Нашел и использую вот такой скрипт

PlateOffset=1.5 'толщина платы мм.
Zup=50 'Расстояние на которое отойдет фреза после коррекции
MaxZPlus=165 'максимальный ход станка по оси Z мм.
Code “G4 P1” 'Пауза 1 сек.
CurrentFeed = GetOemDRO(818) 'Запомнить текущюю скорость, для того чтобы восстановить после коррекции.
Code “F300” 'Задать скорость подачи до касания инструментом
ZNew = GetDro(2) - MaxZPlus 'опустить инструмент до касания
Code “G31Z” &ZNew
While IsMoving() 'Подождать пока произойдет касание платы.
Wend
ZNew = GetVar(2002) 'читать точку касания
Code “G0 Z” &ZNew + 3 'отьехать вверх на 3мм от точки касания
While IsMoving ()
Wend
Code “F50” 'замедлить подачу до 50мм\мин
ZNew = GetDro(2) - 6
Code “G31Z” &ZNew 'опустить инструмент до касания
While IsMoving() 'Подождать пока произойдет касание платы.
Wend
If PlateOffset <> 0 Then
Call SetDro (2, PlateOffset) 'записать в окно Z толщину платы, тем самым откорректировав позицию по Z
Code “G4 P0.25” 'пауза для успешной записи значения в DRO
ZNew = PlateOffset + Zup 'вычислени точки подьема
Code “G0 Z” &ZNew 'поднять на высоту отхода после коррекции
While IsMoving ()
Wend
Code “(Z axis is now zero !)” 'послать сообщение в статус
End If
Code “F” &CurrentFeed 'Возвращаем установленное значение подачи
Sleep 100

Как можно понять использую именно такой скрипт как Вы рекомендуете. Пожалуйста поделитесь мнением по существу проблемы. Фрез уже штук 5 поломал. Помогите одолеть эту задачку. Мне представляется что в теле скрипта есть какая то ошибка. Сам не разбираюсь в этом шифровании. Выложите пожалуста кому не трудно реально работающий скрипт. Или возможные места в электронике где скрывается проблема
Спасибо

niksooon=

Свой прикладываю,однозначно рабочий,тоже из второго поста тока подкорректированный под свое железо…блин чет файл не крепится…
придется так----

PlateOffset=13.28 'толщина платы мм.
Zup=36.72 'Расстояние на которое отойдет фреза после коррекции
MaxZPlus=250 'максимальный ход станка по оси Z мм.

Code “G4 P1” 'Пауза 1 сек.
CurrentFeed = GetOemDRO(818) 'Запомнить текущюю скорость, для того чтобы восстановить после коррекции.

Code “F300” 'Задать скорость подачи до касания инструментом

ZNew = GetDro(2) - MaxZPlus 'опустить инструмент до касания
Code “G31Z” &ZNew
While IsMoving() 'Подождать пока произойдет касание платы.
Wend

ZNew = GetVar(2002) 'читать точку касания
Code “G0 Z” &ZNew + 3 'отьехать вверх на 3мм от точки касания
While IsMoving ()
Wend

Code “F50” 'замедлить подачу до 50мм\мин
ZNew = GetDro(2) - 6
Code “G31Z” &ZNew 'опустить инструмент до касания
While IsMoving() 'Подождать пока произойдет касание платы.
Wend

If PlateOffset <> 0 Then
Call SetDro (2, PlateOffset) 'записать в окно Z толщину платы, тем самым откорректировав позицию по Z
Sleep 500
'Code “G4 P0.25” 'пауза для того чтобы записались значения в DRO
ZNew = PlateOffset + Zup 'вычислени точки подьема
Code “G0 Z” &ZNew 'поднять на заданную Z
While IsMoving ()
Wend
Code “(Z axis is now zeroed !)” 'послать сообщение в статус

End If

Code “F” &CurrentFeed 'Возвращаем установленное значение подачи
Sleep 100
’ End If
'End If
Посмотри может найдешь какие либо отличия…у меня пашет без сбоев

Еще не забывай после включения станка Хотя-бы Z в home отправлять ,за подробными разъяснениями куда обращаться знаешь…

AUS16

Слава спасибо. Макрос заработал, я сразу понял что в нем надо подредактировать. Мой вроде похож, но что то в нем не то. Слава а зачем в макросе прописана команда после касания инструмента опустить Z на 3 мм до следующего касания. Не понятный момент.

niksooon=

Ну во первых макрос писал не я а Stepmotor ,за что ему, Сергею огромное спасибо.Я лишь тестировал на своем станке и чуть подправил под свои нужды
А работает в кратце так-
Опускается на F300 до касания потом поднимается ВВЕРХ на 3мм и снова вниз на скорости 50мм\мин до касания .пишет толщину пластины в DRO и затем
поднимается на заданную высоту У меня на 50мм (13.28 толщина пластины+высота подъема 36.72)
Отличается только тут-
Call SetDro (2, PlateOffset) 'записать в окно Z толщину платы, тем самым откорректировав позицию по Z
Sleep 500
< Это я сам добавил, т к пауза для записи(жирная строка ниже) почему-то у меня не срабатывала,(МАЧ не успевал писать новое значение)
'Code “G4 P0.25” 'пауза для того чтобы записались значения в DRO Эта строка в моем варианте уже не нужна…хоть и не мешает…

tytar

Доброго времени суток всем! Сразу хочу попросить прощения за возможно не в тему пост. Есть токарный станочек, успешно на него поставлены привода и он нормально работает. Хочу “выпендриться” и поставить смену инструмента. С мех. частью и исполняющим устройством проблем нет. Конструкцию частично скопировал с 16К20Ф3 и сейчас в процессе изготовления. За электронику еще не принимался. Вопрос следующий возможно ли написать или дописать код, макрос что нить что бы за командой например Т1 происходила смена инструмента. У меня есть 2 ЛПТ порта один штатный а другой через PCI добавил карту. Можно ли настроить второй порт и что бы я мог управлять его пинами для смены иструмента. Может вопрос задан очень размыто, не знаю как правильно сформулировать саму идею и вопрос.

4 months later
fineobjects_ru

В продолжение темы - а Mach как отправить на поиски площадки ? хочу установить ее в некоем углу чтоб при замене фрезы станок сам ездил в этот угол, проверял высоту фрезы и продолжал работу ? И вопрос два - где в Mach указать на каком контакте висит датчик 0 ?