Hallo,
mir ist nicht so ganz klar, was du da machst ...
Ein
P7 = P_Curr + (0, 5, 0, 0, 0, 0)
sollte eine Verschiebung um 5 mm in Welt-Y-Richtung sein. + und - beziehen sich auf Weltkoordinaten.
Ein
P7 = P_Curr * (0, 5, 0, 0, 0, 0)
ist eine Verschiebung um 5 mm in Tool-Y Richtung. Bei * (und / ) ist die links stehende Position das Bezugssystem.
Aber ein
P5 = (0, 5, 0, 0, 0, 0)
P7 = P_Curr / P5
ist doch nur eine Kurzschreibweise für
P5 = (0, 5, 0, 0, 0, 0)
P7 = P_Curr * Inv(P5)
also nur eine rechenintensivere (wegen der Berechnung der inversen Matrix) Variante von
P7 = P_Curr * (0, -5, 0, 0, 0, 0)