public Boolean move_XYZABC_TogetherMode(Coordinate_XYZABC newXyzabc, Coordinate_XYZABC oldXyzabc) { if (newXyzabc.X < xyzabcUpLimited[0] && newXyzabc.X > xyzabcDownLimited[0]) { if (newXyzabc.Y < xyzabcUpLimited[1] && newXyzabc.Y > xyzabcDownLimited[1]) { if (newXyzabc.Z < xyzabcUpLimited[2] && newXyzabc.Z > xyzabcDownLimited[2]) { if (newXyzabc.A < xyzabcUpLimited[3] && newXyzabc.A > xyzabcDownLimited[3]) { if (newXyzabc.B < xyzabcUpLimited[4] && newXyzabc.B > xyzabcDownLimited[4]) { if (newXyzabc.C < xyzabcUpLimited[5] && newXyzabc.C > xyzabcDownLimited[5]) { float[] XyzabcWaitTime = new float[3]; float[] TempWaitTime = new float[3]; int[] Order = new int[3] { -1, -1, -1 }; int SwitchMode; TempWaitTime[0] = Math.Abs(((newXyzabc.X - oldXyzabc.X) / Vel) * 12); TempWaitTime[1] = Math.Abs(((newXyzabc.Y - oldXyzabc.Y) / Vel) * 12); TempWaitTime[2] = Math.Abs(((newXyzabc.Z - oldXyzabc.Z) / Vel) * 12); XyzabcWaitTime[0] = ((newXyzabc.X - oldXyzabc.X) / Vel) * 12; XyzabcWaitTime[1] = ((newXyzabc.Y - oldXyzabc.Y) / Vel) * 12; XyzabcWaitTime[2] = ((newXyzabc.Z - oldXyzabc.Z) / Vel) * 12; Array.Sort(TempWaitTime); for (int i = 0; i < 3; i++) { if ((Order[0] == -1) & Math.Abs(TempWaitTime[0] - Math.Abs(XyzabcWaitTime[i])) < 0.01) { Order[0] = i; } else if ((Order[1] == -1) & Math.Abs(TempWaitTime[1] - Math.Abs(XyzabcWaitTime[i])) < 0.01) { Order[1] = i; } else if ((Order[2] == -1) & Math.Abs(TempWaitTime[2] - Math.Abs(XyzabcWaitTime[i])) < 0.01) { Order[2] = i; } } if (((int)(TempWaitTime[1] - TempWaitTime[0]) == 0) & ((int)(TempWaitTime[2] - TempWaitTime[1]) == 0)) { SwitchMode = 3; } else if (((int)(TempWaitTime[1] - TempWaitTime[0]) == 0)) { SwitchMode = 1; } else if (((int)(TempWaitTime[2] - TempWaitTime[1]) == 0)) { SwitchMode = 2; } else { SwitchMode = 0; } switch (SwitchMode) { case 0: xyzabcCommand[0] = (Math.Sign(XyzabcWaitTime[0]) * Vel).ToString(); xyzabcCommand[1] = (Math.Sign(XyzabcWaitTime[1]) * Vel).ToString(); xyzabcCommand[2] = (Math.Sign(XyzabcWaitTime[2]) * Vel).ToString(); move_KukaArm("Xyzabc"); Thread.Sleep((int)Math.Round(TempWaitTime[0])); xyzabcCommand[Order[0]] = "0"; move_KukaArm("Xyzabc"); Thread.Sleep((int)Math.Round((TempWaitTime[1] - TempWaitTime[0]))); xyzabcCommand[Order[1]] = "0"; move_KukaArm("Xyzabc"); Thread.Sleep((int)Math.Round((TempWaitTime[2] - TempWaitTime[1]))); xyzabcCommand[Order[2]] = "0"; move_KukaArm("Xyzabc"); break; case 1: xyzabcCommand[0] = (Math.Sign(XyzabcWaitTime[0]) * Vel).ToString(); xyzabcCommand[1] = (Math.Sign(XyzabcWaitTime[1]) * Vel).ToString(); xyzabcCommand[2] = (Math.Sign(XyzabcWaitTime[2]) * Vel).ToString(); move_KukaArm("Xyzabc"); Thread.Sleep((int)Math.Round(TempWaitTime[0])); xyzabcCommand[Order[0]] = "0"; xyzabcCommand[Order[1]] = "0"; move_KukaArm("Xyzabc"); Thread.Sleep((int)Math.Round((TempWaitTime[2] - TempWaitTime[1]))); xyzabcCommand[Order[2]] = "0"; move_KukaArm("Xyzabc"); break; case 2: xyzabcCommand[0] = (Math.Sign(XyzabcWaitTime[0]) * Vel).ToString(); xyzabcCommand[1] = (Math.Sign(XyzabcWaitTime[1]) * Vel).ToString(); xyzabcCommand[2] = (Math.Sign(XyzabcWaitTime[2]) * Vel).ToString(); move_KukaArm("Xyzabc"); Thread.Sleep((int)Math.Round(TempWaitTime[0])); xyzabcCommand[Order[0]] = "0"; move_KukaArm("Xyzabc"); Thread.Sleep((int)Math.Round((TempWaitTime[1] - TempWaitTime[0]))); xyzabcCommand[Order[1]] = "0"; xyzabcCommand[Order[2]] = "0"; move_KukaArm("Xyzabc"); break; case 3: xyzabcCommand[0] = (Math.Sign(XyzabcWaitTime[0]) * Vel).ToString(); xyzabcCommand[1] = (Math.Sign(XyzabcWaitTime[1]) * Vel).ToString(); xyzabcCommand[2] = (Math.Sign(XyzabcWaitTime[2]) * Vel).ToString(); move_KukaArm("Xyzabc"); Thread.Sleep((int)Math.Round(TempWaitTime[0])); xyzabcCommand[Order[0]] = "0"; xyzabcCommand[Order[1]] = "0"; xyzabcCommand[Order[2]] = "0"; move_KukaArm("Xyzabc"); break; default: break; } } } } } } return true; } else { return false; } }
public Boolean move_XYZABC_RotationMode(Coordinate_XYZABC newXyzabc, Coordinate_XYZABC oldXyzabc) { if (newXyzabc.X < xyzabcUpLimited[0] && newXyzabc.X > xyzabcDownLimited[0]) { if (newXyzabc.Y < xyzabcUpLimited[1] && newXyzabc.Y > xyzabcDownLimited[1]) { if (newXyzabc.Z < xyzabcUpLimited[2] && newXyzabc.Z > xyzabcDownLimited[2]) { if (newXyzabc.A < xyzabcUpLimited[3] && newXyzabc.A > xyzabcDownLimited[3]) { if (newXyzabc.B < xyzabcUpLimited[4] && newXyzabc.B > xyzabcDownLimited[4]) { if (newXyzabc.C < xyzabcUpLimited[5] && newXyzabc.C > xyzabcDownLimited[5]) { float[] SleepTime = new float[3]; SleepTime[0] = newXyzabc.A - oldXyzabc.A; SleepTime[1] = newXyzabc.B - oldXyzabc.B; SleepTime[2] = newXyzabc.C - oldXyzabc.C; xyzabcCommand[3] = (Math.Sign(SleepTime[0]) * rotation_Vel).ToString(); move_KukaArm("Xyzabc"); Thread.Sleep((int)Math.Round(((Math.Abs(SleepTime[0]) * 12.0)) / rotation_Vel)); xyzabcCommand[3] = "0"; xyzabcCommand[4] = (-Math.Sign(SleepTime[1]) * rotation_Vel).ToString(); move_KukaArm("Xyzabc"); Thread.Sleep((int)Math.Round(((Math.Abs(SleepTime[1]) * 12.0)) / rotation_Vel)); xyzabcCommand[4] = "0"; move_KukaArm("Xyzabc"); } } } } } return true; } else { return false; } }
public void move_XYZABC(Coordinate_XYZABC newXyzabc) { xyzabcCommand[0] = newXyzabc.X.ToString(); xyzabcCommand[1] = newXyzabc.Y.ToString(); xyzabcCommand[2] = newXyzabc.Z.ToString(); xyzabcCommand[3] = newXyzabc.A.ToString(); xyzabcCommand[4] = newXyzabc.B.ToString(); xyzabcCommand[5] = newXyzabc.C.ToString(); move_KukaArm("Xyzabc"); //(12ms = 一單位) Thread.Sleep(12); xyzabcCommand[0] = "0"; xyzabcCommand[1] = "0"; xyzabcCommand[2] = "0"; xyzabcCommand[3] = "0"; xyzabcCommand[4] = "0"; xyzabcCommand[5] = "0"; move_KukaArm("Xyzabc"); }
public Boolean move_XYZABC_SingalMode(Coordinate_XYZABC newXyzabc, Coordinate_XYZABC oldXyzabc) { if (newXyzabc.X < xyzabcUpLimited[0] && newXyzabc.X > xyzabcDownLimited[0]) { if (newXyzabc.Y < xyzabcUpLimited[1] && newXyzabc.Y > xyzabcDownLimited[1]) { if (newXyzabc.Z < xyzabcUpLimited[2] && newXyzabc.Z > xyzabcDownLimited[2]) { if (newXyzabc.A < xyzabcUpLimited[3] && newXyzabc.A > xyzabcDownLimited[3]) { if (newXyzabc.B < xyzabcUpLimited[4] && newXyzabc.B > xyzabcDownLimited[4]) { if (newXyzabc.C < xyzabcUpLimited[5] && newXyzabc.C > xyzabcDownLimited[5]) { Double[] XyzabcWaitTime = new Double[6]; XyzabcWaitTime[0] = ((newXyzabc.X - oldXyzabc.X) / Vel) * 12.0; XyzabcWaitTime[1] = ((newXyzabc.Y - oldXyzabc.Y) / Vel) * 12.0; XyzabcWaitTime[2] = ((newXyzabc.Z - oldXyzabc.Z) / Vel) * 12.0; xyzabcCommand[0] = (Math.Sign(XyzabcWaitTime[0]) * Vel).ToString(); xyzabcCommand[1] = "0"; xyzabcCommand[2] = "0"; xyzabcCommand[3] = "0"; xyzabcCommand[4] = "0"; xyzabcCommand[5] = "0"; move_KukaArm("Xyzabc"); Thread.Sleep( (int)Math.Round(Math.Abs(XyzabcWaitTime[0]))); XyzabcCommand[0] = "0"; XyzabcCommand[1] = (Math.Sign(XyzabcWaitTime[1]) * Vel).ToString(); XyzabcCommand[2] = "0"; xyzabcCommand[3] = "0"; xyzabcCommand[4] = "0"; xyzabcCommand[5] = "0"; move_KukaArm("Xyzabc"); Thread.Sleep((int)Math.Round(Math.Abs(XyzabcWaitTime[1]))); xyzabcCommand[0] = "0"; xyzabcCommand[1] = "0"; xyzabcCommand[2] = (Math.Sign(XyzabcWaitTime[2]) * Vel).ToString(); xyzabcCommand[3] = "0"; xyzabcCommand[4] = "0"; xyzabcCommand[5] = "0"; move_KukaArm("Xyzabc"); Thread.Sleep((int)Math.Round(Math.Abs(XyzabcWaitTime[2]))); xyzabcCommand[0] = "0"; xyzabcCommand[1] = "0"; xyzabcCommand[2] = "0"; xyzabcCommand[3] = "0"; xyzabcCommand[4] = "0"; xyzabcCommand[5] = "0"; move_KukaArm("Xyzabc"); } } } } } return true; } else { return false; } }
private void KukaMoveXyzabcModeThread() { switch (XyzabcMode) { case "X": { if (MoveType == "0") { newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = float.Parse(X_Command.Text); newXyzabc.Y = float.Parse(Y_Value.Text); newXyzabc.Z = float.Parse(Z_Value.Text); newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; } else if (MoveType == "1") { newXyzabc = new Coordinate_XYZABC(); newXyzabc.X = 1; newXyzabc.Y = 0; newXyzabc.Z = 0; newXyzabc.A = 0; newXyzabc.B = 0; newXyzabc.C = 0; KukaRobotControlObject.move_XYZABC(newXyzabc); newXyzabc = null; } else if (MoveType == "-1") { newXyzabc = new Coordinate_XYZABC(); newXyzabc.X = -1; newXyzabc.Y = 0; newXyzabc.Z = 0; newXyzabc.A = 0; newXyzabc.B = 0; newXyzabc.C = 0; KukaRobotControlObject.move_XYZABC(newXyzabc); newXyzabc = null; } break; } case "Y": { if (MoveType == "0") { newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = float.Parse(X_Value.Text); newXyzabc.Y = float.Parse(Y_Command.Text); newXyzabc.Z = float.Parse(Z_Value.Text); newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; } else if (MoveType == "1") { newXyzabc = new Coordinate_XYZABC(); newXyzabc.X = 0; newXyzabc.Y = 1; newXyzabc.Z = 0; newXyzabc.A = 0; newXyzabc.B = 0; newXyzabc.C = 0; KukaRobotControlObject.move_XYZABC(newXyzabc); newXyzabc = null; } else if (MoveType == "-1") { newXyzabc = new Coordinate_XYZABC(); newXyzabc.X = 0; newXyzabc.Y = -1; newXyzabc.Z = 0; newXyzabc.A = 0; newXyzabc.B = 0; newXyzabc.C = 0; KukaRobotControlObject.move_XYZABC(newXyzabc); newXyzabc = null; } break; } case "Z": { if (MoveType == "0") { newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = float.Parse(X_Value.Text); newXyzabc.Y = float.Parse(Y_Value.Text); newXyzabc.Z = float.Parse(Z_Command.Text); newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; } else if (MoveType == "1") { newXyzabc = new Coordinate_XYZABC(); newXyzabc.X = 0; newXyzabc.Y = 0; newXyzabc.Z = 1; newXyzabc.A = 0; newXyzabc.B = 0; newXyzabc.C = 0; KukaRobotControlObject.move_XYZABC(newXyzabc); newXyzabc = null; } else if (MoveType == "-1") { newXyzabc = new Coordinate_XYZABC(); newXyzabc.X = 0; newXyzabc.Y = 0; newXyzabc.Z = -1; newXyzabc.A = 0; newXyzabc.B = 0; newXyzabc.C = 0; KukaRobotControlObject.move_XYZABC(newXyzabc); newXyzabc = null; } break; } case "A": { if (MoveType == "0") { newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = float.Parse(X_Value.Text); newXyzabc.Y = float.Parse(Y_Value.Text); newXyzabc.Z = float.Parse(Z_Value.Text); newXyzabc.A = float.Parse(A_Command.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_RotationMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; } else if (MoveType == "1") { newXyzabc = new Coordinate_XYZABC(); newXyzabc.X = 0; newXyzabc.Y = 0; newXyzabc.Z = 0; newXyzabc.A = 1; newXyzabc.B = 0; newXyzabc.C = 0; KukaRobotControlObject.move_XYZABC(newXyzabc); newXyzabc = null; } else if (MoveType == "-1") { newXyzabc = new Coordinate_XYZABC(); newXyzabc.X = 0; newXyzabc.Y = 0; newXyzabc.Z = 0; newXyzabc.A = -1; newXyzabc.B = 0; newXyzabc.C = 0; KukaRobotControlObject.move_XYZABC(newXyzabc); newXyzabc = null; } break; } case "B": { if (MoveType == "0") { newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = float.Parse(X_Value.Text); newXyzabc.Y = float.Parse(Y_Value.Text); newXyzabc.Z = float.Parse(Z_Value.Text); newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Command.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_RotationMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; } else if (MoveType == "1") { newXyzabc = new Coordinate_XYZABC(); newXyzabc.X = 0; newXyzabc.Y = 0; newXyzabc.Z = 0; newXyzabc.A = 0; newXyzabc.B = 1; newXyzabc.C = 0; KukaRobotControlObject.move_XYZABC(newXyzabc); newXyzabc = null; } else if (MoveType == "-1") { newXyzabc = new Coordinate_XYZABC(); newXyzabc.X = 0; newXyzabc.Y = 0; newXyzabc.Z = 0; newXyzabc.A = 0; newXyzabc.B = -1; newXyzabc.C = 0; KukaRobotControlObject.move_XYZABC(newXyzabc); newXyzabc = null; } break; } case "C": { if (MoveType == "0") { newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = float.Parse(X_Value.Text); newXyzabc.Y = float.Parse(Y_Value.Text); newXyzabc.Z = float.Parse(Z_Value.Text); newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Command.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_RotationMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; } else if (MoveType == "1") { newXyzabc = new Coordinate_XYZABC(); newXyzabc.X = 0; newXyzabc.Y = 0; newXyzabc.Z = 0; newXyzabc.A = 0; newXyzabc.B = 0; newXyzabc.C = 1; KukaRobotControlObject.move_XYZABC(newXyzabc); newXyzabc = null; } else if (MoveType == "-1") { newXyzabc = new Coordinate_XYZABC(); newXyzabc.X = 0; newXyzabc.Y = 0; newXyzabc.Z = 0; newXyzabc.A = 0; newXyzabc.B = 0; newXyzabc.C = -1; KukaRobotControlObject.move_XYZABC(newXyzabc); newXyzabc = null; } break; } case "A1" : { if (MoveType == "0") { } else if (MoveType == "1") { newAxis = new Coordinate_Axis(); newAxis.A1 = 1; newAxis.A2 = 0; newAxis.A3 = 0; newAxis.A4 = 0; newAxis.A5 = 0; newAxis.A6 = 0; KukaRobotControlObject.move_Axis(newAxis); newAxis = null; } else if (MoveType == "-1") { newAxis = new Coordinate_Axis(); newAxis.A1 = -1; newAxis.A2 = 0; newAxis.A3 = 0; newAxis.A4 = 0; newAxis.A5 = 0; newAxis.A6 = 0; KukaRobotControlObject.move_Axis(newAxis); newAxis = null; } break; } case "A2": { if (MoveType == "0") { } else if (MoveType == "1") { newAxis = new Coordinate_Axis(); newAxis.A1 = 0; newAxis.A2 = 1; newAxis.A3 = 0; newAxis.A4 = 0; newAxis.A5 = 0; newAxis.A6 = 0; KukaRobotControlObject.move_Axis(newAxis); newAxis = null; } else if (MoveType == "-1") { newAxis = new Coordinate_Axis(); newAxis.A1 = 0; newAxis.A2 = -1; newAxis.A3 = 0; newAxis.A4 = 0; newAxis.A5 = 0; newAxis.A6 = 0; KukaRobotControlObject.move_Axis(newAxis); newAxis = null; } break; } case "A3": { if (MoveType == "0") { } else if (MoveType == "1") { newAxis = new Coordinate_Axis(); newAxis.A1 = 0; newAxis.A2 = 0; newAxis.A3 = 1; newAxis.A4 = 0; newAxis.A5 = 0; newAxis.A6 = 0; KukaRobotControlObject.move_Axis(newAxis); newAxis = null; } else if (MoveType == "-1") { newAxis = new Coordinate_Axis(); newAxis.A1 = 0; newAxis.A2 = 0; newAxis.A3 = -1; newAxis.A4 = 0; newAxis.A5 = 0; newAxis.A6 = 0; KukaRobotControlObject.move_Axis(newAxis); newAxis = null; } break; } case "A4": { if (MoveType == "0") { } else if (MoveType == "1") { newAxis = new Coordinate_Axis(); newAxis.A1 = 0; newAxis.A2 = 0; newAxis.A3 = 0; newAxis.A4 = 1; newAxis.A5 = 0; newAxis.A6 = 0; KukaRobotControlObject.move_Axis(newAxis); newAxis = null; } else if (MoveType == "-1") { newAxis = new Coordinate_Axis(); newAxis.A1 = 0; newAxis.A2 = 0; newAxis.A3 = 0; newAxis.A4 = -1; newAxis.A5 = 0; newAxis.A6 = 0; KukaRobotControlObject.move_Axis(newAxis); newAxis = null; } break; } case "A5": { if (MoveType == "0") { } else if (MoveType == "1") { newAxis = new Coordinate_Axis(); newAxis.A1 = 0; newAxis.A2 = 0; newAxis.A3 = 0; newAxis.A4 = 0; newAxis.A5 = 1; newAxis.A6 = 0; KukaRobotControlObject.move_Axis(newAxis); newAxis = null; } else if (MoveType == "-1") { newAxis = new Coordinate_Axis(); newAxis.A1 = 0; newAxis.A2 = 0; newAxis.A3 = 0; newAxis.A4 = 0; newAxis.A5 = -1; newAxis.A6 = 0; KukaRobotControlObject.move_Axis(newAxis); newAxis = null; } break; } case "A6": { if (MoveType == "0") { } else if (MoveType == "1") { newAxis = new Coordinate_Axis(); newAxis.A1 = 0; newAxis.A2 = 0; newAxis.A3 = 0; newAxis.A4 = 0; newAxis.A5 = 0; newAxis.A6 = 1; KukaRobotControlObject.move_Axis(newAxis); newAxis = null; } else if (MoveType == "-1") { newAxis = new Coordinate_Axis(); newAxis.A1 = 0; newAxis.A2 = 0; newAxis.A3 = 0; newAxis.A4 = 0; newAxis.A5 = 0; newAxis.A6 = -1; KukaRobotControlObject.move_Axis(newAxis); newAxis = null; } break; } case "Xyzabc": { newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = float.Parse(X_Command.Text); newXyzabc.Y = float.Parse(Y_Command.Text); newXyzabc.Z = float.Parse(Z_Command.Text); newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); //if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc)) if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; break; } case "Axis": { if (MoveType == "0") { newAxis = new Coordinate_Axis(); oldAxis = new Coordinate_Axis(); newAxis.A1 = float.Parse(A1_Command.Text); newAxis.A2 = float.Parse(A2_Command.Text); newAxis.A3 = float.Parse(A3_Command.Text); newAxis.A4 = float.Parse(A4_Command.Text); newAxis.A5 = float.Parse(A5_Command.Text); newAxis.A6 = float.Parse(A6_Command.Text); oldAxis.A1 = float.Parse(A1_Value.Text); oldAxis.A2 = float.Parse(A2_Value.Text); oldAxis.A3 = float.Parse(A3_Value.Text); oldAxis.A4 = float.Parse(A4_Value.Text); oldAxis.A5 = float.Parse(A5_Value.Text); oldAxis.A6 = float.Parse(A6_Value.Text); //if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc)) if (!KukaRobotControlObject.move_SingleAxis(newAxis, oldAxis)) myListBox("Error : Axis Out of limited!!", ListMsg); oldAxis = null; newAxis = null; } else if (MoveType == "1") { newAxis = new Coordinate_Axis(); oldAxis = new Coordinate_Axis(); newAxis.A1 = float.Parse(A1_Command.Text); newAxis.A2 = float.Parse(A2_Value.Text); newAxis.A3 = float.Parse(A3_Value.Text); newAxis.A4 = float.Parse(A4_Value.Text); newAxis.A5 = float.Parse(A5_Value.Text); newAxis.A6 = float.Parse(A6_Value.Text); oldAxis.A1 = float.Parse(A1_Value.Text); oldAxis.A2 = float.Parse(A2_Value.Text); oldAxis.A3 = float.Parse(A3_Value.Text); oldAxis.A4 = float.Parse(A4_Value.Text); oldAxis.A5 = float.Parse(A5_Value.Text); oldAxis.A6 = float.Parse(A6_Value.Text); //if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc)) if (!KukaRobotControlObject.move_SingleAxis(newAxis, oldAxis)) myListBox("Error : Axis Out of limited!!", ListMsg); oldAxis = null; newAxis = null; } else if (MoveType == "2") { newAxis = new Coordinate_Axis(); oldAxis = new Coordinate_Axis(); newAxis.A1 = float.Parse(A1_Value.Text); newAxis.A2 = float.Parse(A2_Command.Text); newAxis.A3 = float.Parse(A3_Value.Text); newAxis.A4 = float.Parse(A4_Value.Text); newAxis.A5 = float.Parse(A5_Value.Text); newAxis.A6 = float.Parse(A6_Value.Text); oldAxis.A1 = float.Parse(A1_Value.Text); oldAxis.A2 = float.Parse(A2_Value.Text); oldAxis.A3 = float.Parse(A3_Value.Text); oldAxis.A4 = float.Parse(A4_Value.Text); oldAxis.A5 = float.Parse(A5_Value.Text); oldAxis.A6 = float.Parse(A6_Value.Text); //if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc)) if (!KukaRobotControlObject.move_SingleAxis(newAxis, oldAxis)) myListBox("Error : Axis Out of limited!!", ListMsg); oldAxis = null; newAxis = null; } else if (MoveType == "3") { newAxis = new Coordinate_Axis(); oldAxis = new Coordinate_Axis(); newAxis.A1 = float.Parse(A1_Value.Text); newAxis.A2 = float.Parse(A2_Value.Text); newAxis.A3 = float.Parse(A3_Command.Text); newAxis.A4 = float.Parse(A4_Value.Text); newAxis.A5 = float.Parse(A5_Value.Text); newAxis.A6 = float.Parse(A6_Value.Text); oldAxis.A1 = float.Parse(A1_Value.Text); oldAxis.A2 = float.Parse(A2_Value.Text); oldAxis.A3 = float.Parse(A3_Value.Text); oldAxis.A4 = float.Parse(A4_Value.Text); oldAxis.A5 = float.Parse(A5_Value.Text); oldAxis.A6 = float.Parse(A6_Value.Text); //if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc)) if (!KukaRobotControlObject.move_SingleAxis(newAxis, oldAxis)) myListBox("Error : Axis Out of limited!!", ListMsg); oldAxis = null; newAxis = null; } else if (MoveType == "4") { newAxis = new Coordinate_Axis(); oldAxis = new Coordinate_Axis(); newAxis.A1 = float.Parse(A1_Value.Text); newAxis.A2 = float.Parse(A2_Value.Text); newAxis.A3 = float.Parse(A3_Value.Text); newAxis.A4 = float.Parse(A4_Command.Text); newAxis.A5 = float.Parse(A5_Value.Text); newAxis.A6 = float.Parse(A6_Value.Text); oldAxis.A1 = float.Parse(A1_Value.Text); oldAxis.A2 = float.Parse(A2_Value.Text); oldAxis.A3 = float.Parse(A3_Value.Text); oldAxis.A4 = float.Parse(A4_Value.Text); oldAxis.A5 = float.Parse(A5_Value.Text); oldAxis.A6 = float.Parse(A6_Value.Text); //if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc)) if (!KukaRobotControlObject.move_SingleAxis(newAxis, oldAxis)) myListBox("Error : Axis Out of limited!!", ListMsg); oldAxis = null; newAxis = null; } else if (MoveType == "5") { newAxis = new Coordinate_Axis(); oldAxis = new Coordinate_Axis(); newAxis.A1 = float.Parse(A1_Value.Text); newAxis.A2 = float.Parse(A2_Value.Text); newAxis.A3 = float.Parse(A3_Value.Text); newAxis.A4 = float.Parse(A4_Value.Text); newAxis.A5 = float.Parse(A5_Command.Text); newAxis.A6 = float.Parse(A6_Value.Text); oldAxis.A1 = float.Parse(A1_Value.Text); oldAxis.A2 = float.Parse(A2_Value.Text); oldAxis.A3 = float.Parse(A3_Value.Text); oldAxis.A4 = float.Parse(A4_Value.Text); oldAxis.A5 = float.Parse(A5_Value.Text); oldAxis.A6 = float.Parse(A6_Value.Text); //if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc)) if (!KukaRobotControlObject.move_SingleAxis(newAxis, oldAxis)) myListBox("Error : Axis Out of limited!!", ListMsg); oldAxis = null; newAxis = null; } else if (MoveType == "6") { newAxis = new Coordinate_Axis(); oldAxis = new Coordinate_Axis(); newAxis.A1 = float.Parse(A1_Value.Text); newAxis.A2 = float.Parse(A2_Value.Text); newAxis.A3 = float.Parse(A3_Value.Text); newAxis.A4 = float.Parse(A4_Value.Text); newAxis.A5 = float.Parse(A5_Value.Text); newAxis.A6 = float.Parse(A6_Command.Text); oldAxis.A1 = float.Parse(A1_Value.Text); oldAxis.A2 = float.Parse(A2_Value.Text); oldAxis.A3 = float.Parse(A3_Value.Text); oldAxis.A4 = float.Parse(A4_Value.Text); oldAxis.A5 = float.Parse(A5_Value.Text); oldAxis.A6 = float.Parse(A6_Value.Text); //if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc)) if (!KukaRobotControlObject.move_SingleAxis(newAxis, oldAxis)) myListBox("Error : Axis Out of limited!!", ListMsg); oldAxis = null; newAxis = null; } else if (MoveType == "9") { newAxis = new Coordinate_Axis(); oldAxis = new Coordinate_Axis(); newAxis.A1 = float.Parse(Path[Path_count, 0].ToString()); newAxis.A2 = float.Parse(Path[Path_count, 1].ToString()); newAxis.A3 = float.Parse(Path[Path_count, 2].ToString()); newAxis.A4 = float.Parse(Path[Path_count, 3].ToString()); newAxis.A5 = float.Parse(Path[Path_count, 4].ToString()); newAxis.A6 = float.Parse(Path[Path_count, 5].ToString()); oldAxis.A1 = float.Parse(A1_Value.Text); oldAxis.A2 = float.Parse(A2_Value.Text); oldAxis.A3 = float.Parse(A3_Value.Text); oldAxis.A4 = float.Parse(A4_Value.Text); oldAxis.A5 = float.Parse(A5_Value.Text); oldAxis.A6 = float.Parse(A6_Value.Text); //if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc)) if (!KukaRobotControlObject.move_SingleAxis(newAxis, oldAxis)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldAxis = null; newAxis = null; Path_count++; if (Path_count == 20) { Path_count = 0; } } break; } case "XyzabcHome": { newAxis = new Coordinate_Axis(); oldAxis = new Coordinate_Axis(); newAxis.A1 = 0; newAxis.A2 = -90; newAxis.A3 = 90; newAxis.A4 = 0; newAxis.A5 = -90; newAxis.A6 = -180; oldAxis.A1 = float.Parse(A1_Value.Text); oldAxis.A2 = float.Parse(A2_Value.Text); oldAxis.A3 = float.Parse(A3_Value.Text); oldAxis.A4 = float.Parse(A4_Value.Text); oldAxis.A5 = float.Parse(A5_Value.Text); oldAxis.A6 = float.Parse(A6_Value.Text); //if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc)) if (!KukaRobotControlObject.move_SingleAxis(newAxis, oldAxis)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldAxis = null; newAxis = null; break; } case "PoseEstimation": { if (MoveType == "0") { newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.CaptureImage_Position[0]; newXyzabc.Y = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.CaptureImage_Position[1]; newXyzabc.Z = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[2]; newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = float.Parse(X_Value.Text); newXyzabc.Y = float.Parse(Y_Value.Text); newXyzabc.Z = float.Parse(Z_Value.Text); newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.CaptureImage_Position[4]; newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[4]; oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_RotationMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = float.Parse(X_Value.Text); newXyzabc.Y = float.Parse(Y_Value.Text); newXyzabc.Z = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.CaptureImage_Position[2]; newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; IsArmCanMove = true; KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._State = 9; } else if (MoveType == "1") { newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = float.Parse(X_Value.Text); newXyzabc.Y = float.Parse(Y_Value.Text); newXyzabc.Z = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[2]; newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = float.Parse(X_Value.Text); newXyzabc.Y = float.Parse(Y_Value.Text); newXyzabc.Z = float.Parse(Z_Value.Text); newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[4]; newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.CaptureImage_Position[4]; oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_RotationMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[0]; newXyzabc.Y = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[1]; newXyzabc.Z = float.Parse(Z_Value.Text); newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; IsArmCanMove = true; KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._State = 9; } else if (MoveType == "2") { /* * 抓取物件 */ GraspObjectType = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._ObjectType; Start_A = float.Parse(A_Value.Text); newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = float.Parse(X_Value.Text); newXyzabc.Y = float.Parse(Y_Value.Text); newXyzabc.Z = float.Parse(Z_Value.Text); newXyzabc.A = Start_A + KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._A; newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = Start_A; oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_RotationMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._X; newXyzabc.Y = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._Y; newXyzabc.Z = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._Z; newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; /* * 抓取物件 */ GraspState = 1; Thread GraspControl = new Thread(new ThreadStart(GraspControlThread)); GraspControl.Start(); Thread.Sleep(200); /* * 往上移動至擷取圖像點 */ newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = float.Parse(X_Value.Text); newXyzabc.Y = float.Parse(Y_Value.Text); newXyzabc.Z = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[2]; newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[0]; newXyzabc.Y = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[1]; newXyzabc.Z = float.Parse(Z_Value.Text); newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = float.Parse(X_Value.Text); newXyzabc.Y = float.Parse(Y_Value.Text); newXyzabc.Z = float.Parse(Z_Value.Text); newXyzabc.A = Start_A; newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = Start_A + KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._A; oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_RotationMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; /* newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = float.Parse(X_Value.Text); newXyzabc.Y = float.Parse(Y_Value.Text); newXyzabc.Z = float.Parse(Z_Value.Text); newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.CaptureImage_Position[4]; newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[4]; oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_RotationMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null;*/ /*newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = float.Parse(X_Value.Text); newXyzabc.Y = float.Parse(Y_Value.Text); newXyzabc.Z = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.CaptureImage_Position[2]; newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null;/* /* * 請求Server端擷新影像 */ KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._State = 5; /*while (KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._State == 5) { //Thread.Sleep(50); }*/ /* * 放置物件 */ /* newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = float.Parse(X_Value.Text); newXyzabc.Y = float.Parse(Y_Value.Text); newXyzabc.Z = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[2]; newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null;*/ /*newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = float.Parse(X_Value.Text); newXyzabc.Y = float.Parse(Y_Value.Text); newXyzabc.Z = float.Parse(Z_Value.Text); newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[4]; newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.CaptureImage_Position[4]; oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_RotationMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null;*/ //newXyzabc = new Coordinate_XYZABC(); //oldXyzabc = new Coordinate_XYZABC(); //newXyzabc.X = float.Parse(X_Value.Text); //newXyzabc.Y = float.Parse(Y_Value.Text); //newXyzabc.Z = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[2]; //newXyzabc.A = float.Parse(A_Value.Text); //newXyzabc.B = float.Parse(B_Value.Text); //newXyzabc.C = float.Parse(C_Value.Text); //oldXyzabc.X = float.Parse(X_Value.Text); //oldXyzabc.Y = float.Parse(Y_Value.Text); //oldXyzabc.Z = float.Parse(Z_Value.Text); //oldXyzabc.A = float.Parse(A_Value.Text); //oldXyzabc.B = float.Parse(B_Value.Text); //oldXyzabc.C = float.Parse(C_Value.Text); //if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc)) // myListBox("Error : Xyzabc Out of limited!!", ListMsg); //oldXyzabc = null; //newXyzabc = null; if (GraspObjectType == 0) { newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = 600; newXyzabc.Y = -200; newXyzabc.Z = 90; newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; } else if (GraspObjectType == 1) { newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = 300; newXyzabc.Y = -200; newXyzabc.Z = float.Parse(Z_Value.Text); newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = float.Parse(X_Value.Text); newXyzabc.Y = float.Parse(Y_Value.Text); newXyzabc.Z = 90; newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; } else if (GraspObjectType == 2) { newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = 450; newXyzabc.Y = -200; newXyzabc.Z = 90; newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; } /*newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = float.Parse(X_Value.Text); newXyzabc.Y = float.Parse(Y_Value.Text); newXyzabc.Z = 90; newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); * oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null;*/ Thread.Sleep(100); GraspState = -1; GraspControl = new Thread(new ThreadStart(GraspControlThread)); GraspControl.Start(); //newXyzabc = new Coordinate_XYZABC(); //oldXyzabc = new Coordinate_XYZABC(); //newXyzabc.X = float.Parse(X_Value.Text); //newXyzabc.Y = float.Parse(Y_Value.Text); //newXyzabc.Z = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[2]; //newXyzabc.A = float.Parse(A_Value.Text); //newXyzabc.B = float.Parse(B_Value.Text); //newXyzabc.C = float.Parse(C_Value.Text); //oldXyzabc.X = float.Parse(X_Value.Text); //oldXyzabc.Y = float.Parse(Y_Value.Text); //oldXyzabc.Z = float.Parse(Z_Value.Text); //oldXyzabc.A = float.Parse(A_Value.Text); //oldXyzabc.B = float.Parse(B_Value.Text); //oldXyzabc.C = float.Parse(C_Value.Text); //if (!KukaRobotControlObject.move_XYZABC_SingalMode(newXyzabc, oldXyzabc)) // myListBox("Error : Xyzabc Out of limited!!", ListMsg); //oldXyzabc = null; //newXyzabc = null; newXyzabc = new Coordinate_XYZABC(); oldXyzabc = new Coordinate_XYZABC(); newXyzabc.X = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[0]; newXyzabc.Y = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[1]; newXyzabc.Z = KukaRobotControlObject.Serv.PoseRecognitionSystem_Data.GraspInitial_Position[2]; newXyzabc.A = float.Parse(A_Value.Text); newXyzabc.B = float.Parse(B_Value.Text); newXyzabc.C = float.Parse(C_Value.Text); oldXyzabc.X = float.Parse(X_Value.Text); oldXyzabc.Y = float.Parse(Y_Value.Text); oldXyzabc.Z = float.Parse(Z_Value.Text); oldXyzabc.A = float.Parse(A_Value.Text); oldXyzabc.B = float.Parse(B_Value.Text); oldXyzabc.C = float.Parse(C_Value.Text); if (!KukaRobotControlObject.move_XYZABC_TogetherMode(newXyzabc, oldXyzabc)) myListBox("Error : Xyzabc Out of limited!!", ListMsg); oldXyzabc = null; newXyzabc = null; IsArmCanMove = true; KukaRobotControlObject.Serv.PoseRecognitionSystem_Data._State = 9; } break; } default: { break; } } }