Меню Рубрики

Установка автонуля в mach3

Автоматическая установка ноля по Z по датчику касания

#1 OFFLINE m0tti

  • Пользователи+
  • 170 сообщений
    • Из:cz, teplice

    Какие проверенные варианты еcть с кнопкой автонуля по Z и макросом под мач3

    #2 OFFLINE Сергей Киев 1

  • Пользователи
  • 2 сообщений
    • Пол: Мужчина
    • Город: Киев
    • Из:Киев

    CurrentFeed = GetOemDRO(818) ‘Get the current feedrate to return to later
    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 P2» ‘ two second delay
    Code «G31 Z-20 F100» ‘Z goes down a max of 20mm at 100mm/min
    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 Z6.35» ‘retract Z to 6.35mm
    Code «(Z axis is now zeroed)» ‘puts this message in the status bar
    Code «F» &CurrentFeed ‘Returns to prior feed rate
    Else
    Code «(Z-Plate is grounded, check connection and try again)» ‘this goes in the status bar if aplicable
    Exit Sub
    End If

    #3 OFFLINE Lodochnik

  • Cтарожил
  • 3 522 сообщений
    • Пол: Мужчина
    • Из:Королев

    Еще один скрипт avtozero. Не требует ничего никуда вводить. Один раз настроил и все.
    Не помню,где взял,но сам сейчас использую.

    Message( «Auto Zeroing. » )
    If IsSuchSignal (22) Then
    code «G31 Z-15 F60»
    While IsMoving()
    Wend
    Call SetDRO( 2, 3 )
    code «G1 Z5»
    End If

    Сообщение отредактировал oikuz: 19 Май 2011 — 18:03

    #4 OFFLINE Vol4kov

  • Пользователи
  • 4 сообщений
    • Пол: Мужчина
    • Из:НН

    Всем доброго времени суток. Необходима помощь в создании макроса. Суть в следующем:

    Станок без автоматической смены инструмента и в процессе обработки заготовки часто приходится менять инструмент(особенно когда обрабатываешь барельеф или делаешь форму для литья). Есть датчик касания инструмента. Например обрабатываю барельеф. Первая УП это черновая обработка. После окончания обработки в ручном режиме хочу подвинуть шпиндель на определенное место, где стоит подпружиненный датчик касания инструмента на высоту примерно 10 мм от плоскости касания до кончика фрезы. При запуске макроса , шпиндель опускается вниз и инструмент касается 3 раза датчика, запоминая текущую высоты инструмента в момент касания. Я меняю фрезу и запускаю еще раз макрос, инструмент снова касается 3 раза датчика, определяется высота касания и присваивается высота прошлого инструмента.

    Укажите пожалуйста куда копать, может уже есть что то подобное? Спасибо

    Читайте также:  Установка и подключению компонентов компьютера

    Сообщение отредактировал Admin: 26 Октябрь 2017 — 10:26
    Перенесено

    #5 OFFLINE preps

  • Cтарожил
  • 6 028 сообщений
    • Пол: Мужчина
    • Город: Мосджикистан
    • Интересы: Здесь могла бы быть ваша реклама.
    • Из:Москва

    Копать в гугле и яндексе, ибо разжевано всё уже. И половина ссылок в т.ч будет и на этот форум.

    #6 OFFLINE sergenij72

  • Пользователи+
  • 52 сообщений
    • Из:тверь

    #7 OFFLINE belorez

  • Опытный
  • 1 147 сообщений
    • Пол: Мужчина
    • Из:Белгород

    Не макрос, а скрипт(Script). Скорее всего в вашем маче какой-то уже есть. Проверьте Operator-Edit Button Script. Замигают кнопки в окне мача. Ткните в кнопку пробы Z. Откроется блокнот со скриптом. Его можно изменять. Варианты скриптов можно поискать здесь на форуме.

    Одна голова хорошо, а две лучше. Русская народная чпу поговорка.

    #8 OFFLINE slavyan75

  • Пользователи+
  • 1 032 сообщений
    • Пол: Мужчина
    • Город: Tilsit
    • Интересы: электроника,чпу
    • Из:Советск, Калининградская обл.

    если так надо, скину вам свой скрипт ; разберетесь как вставлять ?

    #9 OFFLINE sergenij72

  • Пользователи+
  • 52 сообщений
    • Из:тверь

    источник

    cnc-club.ru

    Скрипты для MACH3.

    Скрипты для MACH3.

    Здравствуйте !
    Был на форуме скрипт центроискателя, у меня он не работал, кое как адаптировал.
    Т.к. для финишной обработки я снимаю деталь, и снова ставлю другой стороной, она всегда сдвинута на небольшой угол (0.1 — 0.3 градуса).
    По этому по двум отверстиям хочу находить угол смещения.
    Вопрос первый,
    1. Нужны функции sin, cos, tg, они поддерживаются скриптом или придется высчитывать руками ?
    Вопрос второй,
    2. В завершении приведенного ниже скрипта, инструмент стоит в координатах 0, 0. Но стоит начать другую УП, как координаты смещаются с учетом G92 и нули уходят. Как написать так, что бы значения не изменялись ?
    Вопрос третий,
    3. Искал и не смог найти справочника по языку сценариев для MACH3, это какой то секретный язык ?

    Код: Выделить всё • Развернуть
    Большущее ВСЕМ заранее СПАСИБО .

    Re: Скрипты для MACH3.

    можно кнопочку сделать запомнить координаты (текущие координаты записать в какое нибудь поле ввода)

    Re: Скрипты для MACH3.

    Re: Скрипты для MACH3.

    Re: Скрипты для MACH3.

    1. создать свое поле ввода
    2. когда нужно туды переписать нужные данные

    Re: Скрипты для MACH3.

    Re: Скрипты для MACH3.

    Re: Скрипты для MACH3.

    Re: Скрипты для MACH3.

    Re: Скрипты для MACH3.

    Re: Скрипты для MACH3.

    Re: Скрипты для MACH3.

    ‘ 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

    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

    If GetOemLED(825)<>0 Then
    Message «Probe Grounded — Check connection and try again»
    Call SetOEMDRO(59,XScale)
    Call SetOEMDRO(60,YScale)
    Call SetOEMDRO(61,ZScale)
    Sleep(250)
    Exit Sub ‘ Exit if probe is tripped
    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 «G0 Y» & YStart
    While IsMoving()
    Wend
    Else
    Code «G0 Y» & YHit1 — ProbeD/4
    While IsMoving()
    Wend
    End If

    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 «F» & FRate1
    Sleep(125)
    Code «G31 Y» & ProbeLengthY
    While IsMoving()
    Wend
    YHit2 = GetVar(2001)
    Y2 = YHit2 — ProbeD/2 — YOffset ‘Tool position at probe hit.

    Code «G0 Y» & YHit2 + ProbeD/4
    While IsMoving()
    Wend

    Code «F» & Frate2
    Sleep(150)
    Code «G31 Y» & ProbeLengthY
    While IsMoving()
    Wend
    YHit2 = GetVar(2001)
    Y2 = YHit2 — ProbeD/2 — YOffset ‘Tool position at probe hit.

    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)

    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
    XHit1 = GetVar(2000)
    X1 = XHit1 — ProbeD/2 — XOffset ‘Tool position at probe hit.

    Читайте также:  Установка встроенных светильников в армстронг

    If FRate2=0 Then
    Code «G0 X» & XStart
    While IsMoving()
    Wend
    Else
    Code «G0 X» & XHit1 + ProbeD/4
    While IsMoving()
    Wend
    End If

    If FRate2<>0 Then
    Message «Slow Probing for X position. »
    Sleep(100) ‘Pause 1/10 second
    Code «F» & Frate2
    Sleep(150)
    Code «G31 X» & ProbeLengthX
    While IsMoving()
    Wend
    XHit1 = GetVar(2000)
    X1 = XHit1 — ProbeD/2 — XOffset ‘Tool position at probe hit.

    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.

    If FRate2=0 Then
    Code «G0 X» & XStart
    While IsMoving()
    Wend
    Else
    Code «G0 X» & XHit2 — ProbeD/4
    While IsMoving()
    Wend
    End If

    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)

    If GetOemLED(1872) Then SetUserLED(1870,0)

    Re: Скрипты для MACH3.

    Re: Скрипты для MACH3.

    Re: Скрипты для MACH3.

    Вот примерно так на видео , специально биение щупа делал 1мм , разбег по привязки меньше сотки


    мучился два дня , мозг закипел, с в. бейсиком все ясно но вот из него в мачь и обратно это тяжело .

    Code «G04 p0.2»
    Code «G91»
    Call SetDRO(0,0)
    Code «G04 p0.2»

    Code «G31 X1000 F500»
    While IsMoving()
    Wend
    a = GetDRO(0)
    Code «G1 X-1 F500»
    Code «G04 p0.2»
    Code «G1 c0.5 F100»
    Code «G31 X1000 F500»
    While IsMoving()
    Wend
    b = GetDRO(0)
    Code «G1 X-1 F500»
    Code «G1 c-0.5 F100»
    d=((a+b)/2)
    Code «G04 p0.2»

    Call SetDRO(0,d)
    Code «G04 p0.2»
    Code «G90»
    Code «G04 p0.2»
    Code «G1 X0 f500»
    Code «G04 p0.2»
    Call SetDRO(0,-1.67)

    У меня С — это шпиндель 1 = 1оборот
    1.67 подбирал компенсация диаметра шарика (радиус примерно — мертвая зона до сработки датчика))

    источник

    Добавить комментарий

    Adblock
    detector