mach3 auto tool zero скрипт
Mach3 Auto tool Zero
Столкнулся с проблемой.
Скрипт поиска высоты инструмента не выполняется полностью, а если точнее то выполняется только до касания фрезой пластины.
После этого останавливается. На вкладке Diagnostics горит индикатор Digitize. Сильно подозреваю что именно тут кроется причина, но сам не могу докопаться.
Прошу помощи.
Скрипты пробовал разные. Везде одно и тоже. Коснулся пластины и остановился.
выполняется только до касания фрезой пластины.
так вы бы хоть скрипт выложили свой
А скрипт без разницы какой. Любой работает одинаково, до касания.
Предвосхищая вопросы про «по курить форум» и гугл. Курил. ВИдео видел и не одно.
Из того что накопал, это возможные глюки изза комментов на русском в скрипте.
Комментарии убирал совсем, оставлял только тело скрипта. Один фиг, коснулся и замер.
Примеры скриптов которые пользовал.
только «Plate offset» свой надо вбить
Прикрепленные файлы
Чтобы не открывать новую тему, пишу в старую.
Тоже озадачился автопоиском нуля по «Z», накачал скрипты, сделал датчик, подключил и стал пробовать.
Но, вот незадача: VB Script Editor работает некорректно, любую команду обдумывает минут по 10-15.Иногда просто виснет, и приходится перегружать винду. После этого система сообщает, что была восстановлена после ошибки. Чтобы вставить новый скрипт или изменить старый, приходится танцевать с бубном..А чаще всего всё виснет.. Может кто-то подсказать, где порыться? Где лежит этот VB Skript Editor? Может, его надо заменить? Win XP, Mach3 (От Тодосиевича)
Код ошибки: P1050934.bmp 659,9К 569 скачиваний
PS: Пытался найти Visual Basic на компьютере поиском- он не дал результата. Может, другое имя у файла?
Всем привет. Я тут новенький сильно не пинайте пожалуйста. Новую тему плодить не стал, но и перелистав интернет решение не нашел, уже неделю бьюсь. Имеем самодельный фрезер 3 оси на Nemo 34 китайская плата DB25 драйвера DM860A все это «хозяйство» управляется матчем и. в общем то проблем нет точнее не было до недавнего времени.
и теперь вопрос. откуда берется это плавное торможение Z и как с ним бороться? (кстати при каждом нажатии автотул z стартует с разной скоростью, но в датчик врезается всегда)!
Во вкладке диагностика в матче реакция на касание щупом датчика адекватная, да и второе касание на медленной скорости происходит без наезда
Опции темы
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
Добавляется при помощи редактора рабочего экрана(Mach3Screen) непосредственно в кнопку запускающею процесс коррекции.
Высоту датчика можно задать в скрипте или считать из окна, которое будет расположено на рабочем экране и иметь свободный user OEM код, для возможности обращения к нему.
Если потребуется считывать высоту датчика из окна то надо будет внести небольшую поправку в начало скрипта.
PlateOffset=2.33 ‘толщина платы мм.
Заменить на
PlateOffset = GetOemDRO(OEM код окна)
Как можно понять использую именно такой скрипт как Вы рекомендуете. Пожалуйста поделитесь мнением по существу проблемы. Фрез уже штук 5 поломал. Помогите одолеть эту задачку. Мне представляется что в теле скрипта есть какая то ошибка. Сам не разбираюсь в этом шифровании. Выложите пожалуста кому не трудно реально работающий скрипт. Или возможные места в электронике где скрывается проблема
Спасибо
Свой прикладываю,однозначно рабочий,тоже из второго поста тока подкорректированный под свое железо. блин чет файл не крепится.
придется так—-
PlateOffset=13.28 ‘толщина платы мм.
Zup=36.72 ‘Расстояние на которое отойдет фреза после коррекции
MaxZPlus=250 ‘максимальный ход станка по оси Z мм.
Code «G4 P1» ‘Пауза 1 сек.
CurrentFeed = GetOemDRO(818) ‘Запомнить текущюю скорость, для того чтобы восстановить после коррекции.
Code «F300» ‘Задать скорость подачи до касания инструментом
ZNew = GetVar(2002) ‘читать точку касания
Code «G0 Z» &ZNew + 3 ‘отьехать вверх на 3мм от точки касания
While IsMoving ()
Wend
Code «F» &CurrentFeed ‘Возвращаем установленное значение подачи
Sleep 100
‘ End If
‘End If
Посмотри может найдешь какие либо отличия. у меня пашет без сбоев
Работа с датчиком инструмента в Mach3
Присоединение датчика инструмента
Провод присоединённый к самому датчику подключается к клемме входов контроллера IN1…IN5) контроллера в алюминиевом корпусе. Второй провод с «крокодилом» подключаем к клемме GND клеммника INPUT.
Существует два варианта контроллеров в алюминиевом корпусе. Первый вариант был в производстве и до начала 3-го квартала 2016 года. Новая ревизия контроллера поставляется с 3-го квартала 2016 г.
Для ранней версии контроллера подключение концевых выключателей возможно с использованием схемы актуальной ревизии контроллера. Настройки Mach3, так же одинаковы.
Рисунок 1 подключение датчика инструмента к 3-х осевому контроллеру в алюминиевом корпусе.
Рисунок 2 подключение датчика инструмента к 4-х осевому контроллеру в алюминиевом корпусе.
Зажим закрепляем или на станине станка или на самом инструменте.
Штангенциркулем или микрометром измеряем высоту(толщину) датчика инструмента. Полученный результат сохраняем.
Производим установку конфигурации входного сигнала «Probe»
Для этого заходим в меню Config/Port&Pins/Input Signals и устанавливаем конфигурацию входа «Probe” согласно рисунку 3.
Далее подключаем скрипт приведённый в файле скрипт_zero_tool. Txt. При работе с LPT- портом или скрипт zero_tool_usb.txt при работе с USB адаптером.
Открываем главный экран (вкладка Program Run). После этого открываем выпадающее меню “Operator” и выбираем пункт «Edit Button Script”. После этого на главном экране начинают мигать несколько кнопок. Выбираем кнопку «Auto Tool Zero” панели «Tool Information” рисунок 6.
После нажатия кнопки открывается окно скрипта рисунок 7.
Рисунок 8
Rem VBScript To probe In the z axis
If GetOemLed (825) <> 0 Then ‘Проверка нет-ди замыкания между датчиком и фрезой
Code «(Z-Plate is grounded, check connection and try again)» ‘Предупреждение выводимое в строку статуса если есть замыканае между датчиком и фрезой
Else
‘Code «G4 P1» ‘Пауза 1 сек, чтобы дать время для установки
Sleep 100
PlateOffset = 13.3 ‘ 0 Then
Call SetDro (2, PlateOffset) ‘присвоить значение толщины датчика координате Z
‘Code «G4 P1» ‘Пауза для обновления.
Sleep 500
ZNew = PlateOffset + 2 ‘ZNew = толщина датчика + 2 mm, где 2mm величина подъема от точки контакта с пластиной
Sleep 100
‘ZNew = 2 ‘ координата ZNew должна быть больше толщины датчика
Code «G0 Z» &ZNew
Code «(Z axis is now zeroed)» ‘ Сообщение в строке состояния»
End If
Sleep 100
Code «F» &CurrentFeed ‘Возврат к прежней подаче
End If
cnc-club.ru
Статьи, обзоры, цены на станки и комплектующие.
Список скриптов/макросов для Mach
Список скриптов/макросов для Mach
Сообщение aftaev » 18 фев 2012, 10:44
Так как на форуме нет главы программирование засуну сюды.
Re: Список скриптов для Mach
Сообщение VVChaif » 18 фев 2012, 11:39
Re: Сисок скриптов для Mach
Сообщение Nick » 18 фев 2012, 12:26
Use the Console, Luke.
Re: Сисок скриптов для Mach
Сообщение aftaev » 18 фев 2012, 15:11
Re: Сисок скриптов для Mach
Сообщение Nick » 20 фев 2012, 13:21
Use the Console, Luke.
Re: Сисок скриптов для Mach
Сообщение NightV » 20 фев 2012, 13:55
Re: Сисок скриптов для Mach
Сообщение aftaev » 20 фев 2012, 14:18
Re: Сисок скриптов для Mach
Сообщение Nick » 20 фев 2012, 15:24
Ну так это теперь вроде понятно как сделать, G38 + M03.
Use the Console, Luke.
Re: Сисок скриптов для Mach
Сообщение aftaev » 20 фев 2012, 16:22
Морда связана с макросом.
Ник, простой пример есть кусок железки 100*200 и в шпинделе воткнут 3Д пробник. Нужно найти точно его центр. Как сделать
Re: Сисок скриптов для Mach
Сообщение Nick » 20 фев 2012, 18:27
Use the Console, Luke.
Re: Сисок скриптов для Mach
Сообщение aftaev » 20 фев 2012, 19:29
Re: Сисок скриптов для Mach
Сообщение Nick » 20 фев 2012, 19:45
Use the Console, Luke.
Re: Сисок скриптов для Mach
Сообщение aftaev » 20 фев 2012, 19:48
Re: Сисок скриптов для Mach
Сообщение NightV » 21 фев 2012, 15:12
Sub Main()
OldTool = GetOEMDRO(1200) ‘Tool In spindle DRO You must add this to your settings screen
x = GetToolChangeStart( 0 )
y = GetToolChangeStart( 1 )
z = GetToolChangeStart( 2 )
a = GetToolChangeStart( 3 )
b = GetToolChangeStart( 4 )
c = GetToolChangeStart( 5 )
tool = GetSelectedTool()
NewTool = tool
Code «G53 G00 Z-1» ‘Move the tool all the way up
Code «G53 G00 X» & ChX & «Y» & ChY ‘Move to the probe position
Code «G53 Z-15 F600»
While IsMoving()
Wend
Code «G31 F20 Z» & ChZ ‘Z move down untill hit
While IsMoving()
Wend
HitOld = GetVar(2002) ‘Get the Position that the Porbe hit at
Code «G4 P.5»
Code «G53 G00 Z» & ToolUp
Call MovePos(OldTool)
While IsMoving()
Wend
Code «G53 Z-32»
Code «G53 G01 f400 Z» & ToolDown
While IsMoving()
Wend
Code «G4 P.2»
ActivateSignal(Output1) ‘Turn On Draw bar to release the tool
Code «G4 P.5» ‘Wait for the tool to release
Code «G53 G01 Z-32 F400»
Code «G53 G00 Z» & ToolUp
Call MovePos(NewTool)
While IsMoving()
Wend
Code «G53 G00 Z-32»
Code «G53 G01 f400 Z» & ToolDown
While IsMoving()
Wend
Code «G4 P.2»
DeActivateSignal(Output1) ‘Turn Off Draw bar to Clamp the tool
Code «G4 P0.5» ‘Wait for the tool to Clamp
Code «G53 G01 Z-32 f400»
Code «G53 G00 Z» & ToolUp
‘=============================================
Code «G53 G00 Y» & ChY ‘Move to the probe position
‘While IsMoving()
‘Wend
Code «G53 G00 X» & ChX ‘Move to the probe position
‘While IsMoving()
‘Wend
Code «G53 Z-15 F600 » ‘Z move down untill hit
While IsMoving()
Wend
Code «G31 F20 Z» & ChZ ‘Z move down untill hit
While IsMoving()
Wend
HitNew = GetVar(2002) ‘Get the Position that the Porbe hit at
Code «G4 P0.5»
If DiffABS=0 Then End
ZNew=0
ZOld = Getdro(2)
If HitOld HitNew Then ZNew = ZOld + DiffABS :A=2
Call setdro(2,ZNew)
Code «G53 G00 Z» & ToolUp
Code «G00 X» & x & » Y» & y ‘Move back to where the tool change was prompted
‘Code «G00 Z» & z ‘Move back to where the tool change was prompted
Sub MovePos(ByVal ToolNumber As Integer)
Code «G53 Y» & YPos
Code «G53 X» & XPos
cnc-club.ru
Статьи, обзоры, цены на станки и комплектующие.
Скрипты для MACH3.
Скрипты для MACH3.
Сообщение putman » 12 дек 2014, 07:38
Re: Скрипты для MACH3.
Сообщение aftaev » 12 дек 2014, 07:44
Re: Скрипты для MACH3.
Сообщение aftaev » 12 дек 2014, 07:46
Re: Скрипты для MACH3.
Сообщение putman » 12 дек 2014, 08:01
Re: Скрипты для MACH3.
Сообщение aftaev » 12 дек 2014, 08:22
Re: Скрипты для MACH3.
Сообщение putman » 12 дек 2014, 08:27
Re: Скрипты для MACH3.
Сообщение putman » 12 дек 2014, 18:43
Re: Скрипты для MACH3.
Сообщение Сергей Саныч » 12 дек 2014, 19:13
Re: Скрипты для MACH3.
Сообщение putman » 12 дек 2014, 19:20
Re: Скрипты для MACH3.
Сообщение Сергей Саныч » 12 дек 2014, 19:47
Re: Скрипты для MACH3.
Сообщение konyshevk » 12 дек 2014, 19:49
Re: Скрипты для MACH3.
Сообщение shalek » 12 дек 2014, 19:54
‘ 2010 Circular Pocket Probing Script
‘ 3-1-11
Dim FRate1, FRate2
Dim DMax, Clearance, EdgeLength, CornerClear
Dim XStart, YStart
Dim PlateOffset, XOffset, YOffset
Dim ZeroYN
Dim ToolNo
Dim ToolD
Dim ProbeD
Dim ProbeLengthX, ProbeLengthY
Dim XNew, XHit1, Xhit2, XEdge, X1, X2
Dim YNew, YHit1, YHit2, YEdge, Y1, Y2
Dim XPos, YPos, EdgeAngle, PocketXLen, PocketYLen, EdgeDelta, XCenter, YCenter
Dim XScale, YScale, ZScale
FRate1 = abs(GetUserDRO(1821))
FRate2 = abs(GetUserDRO(1822))
DMax = abs(GetUserDRO(1823))
PlateOffset = GetUserDRO(1824)
ToolNo = GetCurrentTool()
ToolD = GetToolParam(ToolNo,1)
If GetUserDRO(1829) = 0 then
ProbeD = ToolD
Else
ProbeD = GetUserDRO(1829)
End If
Clearance = abs(GetUserDRO(1825))
XOffset = GetUserDRO(1826)
YOffset = GetUserDRO(1827)
EdgeLength = abs(GetUserDRO(1828))
ProbeLengthY = GetOEMDRO(801) + DMax
XStart = GetOEMDRO(800)
YStart = GetOEMDRO(801)
If GetOEMLED(801) Then ‘ On = English Measure INCH
Else ‘ Off = Metric Measure MM
If GetOEMLED(1871) Then
ZeroYN=1
Else
ZeroYN=0
End If
CurrentFeed = GetOemDRO(818) ‘ Get the current feedrate to return to later
CurrentAbsInc = GetOemLED(48) ‘ Get the current G90/G91 state
‘Get Axis Scale factors
XScale = GetOEMDRO(59)
YScale = GetOEMDRO(60)
ZScale = GetOEMDRO(61)
‘Set All Axis’ Scale to 1
Call SetOEMDRO(59,1)
Call SetOEMDRO(60,1)
Call SetOEMDRO(61,1)
Sleep(250)
If GetOemLED(16)<>0 Then ‘ Check for Machine Coordinates
Message «Please change to working coordinates»
Call SetOEMDRO(59,XScale)
Call SetOEMDRO(60,YScale)
Call SetOEMDRO(61,ZScale)
Sleep(250)
Exit Sub ‘ Exit if in Machine Coordinates
End If
Message «Probing for Y Center. »
Sleep(1000) ‘Pause 1 second
Code «F» & FRate1
Sleep(125)
Code «G31 Y» & ProbeLengthY
While IsMoving()
Wend
YHit1 = GetVar(2001)
Y1 = YHit1 + ProbeD/2 + YOffset ‘Tool position at probe hit.
If FRate2<>0 Then
Code «F» & Frate2
Sleep(150)
Code «G31 Y» & ProbeLengthY
While IsMoving()
Wend
YHit1 = GetVar(2001)
Y1 = YHit1 + ProbeD/2 + YOffset ‘Tool position at probe hit.
Code «G0 Y» & YStart
While IsMoving()
Wend
Code «G0 Y» & YHit2 + ProbeD/4
While IsMoving()
Wend
If ZeroYN = 1 then
Code «G0 Y» & YPos
While IsMoving()
Wend
SetOEMDRO(801,0)
Sleep(150)
Else
Code «G0 Y» & YStart
While IsMoving()
Wend
PathLength = Len(YCenter)
For X = 2 To PathLength Step 1
lstring=Mid(YCenter,X,PathLength-X+1)
If Left(lstring,1) = «.» Then
LabelLength = X+5
Exit For
End If
Message «Y Center Found. »
Sleep(150)
If FRate2=0 Then
Code «G0 X» & XStart
While IsMoving()
Wend
Else
Code «G0 X» & XHit1 + ProbeD/4
While IsMoving()
Wend
End If
Code «G0 X» & XStart
While IsMoving()
Wend
ProbeLengthX = XStart + DMax
Message «Probing for X Center. »
Sleep(250) ‘Pause 1/4 second
Code «F» & FRate1
Sleep(125)
Code «G31 X» & ProbeLengthX
While IsMoving()
Wend
XHit2 = GetVar(2000)
X2 = XHit2 + ProbeD/2 + XOffset ‘Tool position at probe hit.
Message «Slow Probing for X position. »
Sleep(100) ‘Pause 1/10 second
Code «F» & Frate2
Sleep(150)
Code «G31 X» & ProbeLengthX
While IsMoving()
Wend
XHit2 = GetVar(2000)
X2 = XHit2 + ProbeD/2 + XOffset ‘Tool position at probe hit.
If ZeroYN = 1 then
Code «G0 X» & XPos
While IsMoving()
Wend
SetOEMDRO(800,0)
Sleep(150)
Else
Code «G0 X» & XStart
While IsMoving()
Wend
PathLength = Len(XCenter)
For X = 2 To PathLength Step 1
lstring=Mid(XCenter,X,PathLength-X+1)
If Left(lstring,1) = «.» Then
LabelLength = X+5
Exit For
End If
Message «X Center Found. »
Sleep(150)
SetUserLabel (9,XCenter)
SetUserLabel (10,YCenter)
Code «F» & CurrentFeed ‘ Reset to original feed rate
If CurrentAbsInc = 0 Then ‘if G91 was in effect before then return to it
Code «G91»
End If
Call SetOEMDRO(59,XScale)
Call SetOEMDRO(60,YScale)
Call SetOEMDRO(61,ZScale)
Sleep(250)