Example #1
0
        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();
                }
            }
        }
Example #2
0
        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();

                }
            }
        }