public string Apt2JbiFirst(string fileName) { Txt2List txt2list=new Txt2List (); List2Txt list2txt=new List2Txt (); List<string> tmplist = new List<string>(); FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(fs); sr.BaseStream.Seek(0, SeekOrigin.Begin); string tmp = sr.ReadLine(); while (tmp != null) { if (tmp.StartsWith( "GOTO") || tmp.StartsWith( "CIRCLE")) { tmplist.Add(tmp); } tmp = sr.ReadLine(); } sr.Close(); fs.Close(); string tmpjbistr="d:middleTranslation1.txt"; list2txt.ListToTxtFile(tmplist,tmpjbistr ); return tmpjbistr; }
private void btnAPT_Click(object sender, EventArgs e) { Txt2List txt2list = new Txt2List(); List2Txt list2txt = new List2Txt(); List <string> tmplist = new List <string>(); OpenFileDialog openDlg = new OpenFileDialog(); openDlg.Filter = "txt_APT文件|*.txt"; if (openDlg.ShowDialog() != DialogResult.OK) { return; } string fileName = openDlg.FileName; StreamReader sr = new StreamReader(fileName, Encoding.Default); this.rtxbapt.Text = sr.ReadToEnd(); sr.Close(); tmplist = txt2list.ReadTxtToList(fileName); list2txt.ListToTxtFile(tmplist, "D:middleTranslation0.txt"); }
public string Apt2JbiFirst(string fileName) { Txt2List txt2list = new Txt2List(); List2Txt list2txt = new List2Txt(); List <string> tmplist = new List <string>(); FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(fs); sr.BaseStream.Seek(0, SeekOrigin.Begin); string tmp = sr.ReadLine(); while (tmp != null) { if (tmp.StartsWith("GOTO") || tmp.StartsWith("CIRCLE")) { tmplist.Add(tmp); } tmp = sr.ReadLine(); } sr.Close(); fs.Close(); string tmpjbistr = "d:middleTranslation1.txt"; list2txt.ListToTxtFile(tmplist, tmpjbistr); return(tmpjbistr); }
private void btnAPT_Click(object sender, EventArgs e) { Txt2List txt2list = new Txt2List(); List2Txt list2txt = new List2Txt(); List<string> tmplist = new List<string>(); OpenFileDialog openDlg = new OpenFileDialog(); openDlg.Filter = "txt_APT文件|*.txt"; if (openDlg.ShowDialog() != DialogResult.OK) return; string fileName = openDlg.FileName; StreamReader sr = new StreamReader(fileName, Encoding.Default); this.rtxbapt.Text = sr.ReadToEnd(); sr.Close(); tmplist = txt2list.ReadTxtToList(fileName); list2txt.ListToTxtFile(tmplist, "D:middleTranslation0.txt"); }
private void btnJBI_Click(object sender, EventArgs e) { APTtoJBI apt2jbi = new APTtoJBI(); Txt2List txt2list = new Txt2List(); List2Txt list2txt = new List2Txt(); List <string> tmplist = new List <string>(); float parameter_a, parameter_b, parameter_c, Length, toolV; int bol; if (cmbpdMachineSurface.Text == "XY平面") { bol = 0; } else { bol = 1; } parameter_a = float.Parse(this.txbpda.Text); parameter_b = float.Parse(this.txbpdb.Text); parameter_c = float.Parse(this.txbpdc.Text); Length = float.Parse(this.txbpdToolLength.Text) + 375; toolV = float.Parse(this.txbpdToolV.Text); SaveFileDialog sfdlg = new SaveFileDialog(); sfdlg.ShowDialog(); sfdlg.Filter = "文本文件|*.JBI"; string pathstr = apt2jbi.Apt2JbiFirst("D:middleTranslation0.txt"); tmplist = apt2jbi.Apt2Jbi_math(pathstr, Length, parameter_a, parameter_b, parameter_c, toolV, bol); string tmpstrin = apt2jbi.writingJBItoText(tmplist); StreamReader sr = new StreamReader(tmpstrin, Encoding.Default); this.rtxbjbi.Text = sr.ReadToEnd(); sr.Close(); if (sfdlg.ShowDialog() == DialogResult.OK) { string savefile = sfdlg.FileName; string namestr = Path.GetFileNameWithoutExtension(savefile); string directoryname = Path.GetDirectoryName(savefile); int count = (int)(tmplist.Count / 2 / 850 + 1); int offset = 0; for (int i = 0; i < count; i++) { int pointNumbers = 0; int tmpoffset = offset; FileStream fsbegin = new FileStream(@directoryname + "\\" + namestr + i.ToString(), FileMode.Create, FileAccess.Write); StreamWriter swbegin = new StreamWriter(fsbegin); swbegin.Flush(); swbegin.BaseStream.Seek(0, SeekOrigin.Begin); swbegin.WriteLine("/JOB"); swbegin.WriteLine("//NAME " + namestr + i.ToString()); swbegin.WriteLine("//POS"); if (count == 1) { pointNumbers = tmplist.Count / 2 + 2; } else if ((i < count - 1) && count > 1) { if (tmplist[tmplist.Count / 2 + (i + 1) * 850].StartsWith("MOVL")) { pointNumbers = 850 - offset + 2; offset = 0; } else if (tmplist[tmplist.Count / 2 + (i + 1) * 850 + 1].StartsWith("MOVL")) { pointNumbers = 850 + 1 - offset + 2; offset = 1; } else if (tmplist[tmplist.Count / 2 + (i + 1) * 850 + 2].StartsWith("MOVL")) { pointNumbers = 850 + 2 - offset + 2; offset = 2; } else if (tmplist[tmplist.Count / 2 + (i + 1) * 850 + 3].StartsWith("MOVL")) { pointNumbers = 850 + 3 - offset + 2; offset = 3; } } else if (i == count - 1 && count > 1) { pointNumbers = tmplist.Count / 2 - 850 * i - tmpoffset + 2; } swbegin.WriteLine("///NPOS " + pointNumbers.ToString() + ",0,0,0,0,0"); swbegin.WriteLine("///TOOL 0"); swbegin.WriteLine("///POSTYPE PULSE"); swbegin.WriteLine("///PULSE"); swbegin.WriteLine("C00000=0,0,0,0,0,0"); int line = 1; for (int tmpN = tmpoffset; tmpN < pointNumbers - 2; tmpN++, line++) { string tmpstr = tmplist[850 * i + tmpN]; string str = "C" + string.Format("{0:00000}", line) + tmpstr.Remove(0, 6); swbegin.WriteLine(str); if (tmpN == pointNumbers - 3) { if (tmplist[i * 850 + tmpN + 1].StartsWith("MOVL")) { } else if (tmplist[i * 850 + tmpN + 2].StartsWith("MOVL")) { line++; tmpstr = tmplist[850 * i + tmpN + 1]; str = "C" + string.Format("{0:00000}", line) + tmpstr.Remove(0, 6); swbegin.WriteLine(str); } else if (tmplist[i * 850 + tmpN + 3].StartsWith("MOVL")) { line++; tmpstr = tmplist[850 * i + tmpN + 1]; str = "C" + string.Format("{0:00000}", line) + tmpstr.Remove(0, 6); swbegin.WriteLine(str); line++; tmpstr = tmplist[850 * i + tmpN + 2]; str = "C" + string.Format("{0:00000}", line) + tmpstr.Remove(0, 6); swbegin.WriteLine(str); } else if (tmplist[i * 850 + tmpN + 4].StartsWith("MOVL")) { line++; tmpstr = tmplist[850 * i + tmpN + 1]; str = "C" + string.Format("{0:00000}", line) + tmpstr.Remove(0, 6); swbegin.WriteLine(str); line++; tmpstr = tmplist[850 * i + tmpN + 2]; str = "C" + string.Format("{0:00000}", line) + tmpstr.Remove(0, 6); swbegin.WriteLine(str); line++; tmpstr = tmplist[850 * i + tmpN + 3]; str = "C" + string.Format("{0:00000}", line) + tmpstr.Remove(0, 6); swbegin.WriteLine(str); } } } swbegin.WriteLine("C" + string.Format("{0:00000}", line) + "=0,0,0,0,0,0"); swbegin.WriteLine("//INST"); swbegin.WriteLine("///DATE " + DateTime.Now.ToString("yyyy/MM/dd HH:mm")); swbegin.WriteLine("///ATTR SC,RW"); swbegin.WriteLine("///GROUP1 RB2"); swbegin.WriteLine("NOP"); swbegin.WriteLine("MOVL C00000 V=110.00 PL=0"); for (int j = 0; j < pointNumbers - 2; j++) { string tmpstr = tmplist[tmplist.Count / 2 + i * 850 + tmpoffset + j]; string str = tmpstr.Substring(0, 6) + string.Format("{0:00000}", j + 1) + " V=110.00 PL=0"; swbegin.WriteLine(str); } swbegin.WriteLine("MOVL C" + string.Format("{0:00000}", pointNumbers - 1) + " V=110.00 PL=0"); swbegin.WriteLine("END"); swbegin.Flush(); swbegin.Close(); fsbegin.Close(); } } }
private void btnJBI_Click(object sender, EventArgs e) { APTtoJBI apt2jbi = new APTtoJBI(); Txt2List txt2list = new Txt2List(); List2Txt list2txt = new List2Txt(); List<string> tmplist = new List<string>(); float parameter_a, parameter_b, parameter_c, Length, toolV; int bol; if (cmbpdMachineSurface.Text == "XY平面") bol = 0; else bol = 1; parameter_a = float.Parse(this.txbpda.Text); parameter_b = float.Parse(this.txbpdb.Text); parameter_c = float.Parse(this.txbpdc.Text); Length = float.Parse(this.txbpdToolLength.Text)+375; toolV = float.Parse(this.txbpdToolV.Text); SaveFileDialog sfdlg = new SaveFileDialog(); sfdlg.ShowDialog(); sfdlg.Filter = "文本文件|*.JBI"; string pathstr = apt2jbi.Apt2JbiFirst("D:middleTranslation0.txt"); tmplist = apt2jbi.Apt2Jbi_math(pathstr,Length ,parameter_a ,parameter_b ,parameter_c ,toolV,bol ); string tmpstrin = apt2jbi.writingJBItoText(tmplist); StreamReader sr = new StreamReader(tmpstrin, Encoding.Default); this.rtxbjbi.Text = sr.ReadToEnd(); sr.Close(); if (sfdlg.ShowDialog() == DialogResult.OK) { string savefile = sfdlg.FileName; string namestr = Path.GetFileNameWithoutExtension(savefile); string directoryname = Path.GetDirectoryName(savefile); int count = (int)(tmplist.Count / 2 / 850 + 1); int offset = 0; for (int i = 0; i < count; i++) { int pointNumbers = 0; int tmpoffset = offset; FileStream fsbegin = new FileStream(@directoryname + "\\" + namestr + i.ToString(), FileMode.Create, FileAccess.Write); StreamWriter swbegin = new StreamWriter(fsbegin); swbegin.Flush(); swbegin.BaseStream.Seek(0, SeekOrigin.Begin); swbegin.WriteLine("/JOB"); swbegin.WriteLine("//NAME " + namestr + i.ToString()); swbegin.WriteLine("//POS"); if (count == 1) { pointNumbers = tmplist.Count / 2 + 2; } else if ((i < count - 1) && count > 1) { if (tmplist[tmplist.Count / 2 + (i + 1) * 850].StartsWith("MOVL")) { pointNumbers = 850 - offset + 2; offset = 0; } else if (tmplist[tmplist.Count / 2 + (i + 1) * 850 + 1].StartsWith("MOVL")) { pointNumbers = 850 + 1 - offset + 2; offset = 1; } else if (tmplist[tmplist.Count / 2 + (i + 1) * 850 + 2].StartsWith("MOVL")) { pointNumbers = 850 + 2 - offset + 2; offset = 2; } else if (tmplist[tmplist.Count / 2 + (i + 1) * 850 + 3].StartsWith("MOVL")) { pointNumbers = 850 + 3 - offset + 2; offset = 3; } } else if (i == count - 1 && count > 1) { pointNumbers = tmplist.Count / 2 - 850 * i - tmpoffset + 2; } swbegin.WriteLine("///NPOS " + pointNumbers.ToString() + ",0,0,0,0,0"); swbegin.WriteLine("///TOOL 0"); swbegin.WriteLine("///POSTYPE PULSE"); swbegin.WriteLine("///PULSE"); swbegin.WriteLine("C00000=0,0,0,0,0,0"); int line = 1; for (int tmpN = tmpoffset; tmpN < pointNumbers - 2; tmpN++, line++) { string tmpstr = tmplist[850 * i + tmpN]; string str = "C" + string.Format("{0:00000}", line) + tmpstr.Remove(0, 6); swbegin.WriteLine(str); if (tmpN == pointNumbers - 3) { if (tmplist[i * 850 + tmpN + 1].StartsWith("MOVL")) { } else if (tmplist[i * 850 + tmpN + 2].StartsWith("MOVL")) { line++; tmpstr = tmplist[850 * i + tmpN + 1]; str = "C" + string.Format("{0:00000}", line) + tmpstr.Remove(0, 6); swbegin.WriteLine(str); } else if (tmplist[i * 850 + tmpN + 3].StartsWith("MOVL")) { line++; tmpstr = tmplist[850 * i + tmpN + 1]; str = "C" + string.Format("{0:00000}", line) + tmpstr.Remove(0, 6); swbegin.WriteLine(str); line++; tmpstr = tmplist[850 * i + tmpN + 2]; str = "C" + string.Format("{0:00000}", line) + tmpstr.Remove(0, 6); swbegin.WriteLine(str); } else if (tmplist[i * 850 + tmpN + 4].StartsWith("MOVL")) { line++; tmpstr = tmplist[850 * i + tmpN + 1]; str = "C" + string.Format("{0:00000}", line) + tmpstr.Remove(0, 6); swbegin.WriteLine(str); line++; tmpstr = tmplist[850 * i + tmpN + 2]; str = "C" + string.Format("{0:00000}", line) + tmpstr.Remove(0, 6); swbegin.WriteLine(str); line++; tmpstr = tmplist[850 * i + tmpN + 3]; str = "C" + string.Format("{0:00000}", line) + tmpstr.Remove(0, 6); swbegin.WriteLine(str); } } } swbegin.WriteLine("C" + string.Format("{0:00000}", line) + "=0,0,0,0,0,0"); swbegin.WriteLine("//INST"); swbegin.WriteLine("///DATE " + DateTime.Now.ToString("yyyy/MM/dd HH:mm")); swbegin.WriteLine("///ATTR SC,RW"); swbegin.WriteLine("///GROUP1 RB2"); swbegin.WriteLine("NOP"); swbegin.WriteLine("MOVL C00000 V=110.00 PL=0"); for (int j = 0; j < pointNumbers - 2; j++) { string tmpstr = tmplist[tmplist.Count / 2 + i * 850 + tmpoffset + j]; string str = tmpstr.Substring(0, 6) + string.Format("{0:00000}", j + 1) + " V=110.00 PL=0"; swbegin.WriteLine(str); } swbegin.WriteLine("MOVL C" + string.Format("{0:00000}", pointNumbers - 1) + " V=110.00 PL=0"); swbegin.WriteLine("END"); swbegin.Flush(); swbegin.Close(); fsbegin.Close(); } } }
public List<string> Apt2Jbi_math(string fileName,float toollength , float a ,float b ,float c ,float toolV,int bol) { Txt2List txt2list=new Txt2List (); List2Txt list2txt=new List2Txt (); BasicData basicData=new BasicData(); List<string> tmplist = new List<string>(); List<string> tmplistJbi = new List<string>(); List<string> tmplistJbi_down = new List<string>(); tmplist= txt2list.ReadTxtToList(fileName); int i=0; int j = 0; string tmpNext = null; string tmpNexttr = null; for (i = 0; i < tmplist.Count; i++) { string tmpNow = tmplist[i]; if (i == tmplist.Count - 1) tmpNext ="Nothing"; else tmpNext = tmplist[i + 1]; if (i >= tmplist.Count -3) tmpNexttr = "Nothing"; else tmpNexttr = tmplist[i + 3]; if (tmpNow.StartsWith("GOTO")) { if (tmpNext.StartsWith("CIRCLE")) { float[][] allNumbers= GotoCircleToMovl(tmpNow,tmpNext,tmplist [i+2]); float[] pxyz = basicData.SolvingPxyzFromXyz(allNumbers[0][0],allNumbers [0][1],allNumbers [0][2],a,b,c,toollength,bol ); float[] locationP0and1 = basicData.InverseSolution(pxyz[0], pxyz[1], pxyz[2], bol); float[] pxyz2 = basicData.SolvingPxyzFromXyz(allNumbers[3][0], allNumbers[3][1], allNumbers[3][2],a,b,c, toollength,bol); float[] locationP2 = basicData.InverseSolution(pxyz2[0], pxyz2[1], pxyz2[2], bol); float[] pxyz3 = basicData.SolvingPxyzFromXyz(allNumbers[2][0], allNumbers[2][1], allNumbers[2][2],a,b,c, toollength,bol); float[] locationP3 = basicData.InverseSolution(pxyz3[0], pxyz3[1], pxyz3[2], bol); string tmpLocationP0and1 = '=' + locationP0and1[6].ToString() + ',' + locationP0and1[7].ToString() + ',' + locationP0and1[8].ToString() + ',' + locationP0and1[9].ToString() + ',' + locationP0and1[10].ToString() + ',' + locationP0and1[11].ToString(); string tmpLocationP2 = '=' + locationP2[6].ToString() + ',' + locationP2[7].ToString() + ',' + locationP2[8].ToString() + ',' + locationP2[9].ToString() + ',' + locationP2[10].ToString() + ',' + locationP2[11].ToString(); string tmpLocationP3 = '=' + locationP3[6].ToString() + ',' + locationP3[7].ToString() + ',' + locationP3[8].ToString() + ',' + locationP3[9].ToString() + ',' + locationP3[10].ToString() + ',' + locationP3[11].ToString(); string tmpJbi_up_zero = "C" + string.Format("{0:00000}", j) + tmpLocationP0and1; string tmpJbi_down_zero = "MOVL C" + string.Format("{0:00000}", j) + " V="+toolV.ToString ()+" PL=0"; j++; string tmpJbi_up_one = "C" + string.Format("{0:00000}", j) + tmpLocationP0and1; string tmpJbi_down_one = "MOVC C" + string.Format("{0:00000}", j) + " V=" + toolV.ToString() + " PL=0"; j++; string tmpJbi_up_two = "C" + string.Format("{0:00000}", j) + tmpLocationP2; string tmpJbi_down_two = "MOVC C" + string.Format("{0:00000}", j) + " V=" + toolV.ToString() + " PL=0"; j++; string tmpJbi_up_three = "C" + string.Format("{0:00000}", j) + tmpLocationP3; string tmpJbi_down_three = "MOVC C" + string.Format("{0:00000}", j) + " V=" + toolV.ToString() + " PL=0"; tmplistJbi.Add(tmpJbi_up_zero); tmplistJbi_down.Add(tmpJbi_down_zero); tmplistJbi.Add(tmpJbi_up_one); tmplistJbi_down.Add(tmpJbi_down_one); tmplistJbi.Add(tmpJbi_up_two); tmplistJbi_down.Add(tmpJbi_down_two); tmplistJbi.Add(tmpJbi_up_three); tmplistJbi_down.Add(tmpJbi_down_three); if (tmpNexttr.StartsWith("CIRCLE")) { // i++; i++; j++; } else { i++; i++; j++; } } else { float[] xyz = GotoLinesToMovl(tmpNow); float[] pxyz = basicData.SolvingPxyzFromXyz(xyz[0], xyz[1], xyz[2],a,b,c, toollength,bol); float[] locationP = basicData.InverseSolution(pxyz[0], pxyz[1], pxyz[2], bol); string tmpLocationP = '=' + locationP[6].ToString() + ',' + locationP[7].ToString() + ',' + locationP[8].ToString() + ',' + locationP[9].ToString() + ',' + locationP[10].ToString() + ',' + locationP[11].ToString(); string tmpJbi_up = "C"+string.Format("{0:00000}", j) + tmpLocationP; string tmpJbi_down = "MOVL C" + string.Format("{0:00000}", j) + " V=" + toolV.ToString() + " PL=0"; tmplistJbi.Add(tmpJbi_up); tmplistJbi_down.Add(tmpJbi_down); j++; } } } tmplistJbi.AddRange(tmplistJbi_down); return tmplistJbi; }
public List <string> Apt2Jbi_math(string fileName, float toollength, float a, float b, float c, float toolV, int bol) { Txt2List txt2list = new Txt2List(); List2Txt list2txt = new List2Txt(); BasicData basicData = new BasicData(); List <string> tmplist = new List <string>(); List <string> tmplistJbi = new List <string>(); List <string> tmplistJbi_down = new List <string>(); tmplist = txt2list.ReadTxtToList(fileName); int i = 0; int j = 0; string tmpNext = null; string tmpNexttr = null; for (i = 0; i < tmplist.Count; i++) { string tmpNow = tmplist[i]; if (i == tmplist.Count - 1) { tmpNext = "Nothing"; } else { tmpNext = tmplist[i + 1]; } if (i >= tmplist.Count - 3) { tmpNexttr = "Nothing"; } else { tmpNexttr = tmplist[i + 3]; } if (tmpNow.StartsWith("GOTO")) { if (tmpNext.StartsWith("CIRCLE")) { float[][] allNumbers = GotoCircleToMovl(tmpNow, tmpNext, tmplist [i + 2]); float[] pxyz = basicData.SolvingPxyzFromXyz(allNumbers[0][0], allNumbers [0][1], allNumbers [0][2], a, b, c, toollength, bol); float[] locationP0and1 = basicData.InverseSolution(pxyz[0], pxyz[1], pxyz[2], bol); float[] pxyz2 = basicData.SolvingPxyzFromXyz(allNumbers[3][0], allNumbers[3][1], allNumbers[3][2], a, b, c, toollength, bol); float[] locationP2 = basicData.InverseSolution(pxyz2[0], pxyz2[1], pxyz2[2], bol); float[] pxyz3 = basicData.SolvingPxyzFromXyz(allNumbers[2][0], allNumbers[2][1], allNumbers[2][2], a, b, c, toollength, bol); float[] locationP3 = basicData.InverseSolution(pxyz3[0], pxyz3[1], pxyz3[2], bol); string tmpLocationP0and1 = '=' + locationP0and1[6].ToString() + ',' + locationP0and1[7].ToString() + ',' + locationP0and1[8].ToString() + ',' + locationP0and1[9].ToString() + ',' + locationP0and1[10].ToString() + ',' + locationP0and1[11].ToString(); string tmpLocationP2 = '=' + locationP2[6].ToString() + ',' + locationP2[7].ToString() + ',' + locationP2[8].ToString() + ',' + locationP2[9].ToString() + ',' + locationP2[10].ToString() + ',' + locationP2[11].ToString(); string tmpLocationP3 = '=' + locationP3[6].ToString() + ',' + locationP3[7].ToString() + ',' + locationP3[8].ToString() + ',' + locationP3[9].ToString() + ',' + locationP3[10].ToString() + ',' + locationP3[11].ToString(); string tmpJbi_up_zero = "C" + string.Format("{0:00000}", j) + tmpLocationP0and1; string tmpJbi_down_zero = "MOVL C" + string.Format("{0:00000}", j) + " V=" + toolV.ToString() + " PL=0"; j++; string tmpJbi_up_one = "C" + string.Format("{0:00000}", j) + tmpLocationP0and1; string tmpJbi_down_one = "MOVC C" + string.Format("{0:00000}", j) + " V=" + toolV.ToString() + " PL=0"; j++; string tmpJbi_up_two = "C" + string.Format("{0:00000}", j) + tmpLocationP2; string tmpJbi_down_two = "MOVC C" + string.Format("{0:00000}", j) + " V=" + toolV.ToString() + " PL=0"; j++; string tmpJbi_up_three = "C" + string.Format("{0:00000}", j) + tmpLocationP3; string tmpJbi_down_three = "MOVC C" + string.Format("{0:00000}", j) + " V=" + toolV.ToString() + " PL=0"; tmplistJbi.Add(tmpJbi_up_zero); tmplistJbi_down.Add(tmpJbi_down_zero); tmplistJbi.Add(tmpJbi_up_one); tmplistJbi_down.Add(tmpJbi_down_one); tmplistJbi.Add(tmpJbi_up_two); tmplistJbi_down.Add(tmpJbi_down_two); tmplistJbi.Add(tmpJbi_up_three); tmplistJbi_down.Add(tmpJbi_down_three); if (tmpNexttr.StartsWith("CIRCLE")) { // i++; i++; j++; } else { i++; i++; j++; } } else { float[] xyz = GotoLinesToMovl(tmpNow); float[] pxyz = basicData.SolvingPxyzFromXyz(xyz[0], xyz[1], xyz[2], a, b, c, toollength, bol); float[] locationP = basicData.InverseSolution(pxyz[0], pxyz[1], pxyz[2], bol); string tmpLocationP = '=' + locationP[6].ToString() + ',' + locationP[7].ToString() + ',' + locationP[8].ToString() + ',' + locationP[9].ToString() + ',' + locationP[10].ToString() + ',' + locationP[11].ToString(); string tmpJbi_up = "C" + string.Format("{0:00000}", j) + tmpLocationP; string tmpJbi_down = "MOVL C" + string.Format("{0:00000}", j) + " V=" + toolV.ToString() + " PL=0"; tmplistJbi.Add(tmpJbi_up); tmplistJbi_down.Add(tmpJbi_down); j++; } } } tmplistJbi.AddRange(tmplistJbi_down); return(tmplistJbi); }