Machsupport Forum
Mach Discussion => Non English Forums => German => Topic started by: JamesTKirk on February 10, 2019, 11:52:51 AM
-
Hallo
ich habe mal eine Frage ist es möglich mit Mach3 und einer Tastplatte eine automatische Nullpunkterkennung durchzuführen auch mit versetzter Achse wie im Video ab 1:05 Min
Gruß Volker
https://www.youtube.com/watch?v=bhZdbgM6S70&vl=de
-
Hallo Volker,
grundsätzlich ist das kein Problem, und wurde auch schon zigfach umgesetzt.
Auch das Antasten eines verdrehten Bauteils ist möglich.
Gruß Tom
-
Hallo Tom ,
danke für die schnelle Antwort kannst du mir evtl auch eine dieser Umsetzungen aufzeigen ?
Für die Mühe danke im voraus.
Gruß Volker
-
I don't know if this would be of interest because I was using a WebCam rather than a Touch Probe but it does demonstrate the Local System Rotate function and the formulae used to calculate the angle.
Part way down page; http://www.tweakie.byethost10.com/17_files/Page410.htm
-
Hallo Volker,
hier ist der Code den ich benutze, lässt sich aber nicht 1 zu 1 umsetzen, da ich die eigentlichen
Antastfunktionen (X/Y) wieder in externen Funktionen gekapselt habe, aber die Berechnung geht
daraus hervor. Ich benutze alledings 4 Punkte (2 an der X-Kante und 2 an der Y-Kante).
'Antasten Werkstück (gedreht)
Public Function TouchG()
Message "Antasten schraeges Bauteil"
'Parameter holen
X = GetUserDro (1055) 'delta der X-Punkte
Y = GetUserDro (1056) 'delta der Y-Punkte
CurrentToolDiameter = GetUserDro (1027)
'Parameter prüfen
If X = 0 Then
MSGBox "Delta X zu klein!",vbOK + vbCritical ,"Fehler !"
Exit function
End If
If Y = 0 Then
MSGBox "Delta Y zu klein!",vbOK + vbCritical ,"Fehler !"
Exit function
End If
'PI vorbesetzen -----------------------------------------------
pi=4*Atn(1)
'Koordinatendrehung ausschalten
Code "G69"
Sleep(200)
'X / Y auf null setzen
Call SetDro (0,0)
Call SetDro (1,0)
Sleep(200)
'die Y Seite vermessen
'P1 antasten
Probe 100,0,0
'Koordinaten P2
X1 = GetVar(2000)
Y1=0
'Vorposition P2 anfahren
Message("Vorposition P2 anfahren")
Y2 = Y
Code "G91 G1 X-" &X & "F1800"
WaitForMove(True)
Code "G91 G1 Y" &Y2
WaitForMove(True)
'P2 antasten
Probe 100,0,0
'Koordinaten P2
X2 = GetVar(2000)
'die X Seite vermessen -----------------------------------------------
'Vorposition P3 anfahren
Message("Vorposition P3 anfahren")
X3 = X1 + (CurrentToolDiameter/2) + 10
Code "G91 G1 X-" &X & "F1800"
WaitForMove(True)
Code "G90 G1 Y-30"
WaitForMove(True)
Code "G90 G1 X" &X3
WaitForMove(True)
'P3 antasten
Probe 0,100,0
'Koordinaten P3
Y3 = GetVar(2001)
'Vorposition P4 anfahren
Message("Vorposition P4 anfahren")
X4 = X3 + X
Code "G91 G1 Y-20 F1800"
WaitForMove(True)
Code "G90 G1 X" &X4
WaitForMove(True)
'P4 antasten
Probe 0,100,0
'Koordinaten P4
Y4 = GetVar(2001) 'get the probe touch location
'Z auffahren
Code "G91 G01 Y-0.2 F1800"
WaitForMove(True)
Code "G91 G1 Z20"
WaitForMove(True)
'Brechnung
t1= (X4-X3)*(Y1-Y3)-(Y4-Y3)*(X1-X3)
b1= (Y4-Y3)*(X2-X1)-(X4-X3)*(Y2-Y1)
ua=t1/b1
'Nullpunkt berechnen
XH=X1+ua*(X2-X1) ' X Home distance away
YH=Y1+ua*(Y2-Y1) ' Y Home distance away
' Message("Koordinaten Nullpunkt : X " &XH &" Y " &YH)
' Sleep(200)
'Winkel aus der längeren Seite berechnen
If X>Y Then
'längere Seite=X
a=(Y4-Y3)
b=(X4-X3)
v=a/b
NewAngle=Atn(v)*(180/pi)
Else
'längere Seite=Y
a=(X2-X1)
b=(Y2-Y1)
v=b/a
NewAngle=Atn(v)*(180/pi)
If NewAngle > 0 Then
NewAngle=NewAngle-90
Else
NewAngle=NewAngle+90
End If
End If
' Message("Neuer Winkel : " &NewAngle )
' Sleep(200)
'zum neuen Nullpunkt fahren
'Winkel = errechneter Winkel + 45°
siWi = 2*Pi/360*(NewAngle+45)
hyWi = SQR((CurrentToolDiameter/2)*(CurrentToolDiameter/2)*2)
Dx = hyWi * Cos(siWi)
Dy = hyWi * Sin(siWi)
' Message("Koordinaten Berechnung : X " &Dx &" Y " &Dy)
' Sleep(200)
'Zu neuen Nullpunkt fahren
Code "G90 G1 X" &XH+Dx & " Y" &YH+Dy
WaitForMove(True)
'neuen Nullpunkt setzen
Call SetDro (0,0)
Call SetDro (1,0)
'Koordinatendrehung setzen
Call SetOemDro (118,NewAngle)
'Koordinaten ausgeben
' Message "X1 " &X1 &" Y1 " &Y1 & " X2 " &X2 &" Y2 " &Y2 & " X3 " &X3 &" Y3 " &Y3 & " X4 " &X4 &" Y4 " &Y4
'wieder auf absolut stellen
Code "G90"
Message ""
End Function
wenn Du hier im Forum oder bei Google nach Touch Probe oder Edge Finder script suchst findest Du
etliche Beispiele.
Gruß Tom
-
Hallo Tom,
super danke dir . Mal schauen was ich so finde
Gruß Volker
-
hier:
https://www.machsupport.com/forum/index.php?topic=36240.0
haben wir das auch schon mal durchgekaut.
-
ist leider nicht beendet worden . Hat zumindest keine Lösung gepostet. Den Thread hatte ich heute auch schon mal gesehen. Ich werde Ihn mal anschreiben wie weit er gekommen ist.
-
die Lösung ist der Code unten mit 4 Punkten, da dann der Fehler (durch die tangentiale Tastung) egal ist,
da ja sowohl in x und in y mit dem Fehler gearbeitet wir, dieser Code(unten) ist nur ein auf meine Maschine
angepasster code von dem anderen Thread.