Mach3 макросы с полного нуля, разбор создания скриптов.
Вставка
- Опубліковано 8 чер 2021
- В этом видео я даю самые основы, которые помогут Вам писать свои скрипты для mach3 а так же после того как вы поймете базу Вы сможете разбирать и чужие скрипты.
Учитывая разность опыта, в видео вошел разбор синтаксиса самого языка.
Затронутые темы
1) Переменные, if elseif , while, for
2) Функции, видимость переменных, msgBox, setVar
3)MDI, Code, IsMoving
4) Конкатенация строк(&) Dro, set и get
5)Button, Sleep, Led, Timer
6) IsActive, ActivateSignal, DeactivateSignal
Для желающих отблагодарить (и поддержать канал)
карта SBER: 4276 4000 8482 6727
Скачать руководство и п.о.
cloud.mail.ru/public/yEZY/96s...
По вопросам найти можно :
ВК
id93204874
Ватсап
+7 (978) 059-26-24
Почта
8romeo8@list.ru
Музыка: Цифей
Спасибо! Давно искал как писать макросы. Очень доходчиво!
Большое спасибо! Очень подробно и понятно изложено!
Спасибо за шикарный материал, с меня подписка и лайки! Давно хотел порядок навести в Mach3......На счёт музыки в фоне, лично мне она не мешает, релакс норм! Желаю удачи и успехов! Канал и тема - СУПЕР ОТЛИЧНЫЕ!!!! Отдельная благодарность за материал для скачивания!
Блин... Этому видео аналогов я не видел. Спасибо вам огромное за проделанную работу. Буду очень признателен, если создадите уроки по работе с переменными в g кодах в мач3
Полезненько! 👍
Видео реально огонь!
Все таки 3 года изучения. Очень хотел сделать экран для своего станка (С возможностями которых нет в mach) Я своего добился (И просто радуюсь когда за станком работаю )
Что бы знания просто так не пропадали записываю для других.
@@user-qn6pb8cj9b за это вам огромное спасибо. Благодаря таким людям как вы и к примеру Александр с арматуры Урала, простым людям есть возможность заработать себе на жизнь путём не большой автоматизации своих поцессов. Есть люди самодельщик чисто продажники. Делают по сути в принципе не сложные устройства, датчики для ЧПУ,а цены по ним по сути не соизмеримы не по себестоимости, не по труду. Я вообще в принципе работаю сварщиком, недавно задумался ЧПУ, не много познакомился с ардуино, и как всё тоже по видео с ютуб в обеды на работе. Интересно когда все-таки что-то за нас делают машины.
Пока мне конечно ближе плазма, но думаю потом и до фрезера доберусь)
@@alekseiiamschikov2
Ты взял правильное направление.
ЧПУ это и интересно и если соберешь еще и какая ни кокая денюшка.
Арматуру урал знаю. Он ТХК предложил (Не плохой вариант - дешевый) и с возможснотью доработать .
В плазме нужен хороший источник. это половина успеха сразу. Мое следующее видео (по ремонту плазменного станка ) вносит интересные реализации на программе mach.
Вам будет полезно его просто просмотреть .
@@alekseiiamschikov2
Мой Ватсап
+7 978 059 26 24
Наверняка будут сложности. (И непанимание )
Здравствуйте! В первую очередь огромное спасибо за видео пока это лучшее что видел. Может Вы подскажете - мне необходимо принимать данные и управлять устройством при помощи аналогового сигнала 0+10 В, может есть команда для макроса, работа с rs232 то же подходит???
Команд по работе с rs232 нет.
Единственный момент через который можно попробовать провернуть подобное это modBas
Идея простая - Что бы modbas записывал считанные данные аналогового сигнала в некоторое dro - например 1555
А в макросе можно проверять это дро и уже в зависимости от данных проводить нужные действия.
Максимальная реакция записи в дро через модбас это 25 микросекунд
Учитывая что 200 тактов кристала нужно на преоброзования сигнала через компоратор
запись в dro будет ~ 40 раз в секунду
Скорость считывания аналогового сигнала
0.025 (При внутренем кварце 8мг.) Что с головой укладывается по времени.
Вот вам идея .
Реализовывайте !
очень полезное видео, и что самое главное не повтор какой нибудь а единственное в своем роде на ютубе
Здравствуйте. После замены мат.платы нажимаю ресет выскакивает окно нет подключения. Настройки ни какие не менял, сначала не появился лпт1 потом через биос включил и в мач3 лпт1 но ни чего не меняется. В чём может быть причина?
На музычку нужна макрос м5 прописать.
Уважаемый Максим. Прошу помочь в следующем: после подключения плагина (от производителя контроллера) координаты станка (OEM Code 83, 84, 85 и т.д.) нельзя поменять ни через SetOEMDro ни через SetMachZero. Может есть предположения почему?
Мне тяжело ответить
По хорошему счету - возможно скорее всего вы делаете что то не так
По тому что на всех контроллерах у меня все работает,
Единственные контроллеры которые мне так еще и не довелось погонять это Ethernet Контроллеры (В силу их цены)
Здравствуйте. Как задать время на выполнение определенного скрипта? Например, смена инструмента производится секунд за 10. В скрипте нужно указать что если за это время инструмент не сменится, то должен нажаться ресет
Воспользуйтесь одним из 24 таймеров.
setTimer(10) - Сбить таймер 10
While (GetTime(10) < 10) Then
***
Sleep(100)
Wend
Если у таймера еще не прошло 10 секунд после его сброса то код повиснет в цикле
Ниже проверим сколько прошло времени после выхода из под While
if (GetTime(10) > 10) Then
Если прошло времени больше чем 10 секунд
то выполнится это условие
DoButton(800) -> reset
End if
Как то так.
@@user-qn6pb8cj9bспасибо огромное!
Подскажи, а как записать, например, значение X DRO в таблицу смещений G54 в соответствующую графу для Х ???
Не совсем понял.
Что бы переопределить положение X
Достаточно G92 X10
Если нужно сделать сдвиг
Code ("G92 X" & GetDro(0) + Smechenie)
Ну и потом вернуть на место
Code ("G92 X" & GetDro(0) - Smechenie)
Далее поднимать флаг смещения (И опускать после возврата) - это система защиты от Двойного смещения !
Все отлично, только больше музыку на задний фон не ставь. Очень отвлекает
Посоветуйте как реализовать макрос Settriggermacros? Не могу понять куда прописывается данный макрос? Пин настроил, горячиеалавиши тоже, а как связать онм301 с моим макросом, где прописывается связь SetTriggerMacros(1001). Не могу понять где это поле для этой записи?
Таблиц названий нет.
Есть просто правило на основе которых вызов макроса производится по наименованию самого макроса определенным образом.
Макросы сохранять в папку mach3/macros/имя профиля/ M*.m1s
M*.m1s - и есть правило сохранения
вместо звезды подставляется любой из индексов начиная с 1000 до 2250 (если не ошибаюсь)
Вызывается макрос потом с MDI либо с УП.
M1000
Именовать макросы можно и по своему. Но тогда их нужно вызывать внутри макроса который будет вызываться по команде M1000
(Но это замедляет выполнение макроса )
В таком случаи проще вставить кусок кода в этот же макрос.
Доброго дня. У меня к Вам вопрос. Как включить выход "Output#" во время исполнения комманды G01 без остановки движения по оси?
Есть одна команда которая это делает
M10 - включает OUTPUT5
M11 - Выключает OUTPUT5
Других способов не знаю . (либо их нет )
Этот способ я знаю. К сожалению, происходит остановка движения. В любом случае спасибо.
@@user-jb2wo6lv6e
Попробуйте через BrainCode - делайте дублирующие сигналы Ламп на выходы Output - а в нужное время просто включайте и выключайте лампы
(возможно этот метод обойдет эту проблему )
Здравствуйте, можно ли написать макрос для сканирования поверхности печатной платы перед её фрезерованием? Как добавить замеры в G-код?. Макросы пишутся одинаково на всех контроллерах? У меня DDCS 4.1.
Если речь идет о серии одного производителя тогда пишутся одинаково.
Макросы для DDCS пишутся по другому чем у mach3. Индексы команд тоже отличаются, у этого производителя своя таблица индексов.
Макрос из под mach3 не подойдет для DDCS.
Поясню. В Мач3 есть таблица инструментов (Наснройка/Таблица инструментов). Мне нужно при определении вылета инструмента номер1 по Z , значение из DRO машинных координат через скрипт и некоторых пересчетах отправить в графу Height(H) в таблице инструментов.
А - В таблице инструментов
Понял.
Попробуйте
SetToolParam(1, 2, 1)
Первое значение - Индекс инструмента
Второй параметр - номер ячейки (С лева на право) Ячейка Height(h) = 2
Третий параметр - Само значение .
Доброго времени суток подскажите пожалуйста зломаный или без лицензионных мач 3 где можно скачать рабочих?
Без лицензионных весий нет.
Но - mach3 списывалась с linuxCNC
Можете поставить ее - она безплатная.
и еще как в маче делать такие операции как вырезать круг , квадрат сверловка не прибегая к програмам арткам и подобные . был бы рад безгранично если растолкуете
Для Плазменной резки это выглядело бы так
Круг
Code ("G03X50Y50I-23J-23")
I и J - смещение центра окружности от текущей координаты (так же есть возможность указывать абсалютные координаты центра отверстия )
Квадрат подразумевает 4 точки
x1 = 50
Y1 = 50
X2=100
Y2 = 50
X3=100
Y3 = 100
X4 = 50
Y4 = 100
Code (G01X1Y1)
Code (G01X2Y2)
Code (G01X3Y3)
Code (G01X4Y4)
Решение не оптимизировано для того что бы было наглядно и понятно !
Сверловка по идее происходит опусканием оси Z с определенной скоростью до определенной глубины
Тогда все просто
Code (G01Z-20F50)
F -> Скоросто опускания сверла в метал
Здравствуйте! Возможно ли взять у вас парк уроков ?
Думаю что можно.
(Тут главное что бы время позволяло )
RuDesktop (Удаленное соединение)
@@user-qn6pb8cj9b как возможно с Вами связаться?
Напишите мне в ватсап.
При необходимости согласуем.
89780592624
Здравствуйте, у меня скрипт поиска ноля по Z. Когда едет вниз, не реагирует на срабатывание EStop. Что можно добавить, чтобы во время движения постоянно чекался статус кнопки Estop?
Что то с программой. Ставьте другую версию.
Либо как вариант на кнопку Стопа выведите Reset .
@@user-qn6pb8cj9b ну вообще reset автоматически всегда срабатывает когда я нажимаю кнопку стоп. единственное что я не обратил внимания происходит ли это во время выполнения скрипта.
@@user-qn6pb8cj9b А ещё у меня бывает что после выполнения какой-то управляющей программы сохраняются настройки скорости, и script просто ныряет в таблетку
@@incyberideas
Где то нарушена логика алгоритма.
Нужно все тщательно проверить и найти утечку (или недочет )
Как мне сделать счётчик пройденных циклов?
Зависит от кода который вы подгружаете
Но идея всегда одна
Циклы повторяются а значит вам просто нужно добавить подсчет в структуру выполнения цикла.
Если макросы есть в циклах то проще всего это сделать в одном из них, макросов нет тогда нужно просто написать свой макрос с увеличением ячейки на 1 при выполнении.
Пример с ячейкой 1500
setOemDro(1500,getOemDro(1500)+1)
Здравствуйте! Спасибо за видео! Подскажите пожалуйста, пытаюсь сделать сканирование поверхности - "карту высот"
с помощью программы G-Code_Ripper, но mach3 пишет странные координаты, точнее когда при опускании датчика он выхходит за
установленный придел X и Y пишет нормально а Z установленый придел, здесь как бы все правильно
24.69063,-21.00312,-5.00000
-24.69063,2.47812,-5.00000
0.00000,2.47812,-5.00000
24.69063,2.47812,-5.00000
-24.69063,25.95938,-5.00000
0.00000,25.95938,-5.00000
24.69063,25.95938,-5.00000
а вот когда датчик касания срабатывает, пишет все одинаково и какие то странные координаты
21.40313,25.90000,-5.00000
21.40313,25.90000,-5.00000
21.40313,25.90000,-5.00000
21.40313,25.90000,-5.00000
21.40313,25.90000,-5.00000
21.40313,25.90000,-5.00000
21.40313,25.90000,-5.00000
скрипты "Auto tool zero"пробовал разные, переделывал по всякому эффект один и тот же. В чем может быть причина?
Выясняйте . Делаете что то не так. От куда берется эта координата ? Прогоните скрипт по шагово .
@@user-qn6pb8cj9b пробовал 2 скрипта с одним и двумя касаниями, не могу понять на каком шаге идет запись в файл
PlateOffset=0.0 'толщина платы мм.
Zup=20 'Расстояние на которое отойдет фреза после коррекции
MaxZPlus=50 'максимальный ход станка по оси Z мм.
Sleep 100 'Пауза 0,1 сек.
CurrentFeed = GetOemDRO(55) 'Запомнить текущюю скорость, для того чтобы восстановить после коррекции.
Code "F300" 'Задать скорость подачи до касания инструментом
ZNew =GetOemDRO(158)- GetOemDRO(85) 'опустить инструмент до касания
Code "G31Z" &GetOemDRO(158)
While IsMoving() 'Подождать пока произойдет касание платы.
Wend
ZNew = GetOemDRO(180) 'читать точку касания
'Call SetDro (2,ZNew)
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
@@user-cs3wu7xn4k при выполнении G31 - происходит запись в файл
@@user-qn6pb8cj9b есче вопрос, а точно ли выполняется скрипт "Auto tool zero" у меня стоит на два касания,
а при выполнении программы происходит одно на "точку" может где то есть другой? и какое "окно" с данными записывается?
@@user-cs3wu7xn4k
Без понятия.
Добрый вечер скажите пожалуйста где можно приобрести лицензию на мач3
Вот официальные представители
www.machsupport.com/software/mach3/
Вот Алиэкспресс (тоже лицензия)
aliexpress.ru/item/32585069936.html?spm=a2g2w.productlist.0.0.5b8f4061Ydwea6&sku_id=58840737832
Вот еще один продавец
учебник-чпу.рф/mach3/?Lama-google&Mach3+%D0%9A%D0%A3%D0%9F%D0%98%D0%A2%D0%AC&|792641996|gid|41639194536|aid|311097865138|dvc|c|pid|kwd-339598482633|pos||adn|g|mt|b&D0%BA%D1%83%D0%BF%D0%B8%D1%82%D1%8C%20mach3&gclid=CjwKCAiA9tyQBhAIEiwA6tdCrM7uzAeYvSGSBQnV-p3QcwvnYxSNlef03akSN0o2Eyy_3WNsyB9f0RoCji4QAvD_BwE
Извини я немагу через этот официальный сайт желательно приобрести готовый есть? Возможность
@@isigrak7883
Я немного в замешательстве.
Вам нужна Официальная лицензия. Это лицензия регистрируется в базе. Конкретно такую лицензию я Вам не могу предоставить, кроме как порекомендовать купить ее у правообладателей .
Вопрос в том , для чего Вам нужна лицензия. Для некоторых людей которые используют ЧПУ на дому или в своих гаражах могут взять чужую лицензию (другого покупателя) и работать с П.О. как с лицензионной.
Если Вам нужно для предприятия, то вам стоит писать официалам.
Я понел спасибо большое. Мне нужен для промышленного станка для плазмы. А на али? Если купить паедет как вы думаете
@@isigrak7883
Да.
У них тоже лицензия. Единственное для лучшего понимания , у продавца уточните что это именно лицензия.
Они подтвердят . Они должны будут запросить название организации на которую регистрируют. Либо ихняя организация покупает лицензию а Вам ее перепродает .
Уточняйте.
Как кнопку down менять на клаву? Оно отпускает сапло вниз
Это делается в меню config -> system hotkeys
@@user-qn6pb8cj9b ок по пробую спс
@@user-qn6pb8cj9b не подскажете теперь кто отвечает за верх и вниз? Вижу координаты
По идее z+ это идёт вверх , соответственно z- в низ
@@user-qn6pb8cj9b что то не получилось из за чего это может быть?
Максим, как с вами связаться???
Мой Ватсап +7 978 059 26 24
Мой Вк
vk.com/id93204874
скиньте ваши скрипты пожалуйста под видео
Не понял о каких скриптах идет речь ?
А можно музыку убрать вообще из ролика? Выбешивает реально.
Хотите в другом формате - закажите видео
Сделаю без музыки
Разберу интересующие Вас моменты
(Которые укажите при заказе )
А нах..на музыка если речь идёт о Mach3?
Музыку погромче делай, а то мешаешь ее слушать😢
мач3 гавно не стабильное, но за видос огромное спасибо
Тогда какая, не "гавно"?
@@malysh86 беру свои слова назад, добиться стабильной работы можно но плясок с бубнами необходимо совершить прилично.
Здравствуйте. не силен в программировании. Есть плазма чпу, для поиска металла использую макрос M3 такого вида
Code "G31 Z-50 F1000" 'опускаем до касания до -50 со скоростью 1000
While IsMoving() ' Подождать пока произойдет касание
Wend
Code "G92 Z-8" 'обозначаем Z как -8
Code "G0 Z0" 'поднимаемся до 0мм
While IsMoving()
Wend
DoSpinCW() 'включаем плазму
Code "G4 P500" 'пауза 0,5 сек
Code "F2000" '
В верху макроса допиши
Dim saveSpeed
saveSpeed = getOemDro(55)
А в конце макроса
После поджига и опускания на высоту реза
Cade ( "F" & saveSpeed)
@@user-qn6pb8cj9b
так:
Dim saveSpeed
saveSpeed = getOemDro(55)
Code "G31 Z-50 F1000" 'опускаем до касания до -50 со скоростью 1000
While IsMoving() ' Подождать пока произойдет касание
Wend
Code "G92 Z-13" 'обозначаем Z как -3
Code "G0 Z0" 'поднимаемся до 1мм
While IsMoving()
Wend
DoSpinCW() 'включаем плазму
Code "G4 P500" 'пауза 0,5 сек
Cade ( "F" & saveSpeed)
попоробовал, скорости сохраняются отлично, но перестал работать поиск металла а именно эта часть
Code "G31 Z-50 F1000" 'опускаем до касания до -50 со скоростью 1000
While IsMoving() ' Подождать пока произойдет касание
Wend
Code "G92 Z-13" 'обозначаем Z как -3
Code "G0 Z0" 'поднимаемся до 1мм
@@scada5914
Конечно перестал
По тому что wend Это одна команда
А Code ("g31... Это другая
Посмотри внимательно на строку
Wend
Code "G92 Z-13"
Это ошибка !
@@user-qn6pb8cj9b спасибо все заработало как надо) с меня подписка и лайки))