Ejemplo n.º 1
0
        /**Draw the Vgroove.*/
        private void Vgroovedraw()
        {
            LinePoint point  = new LinePoint();
            double    yv     = groove.height[0];
            double    Vangle = BeamPara.TurntoRadian(90 - groove.angle[0]);
            double    xv     = (yv / Math.Tan(Vangle));

            wavepath.Series.Clear();
            wavepath.Axes.Left.Maximum = grooveheight + 1;
            point.x[0]  = LEFTBORDER;
            point.y[0]  = 0;
            point.x[1]  = -xv;
            point.y[1]  = 0;
            point.x[2]  = 0;
            point.y[2]  = yv;
            point.x[3]  = 0;
            point.y[3]  = grooveheight;
            point.x[4]  = 0;
            point.y[4]  = yv;
            point.x[5]  = xv;
            point.y[5]  = 0;
            point.x[6]  = RIGHTBORDER;
            point.y[6]  = 0;
            point.count = 7;
            Draw.DrawLine(point, Color.Black, wavepath);

            point       = new LinePoint();
            point.x[0]  = LEFTBORDER;
            point.y[0]  = grooveheight;
            point.x[1]  = RIGHTBORDER;
            point.y[1]  = grooveheight;
            point.count = 2;
            Draw.DrawLine(point, Color.Black, wavepath);
        }
Ejemplo n.º 2
0
        public void Modifypara(FormModify formModify, int cancelflag)
        {
            panelModify.Visible = false;
            if (cancelflag == 0)
            {
                int    i       = paraGrid.CurrentRow.Index;
                int    channel = (int)paraGrid.Rows[i].Cells["channel"].Value;
                double defectX = 0;
                double defectY = 0;
                double angle   = 0;

                ClassChanpara Chanpara = new ClassChanpara();
                angle   = BeamPara.TurntoRadian(testblock.VAngle);
                defectX = formModify.xd;
                defectY = testblock.BlockHeight - defectX * Math.Tan(angle);

                chanPara[channel].defectAngle[0]    = angle;
                chanPara[channel].interfaceAngle[0] = Chanpara.defectAngle[0] + testblock.VAngle - 90;;
                BeamPara beampara = new BeamPara(Chanpara, testblock, Wedge, Probe, Position);
                beamPara[channel] = beampara;
                beamlist[channel] = beampara.beamfile;

                chanPara[channel].index      = beampara.index;
                chanPara[channel].element[0] = beampara.centerele;
            }
        }
Ejemplo n.º 3
0
        public void ModifyCRCgroove(double yd, double angle, int channel)
        {
            int method = chanPara[channel].method;

            if (method == (int)PathMethod.Reflect)
            {
                chanPara[channel].defectX           = (groove.height[1] + groove.height[0] - yd) * Math.Tan(BeamPara.TurntoRadian(groove.angle[1]));
                chanPara[channel].interfaceAngle[0] = groove.angle[1];;
            }
            else if (method == (int)PathMethod.Direct)
            {
                if (chanPara[channel].defectAngle == 90)
                {
                    chanPara[channel].defectX           = (yd - (grooveheight - groove.height[3])) * Math.Tan(BeamPara.TurntoRadian(groove.angle[2]));
                    chanPara[channel].interfaceAngle[0] = groove.angle[2];
                }
                else
                {
                    chanPara[channel].defectX           = 0;
                    chanPara[channel].interfaceAngle[0] = chanPara[channel].defectAngle;
                }
            }
            else if (method == (int)PathMethod.Series)
            {
                chanPara[channel].defectX           = groove.height[1] * Math.Tan(BeamPara.TurntoRadian(groove.angle[1])) + (groove.height[0] - yd) * Math.Tan(BeamPara.TurntoRadian(groove.angle[0]));
                chanPara[channel].interfaceAngle[0] = chanPara[channel].defectAngle - groove.angle[0];
                chanPara[channel].interfaceAngle[1] = chanPara[channel].defectAngle + groove.angle[0];
            }
        }
Ejemplo n.º 4
0
        /**Draw the Vgroove.*/
        private void Vgroovedraw()
        {
            DrawPoint point  = new DrawPoint();
            double    yv     = testblock.BlockHeight - testblock.BottomLength;
            double    Vangle = BeamPara.TurntoRadian(testblock.VAngle);
            double    xv     = (yv / Math.Tan(Vangle));

            wavepath.Series.Clear();
            wavepath.Axes.Left.Maximum = testblock.BlockHeight + 1;
            point.x[0]  = LEFTBORDER;
            point.y[0]  = 0;
            point.x[1]  = -xv;
            point.y[1]  = 0;
            point.x[2]  = 0;
            point.y[2]  = yv;
            point.x[3]  = 0;
            point.y[3]  = testblock.BlockHeight;
            point.x[4]  = 0;
            point.y[4]  = yv;
            point.x[5]  = xv;
            point.y[5]  = 0;
            point.x[6]  = RIGHTBORDER;
            point.y[6]  = 0;
            point.count = 7;
            Draw.testline(point, Color.Black, wavepath);

            point       = new DrawPoint();
            point.x[0]  = LEFTBORDER;
            point.y[0]  = testblock.BlockHeight;
            point.x[1]  = RIGHTBORDER;
            point.y[1]  = testblock.BlockHeight;
            point.count = 2;
            Draw.testline(point, Color.Black, wavepath);
        }
Ejemplo n.º 5
0
        /**Add the VGroovepara*/
        public void AddVgroove(double yd, double angle, int method)
        {
            int           skewflag = 0;
            ClassChanpara Chanpara;

            for (skewflag = 0; skewflag < 2; skewflag++)
            {
                Chanpara             = new ClassChanpara();
                Chanpara.config      = (int)FocusConfig.Pulse_Echo;
                Chanpara.method      = method;
                Chanpara.defectAngle = angle;
                Chanpara.velocity    = 3.26;
                Chanpara.activenb[0] = 32;
                Chanpara.wave        = "shear";


                if (skewflag == 0)
                {
                    Chanpara.skew = 90;
                }
                else
                {
                    Chanpara.skew = 270;
                }

                if (method == (int)PathMethod.Reflect)
                {
                    Chanpara.name              = "HP" + "DS";
                    Chanpara.defectY           = yd;
                    Chanpara.defectX           = (groove.height[0] - yd) * Math.Tan(BeamPara.TurntoRadian(groove.angle[0]));
                    Chanpara.interfaceAngle[0] = Chanpara.defectAngle - groove.angle[0];
                }

                else if (method == (int)PathMethod.Direct)
                {
                    Chanpara.name              = "ROOT";
                    Chanpara.defectY           = yd;
                    Chanpara.defectX           = 0;
                    Chanpara.interfaceAngle[0] = Chanpara.defectAngle;
                }
                BeamPara beampara = new BeamPara(Chanpara, groove, wedge, probe, position, gateB);
                beamPara.Add(beampara);
                beamlist.Add(beampara.beamfile);

                Chanpara.delay      = beampara.pathtime - beampara.gatebefore;
                Chanpara.range      = 2 * beampara.gatebefore;
                Chanpara.element[0] = beampara.centerele[0] + 64 * skewflag;
                Chanpara.index      = beampara.index;
                chanPara.Add(Chanpara);
            }
        }
Ejemplo n.º 6
0
        /**Draw the CRCgroove.*/
        private void CRCgroovedraw()
        {
            wavepath.Series.Clear();
            double    h0     = 6.27;
            double    h1     = 2.82;
            double    h2     = 1;
            double    h3     = 1.91;
            double    h      = h0 + h1 + h2 + h3;
            double    angle0 = BeamPara.TurntoRadian(5);
            double    angle1 = BeamPara.TurntoRadian(45);
            double    angle2 = BeamPara.TurntoRadian(37.5);
            LinePoint point  = new LinePoint();

            wavepath.Axes[0].Maximum = h + 1;
            point.x[0] = LEFTBORDER;
            point.y[0] = 0;
            point.x[1] = -(h0 * Math.Tan(angle0) + h1 * Math.Tan(angle1));
            point.y[1] = 0;
            point.x[2] = -h1 *Math.Tan(angle1);

            point.y[2]  = h0;
            point.x[3]  = 0;
            point.y[3]  = h0 + h1;
            point.x[4]  = 0;
            point.y[4]  = h0 + h1 + h2;
            point.x[5]  = 0;
            point.y[5]  = h0 + h1;
            point.x[6]  = h1 * Math.Tan(angle1);
            point.y[6]  = h0;
            point.x[7]  = h0 * Math.Tan(angle0) + h1 * Math.Tan(angle1);
            point.y[7]  = 0;
            point.x[8]  = RIGHTBORDER;
            point.y[8]  = 0;
            point.count = 9;
            Draw.DrawLine(point, Color.Black, wavepath);

            point      = new LinePoint();
            point.x[0] = LEFTBORDER;
            point.y[0] = h;
            point.x[1] = -h3 *Math.Tan(angle2);

            point.y[1]  = h;
            point.x[2]  = 0;
            point.y[2]  = h - h3;
            point.x[3]  = h3 * Math.Tan(angle2);
            point.y[3]  = h;
            point.x[4]  = RIGHTBORDER;
            point.y[4]  = h;
            point.count = 5;
            Draw.DrawLine(point, Color.Black, wavepath);
        }
Ejemplo n.º 7
0
        /**Change the chanpara after modify*/
        public void Modifypara(FormModify formModify, int cancelflag)
        {
            modifyisopen        = 0;
            panelModify.Visible = false;
            if (cancelflag == 0)
            {
                int i       = paraGrid.CurrentRow.Index;
                int channel = (int)paraGrid.Rows[i].Cells["channel"].Value;
                int method  = 0;

                ClassChanpara Chanpara = new ClassChanpara();
                method = chanPara[channel].method;
                chanPara[channel].defectAngle = formModify.angled;
                chanPara[channel].defectY     = formModify.yd;

                switch (groove.type)
                {
                case GrooveType.V:
                    ModifyVgroove(chanPara[channel].defectY, chanPara[channel].defectAngle, channel);
                    break;

                case GrooveType.X:
                    ModifyXgroove(chanPara[channel].defectY, chanPara[channel].defectAngle, channel);
                    break;

                case GrooveType.CRC:
                    ModifyCRCgroove(chanPara[channel].defectY, chanPara[channel].defectAngle, channel);
                    break;

                default:
                    MessageShow.show("testblock type error", "坡口类型错误");
                    break;
                }

                BeamPara beampara = new BeamPara(chanPara[channel], groove, wedge, probe, position, gateB);
                beamPara[channel] = beampara;
                beamlist[channel] = beampara.beamfile;

                chanPara[channel].delay      = beampara.pathtime - beampara.gatebefore;
                chanPara[channel].range      = 2 * beampara.gatebefore;
                chanPara[channel].index      = beampara.index;
                chanPara[channel].element[0] = beampara.centerele[0];
                if (method == (int)PathMethod.Series)
                {
                    chanPara[channel].element[1] = beampara.centerele[1];
                }

                BeamRefresh();
            }
        }
Ejemplo n.º 8
0
        /**Creat beamfile which is used now.*/
        private void Getcurrentpara()
        {
            ClassChanpara Chanpara;
            int           zoneindex = 0;
            double        defectX   = 0;
            double        defectY   = 0;
            double        angle     = 0;
            int           skewflag  = 0;

            for (zoneindex = 0; zoneindex < 4; zoneindex++)
            {
                for (skewflag = 0; skewflag < 2; skewflag++)
                {
                    angle   = BeamPara.TurntoRadian(groove.angle[0]);
                    defectX = 4.5 - 1.25 * zoneindex;
                    defectY = grooveheight - defectX * Math.Tan(angle);

                    Chanpara             = new ClassChanpara();
                    Chanpara.config      = (int)FocusConfig.Pulse_Echo;
                    Chanpara.method      = (int)PathMethod.Reflect;
                    Chanpara.name        = "HP" + Convert.ToString(zoneindex) + "DS";
                    Chanpara.defectAngle = 90;
                    Chanpara.velocity    = 3.26;
                    Chanpara.activenb[0] = 32;
                    Chanpara.wave        = "shear";
                    Chanpara.defectX     = defectX;
                    Chanpara.defectY     = defectY;
                    if (skewflag == 0)
                    {
                        Chanpara.skew = 90;
                    }
                    else
                    {
                        Chanpara.skew = 270;
                    }
                    Chanpara.interfaceAngle[0] = Chanpara.defectAngle + groove.angle[0] - 90;

                    BeamPara beampara = new BeamPara(Chanpara, groove, wedge, probe, position, gateB);
                    beamPara.Add(beampara);
                    beamlist.Add(beampara.beamfile);

                    Chanpara.element[0] = beampara.centerele[0] + 64 * skewflag;
                    Chanpara.index      = beampara.index;
                    chanPara.Add(Chanpara);
                }
            }
        }
Ejemplo n.º 9
0
        private void test_Click(object sender, EventArgs e)
        {
            int i       = 0;
            int channel = 0;

            try
            {
                i       = paraGrid.CurrentRow.Index;
                channel = (int)paraGrid.Rows[i].Cells["channel"].Value;
            }
            catch
            {
                return;
            }

            BeamPara beampara = new BeamPara(chanPara[channel], groove, wedge, probe, position, gateB);
        }
Ejemplo n.º 10
0
        private ClassBeamFile CoupleDelay(int startele)
        {
            ClassBeamFile beam  = new ClassBeamFile();
            double        angle = BeamPara.TurntoRadian(Wedge.WedgeAngle);
            int           i     = 0;
            double        delay = Math.Sin(angle) * Probe.ElementaryPitch / Wedge.WedgeVelocity;

            for (i = 0; i < COUPLENUM; i++)
            {
                beam.rxDelay[i] = (float)(i * delay);
                beam.txDelay[i] = (float)(i * delay);
            }
            beam.txSize       = COUPLENUM;
            beam.rxSize       = COUPLENUM;
            beam.txElementBin = BeamPara.GetBeambin(startele, COUPLENUM, 0);
            beam.rxElementBin = BeamPara.GetBeambin(startele, COUPLENUM, 0);
            return(beam);
        }
Ejemplo n.º 11
0
        private ClassBeamFile CoupleDelay(int startele, int skewflag)
        {
            double        gatestart = 0;
            double        gaterange = 0;
            double        ys        = 0;
            int           i         = 0;
            ClassBeamFile beam      = new ClassBeamFile();
            double        angle     = BeamPara.TurntoRadian(wedge.incidentAngle);
            double        delay     = Math.Sin(angle) * probe.eleSpace / wedge.transVeloc;

            for (i = 0; i < COUPLENUM; i++)
            {
                beam.rxDelay[i] = (float)(i * delay);
                beam.txDelay[i] = (float)(i * delay);
            }
            beam.txSize       = COUPLENUM;
            beam.rxSize       = COUPLENUM;
            beam.txElementBin = BeamPara.GetBeambin(startele, COUPLENUM, skewflag);
            beam.rxElementBin = BeamPara.GetBeambin(startele, COUPLENUM, skewflag);

            ys          = wedge.height - ((position.probePosition + probe.eleEdge + startele * probe.eleSpace)) * Math.Sin(angle);
            gatestart   = 2 * ys / Math.Cos(angle) / wedge.transVeloc;
            gaterange   = grooveheight / groove.longVeloc * 2;
            gatei.delay = gatestart;
            gatei.range = gaterange;
            gatea.delay = gatei.delay + gaterange;
            gatea.range = gaterange;
            gateb.delay = gatea.delay + gaterange;
            gateb.range = gaterange;
            gatec.delay = gateb.delay + gaterange;
            gatec.range = gaterange;

            gatedelay.Add(gatei);
            gatedelay.Add(gatea);
            gatedelay.Add(gateb);
            gatedelay.Add(gatec);
            return(beam);
        }
Ejemplo n.º 12
0
        /**Set CRCgroove Defect.*/
        private void CRCGroove(Groove groove, double zonestep)
        {
            double h = groove.height.Sum();
            //manual set CRC para
            int         i            = 0;
            int         direct1count = 0;
            int         direct2count = 0;
            double      prehigh      = 0;
            Defectpoint defectpoint  = new Defectpoint();
            double      serieshigh   = groove.height[0];
            double      reflecthigh  = groove.height[1];
            double      direct1high  = groove.height[2];
            double      direct2high  = groove.height[3];
            double      seriesangle  = BeamPara.TurntoRadian(groove.angle[0]);
            double      reflectangle = BeamPara.TurntoRadian(groove.angle[1]);
            double      directangle  = BeamPara.TurntoRadian(groove.angle[2]);

            double[] reflectzone;
            double[] serieszone;
            double[] direct1zone;
            double[] direct2zone;

            reflectzone = Getzone(reflecthigh, zonestep, ref reflectcount);
            serieszone  = Getzone(serieshigh, zonestep, ref seriescount);
            direct1zone = Getzone(direct1high, zonestep, ref direct1count);
            direct2zone = Getzone(direct2high, zonestep, ref direct2count);
            directcount = direct1count + direct2count;

            for (i = 0; i < seriescount; i++)
            {
                defectpoint             = new Defectpoint();
                defectpoint.defectY     = prehigh + serieszone[i] / 2;
                defectpoint.defectX     = reflecthigh * Math.Tan(reflectangle) + (serieshigh - defectpoint.defectY) * Math.Tan(seriesangle);
                defectpoint.defectangle = 45;
                defectlist.Add(defectpoint);
                prehigh += serieszone[i];
            }

            prehigh = 0;
            for (i = 0; i < reflectcount; i++)
            {
                defectpoint             = new Defectpoint();
                defectpoint.defectY     = serieshigh + prehigh + reflectzone[i] / 2;
                defectpoint.defectX     = (reflecthigh + serieshigh - defectpoint.defectY) * Math.Tan(reflectangle);
                defectpoint.defectangle = 90;
                defectlist.Add(defectpoint);
                prehigh += reflectzone[i];
            }

            prehigh = 0;
            for (i = 0; i < direct1count; i++)
            {
                defectpoint             = new Defectpoint();
                defectpoint.defectY     = serieshigh + reflecthigh + prehigh + direct1zone[i] / 2;
                defectpoint.defectX     = 0;
                defectpoint.defectangle = 70;
                defectlist.Add(defectpoint);
                prehigh += direct1zone[i];
            }

            prehigh = 0;
            for (i = 0; i < direct2count; i++)
            {
                defectpoint             = new Defectpoint();
                defectpoint.defectY     = serieshigh + reflecthigh + direct1high + prehigh + direct2zone[i] / 2;
                defectpoint.defectX     = (defectpoint.defectY - (h - direct2high)) * Math.Tan(directangle);
                defectpoint.defectangle = 90;
                defectlist.Add(defectpoint);
                prehigh += direct2zone[i];
            }
        }
Ejemplo n.º 13
0
        /**Set Vgroove Defect.*/
        private void VGroove(Groove groove, double zonestep)
        {
            int         i            = 0;
            double      prehigh      = 0;
            Defectpoint defectpoint  = new Defectpoint();
            double      reflecthigh  = 0;
            double      directhigh   = 0;
            double      reflectangle = 0;

            double[] reflectzone;
            double[] directzone;

            reflecthigh  = groove.height[0];
            directhigh   = groove.height[1];
            reflectangle = 90 - groove.angle[0];
            reflectzone  = Getzone(reflecthigh, zonestep, ref reflectcount);
            directzone   = Getzone(directhigh, zonestep, ref directcount);
            seriescount  = 0;

            //direct
            for (i = 0; i < reflectcount; i++)
            {
                defectpoint             = new Defectpoint();
                defectpoint.defectY     = prehigh + reflectzone[i] / 2;
                defectpoint.defectX     = (reflecthigh - defectpoint.defectY) / Math.Tan(BeamPara.TurntoRadian(reflectangle));
                defectpoint.defectangle = 90;
                defectlist.Add(defectpoint);
                prehigh += reflectzone[i];
            }

            prehigh = 0;
            for (i = 0; i < directcount; i++)
            {
                defectpoint             = new Defectpoint();
                defectpoint.defectY     = reflecthigh + prehigh + directzone[i] / 2;
                defectpoint.defectX     = 0;
                defectpoint.defectangle = 70;
                defectlist.Add(defectpoint);
                prehigh += directzone[i];
            }
        }
Ejemplo n.º 14
0
        private void Getchannelpara()
        {
            ClassChanpara Chanpara;
            int           zoneindex = 0;
            double        defectX   = 0;
            double        defectY   = 0;
            double        angle     = 0;
            int           skewflag  = 0;

            for (zoneindex = 0; zoneindex < 4; zoneindex++)
            {
                for (skewflag = 0; skewflag < 2; skewflag++)
                {
                    angle   = BeamPara.TurntoRadian(testblock.VAngle);
                    defectX = 4.5 - 1.25 * zoneindex;
                    defectY = testblock.BlockHeight - defectX * Math.Tan(angle);

                    Chanpara                = new ClassChanpara();
                    Chanpara.config         = 0;
                    Chanpara.txrx           = 0;
                    Chanpara.method         = 1;
                    Chanpara.name           = "HP" + Convert.ToString(zoneindex) + "DS";
                    Chanpara.defectAngle[0] = 90;
                    Chanpara.velocity       = 3.26;
                    Chanpara.activenb[0]    = 32;
                    Chanpara.wave           = "shear";
                    Chanpara.defectX        = defectX;
                    Chanpara.defectY        = defectY;
                    if (skewflag == 0)
                    {
                        Chanpara.skew = 90;
                    }
                    else
                    {
                        Chanpara.skew = 270;
                    }
                    Chanpara.interfaceAngle[0] = Chanpara.defectAngle[0] + testblock.VAngle - 90;

                    BeamPara beampara = new BeamPara(Chanpara, testblock, Wedge, Probe, Position);
                    beamPara.Add(beampara);
                    beamlist.Add(beampara.beamfile);

                    Chanpara.element[0] = beampara.centerele + 64 * skewflag;
                    Chanpara.index      = beampara.index;
                    chanPara.Add(Chanpara);
                }
            }

            //for (skewflag = 0; skewflag < 2; skewflag++)
            //{
            //    angle = BeamPara.TurntoRadian(testblock.VAngle);
            //    defectX = 0.5;
            //    defectY = testblock.BlockHeight - defectX * Math.Tan(angle);

            //    Chanpara = new ClassChanpara();
            //    Chanpara.config = 0;
            //    Chanpara.txrx = 0;
            //    Chanpara.method = 0;
            //    Chanpara.name = "ROOT";
            //    Chanpara.defectAngle[0] = 70;
            //    Chanpara.velocity = 3.26;
            //    Chanpara.activenb[0] = 32;
            //    Chanpara.wave = "shear";
            //    Chanpara.defectX = defectX;
            //    Chanpara.defectY = defectY;
            //    if (skewflag == 0)
            //    {
            //        Chanpara.skew = 90;
            //    }
            //    else
            //    {
            //        Chanpara.skew = 270;
            //    }
            //    Chanpara.interfaceAngle[0] = Chanpara.defectAngle[0];

            //    BeamPara beampara = new BeamPara(Chanpara, testblock, Wedge, Probe, Position);
            //    beamPara.Add(beampara);
            //    beamlist.Add(beampara.beamfile);

            //    Chanpara.element[0] = beampara.centerele + 64 * skewflag;
            //    Chanpara.index = beampara.index;
            //    chanPara.Add(Chanpara);
            //}
        }
Ejemplo n.º 15
0
        private void GetCRCgroovepara(AutoSet autoset)
        {
            ClassChanpara Chanpara;
            int           skewflag = 0;
            int           i        = 0;
            int           precount = 0;

            for (i = 0; i < autoset.seriescount; i++)
            {
                for (skewflag = 0; skewflag < 2; skewflag++)
                {
                    Chanpara             = new ClassChanpara();
                    Chanpara.config      = (int)FocusConfig.Pitch_Catch;
                    Chanpara.method      = (int)PathMethod.Series;
                    Chanpara.zonetype    = (int)ZoneType.Fill;
                    Chanpara.name        = "Fill" + Convert.ToString(i) + GetLeft(skewflag);
                    Chanpara.defectAngle = autoset.defectlist[i].defectangle;
                    Chanpara.velocity    = 3.26;
                    Chanpara.activenb[0] = 16;
                    Chanpara.activenb[1] = 16;
                    Chanpara.wave        = "shear";
                    Chanpara.defectX     = autoset.defectlist[i].defectX;
                    Chanpara.defectY     = autoset.defectlist[i].defectY;
                    if (skewflag == 0)
                    {
                        Chanpara.skew = 90;
                    }
                    else
                    {
                        Chanpara.skew = 270;
                    }
                    Chanpara.interfaceAngle[0] = Chanpara.defectAngle - 5;
                    Chanpara.interfaceAngle[1] = Chanpara.defectAngle + 5;

                    BeamPara beampara = new BeamPara(Chanpara, groove, wedge, probe, position, gateB);
                    beamPara.Add(beampara);
                    beamlist.Add(beampara.beamfile);

                    Chanpara.delay      = beampara.pathtime - beampara.gatebefore;
                    Chanpara.range      = 2 * beampara.gatebefore;
                    Chanpara.element[0] = beampara.centerele[0] + 64 * skewflag;
                    Chanpara.element[1] = beampara.centerele[1] + 64 * skewflag;
                    Chanpara.index      = beampara.index;
                    chanPara.Add(Chanpara);
                }
            }

            precount += i;
            for (i = 0; i < autoset.reflectcount; i++)
            {
                for (skewflag = 0; skewflag < 2; skewflag++)
                {
                    Chanpara             = new ClassChanpara();
                    Chanpara.config      = (int)FocusConfig.Pulse_Echo;
                    Chanpara.method      = (int)PathMethod.Reflect;
                    Chanpara.zonetype    = (int)ZoneType.HP;
                    Chanpara.name        = "HP" + Convert.ToString(i) + GetLeft(skewflag);
                    Chanpara.defectAngle = autoset.defectlist[i + precount].defectangle;
                    Chanpara.velocity    = 3.26;
                    Chanpara.activenb[0] = 32;
                    Chanpara.wave        = "shear";
                    Chanpara.defectX     = autoset.defectlist[i + precount].defectX;
                    Chanpara.defectY     = autoset.defectlist[i + precount].defectY;
                    if (skewflag == 0)
                    {
                        Chanpara.skew = 90;
                    }
                    else
                    {
                        Chanpara.skew = 270;
                    }
                    Chanpara.interfaceAngle[0] = Chanpara.defectAngle + 45 - 90;

                    BeamPara beampara = new BeamPara(Chanpara, groove, wedge, probe, position, gateB);
                    beamPara.Add(beampara);
                    beamlist.Add(beampara.beamfile);

                    Chanpara.delay      = beampara.pathtime - beampara.gatebefore;
                    Chanpara.range      = 2 * beampara.gatebefore;
                    Chanpara.element[0] = beampara.centerele[0] + 64 * skewflag;
                    Chanpara.index      = beampara.index;
                    chanPara.Add(Chanpara);
                }
            }

            precount += i;
            for (i = 0; i < autoset.directcount; i++)
            {
                for (skewflag = 0; skewflag < 2; skewflag++)
                {
                    Chanpara             = new ClassChanpara();
                    Chanpara.config      = (int)FocusConfig.Pulse_Echo;
                    Chanpara.method      = (int)PathMethod.Direct;
                    Chanpara.defectAngle = autoset.defectlist[i + precount].defectangle;
                    Chanpara.velocity    = 3.26;
                    Chanpara.activenb[0] = 32;
                    Chanpara.wave        = "shear";
                    Chanpara.defectX     = autoset.defectlist[i + precount].defectX;
                    Chanpara.defectY     = autoset.defectlist[i + precount].defectY;
                    if (skewflag == 0)
                    {
                        Chanpara.skew = 90;
                    }
                    else
                    {
                        Chanpara.skew = 270;
                    }

                    //Judge which direct zone
                    if (Chanpara.defectAngle == 90)
                    {
                        Chanpara.name              = "LCP" + Convert.ToString(i) + GetLeft(skewflag);
                        Chanpara.zonetype          = (int)ZoneType.LCP;
                        Chanpara.interfaceAngle[0] = Chanpara.defectAngle + groove.angle[2] - 90;
                    }
                    else
                    {
                        Chanpara.name              = "Root" + Convert.ToString(i) + GetLeft(skewflag);
                        Chanpara.zonetype          = (int)ZoneType.Root;
                        Chanpara.interfaceAngle[0] = Chanpara.defectAngle;
                    }

                    BeamPara beampara = new BeamPara(Chanpara, groove, wedge, probe, position, gateB);
                    beamPara.Add(beampara);
                    beamlist.Add(beampara.beamfile);

                    Chanpara.delay      = beampara.pathtime - beampara.gatebefore;
                    Chanpara.range      = 2 * beampara.gatebefore;
                    Chanpara.element[0] = beampara.centerele[0] + 64 * skewflag;
                    Chanpara.index      = beampara.index;
                    chanPara.Add(Chanpara);
                }
            }
        }
Ejemplo n.º 16
0
 public void ModifyXgroove(double yd, double angle, int channel)
 {
     chanPara[channel].defectX           = Math.Abs((groove.height[0] - yd)) / Math.Tan(BeamPara.TurntoRadian(groove.angle[0]));
     chanPara[channel].interfaceAngle[0] = chanPara[channel].defectAngle - groove.angle[0];
 }
Ejemplo n.º 17
0
        public void ModifyVgroove(double yd, double angle, int channel)
        {
            int method = chanPara[channel].method;

            if (method == (int)PathMethod.Reflect)
            {
                chanPara[channel].defectX           = (groove.height[0] - yd) * Math.Tan(BeamPara.TurntoRadian(groove.angle[0]));
                chanPara[channel].interfaceAngle[0] = chanPara[channel].defectAngle - groove.angle[0];
            }

            else if (method == (int)PathMethod.Direct)
            {
                chanPara[channel].defectX           = 0;
                chanPara[channel].interfaceAngle[0] = chanPara[channel].defectAngle;
            }
        }
Ejemplo n.º 18
0
        private void GetXgroovepara(AutoSet autoset)
        {
            ClassChanpara Chanpara;
            int           skewflag = 0;
            int           i        = 0;
            int           j        = 0;

            for (i = 0; i < autoset.reflectcount; i++)
            {
                for (skewflag = 0; skewflag < 2; skewflag++)
                {
                    Chanpara             = new ClassChanpara();
                    Chanpara.config      = (int)FocusConfig.Pulse_Echo;
                    Chanpara.method      = (int)PathMethod.Reflect;
                    Chanpara.zonetype    = (int)ZoneType.Fill;
                    Chanpara.name        = "Fill" + Convert.ToString(i) + GetLeft(skewflag);
                    Chanpara.defectAngle = autoset.defectlist[i].defectangle;
                    Chanpara.velocity    = 3.26;
                    Chanpara.activenb[0] = 32;
                    Chanpara.wave        = "shear";
                    Chanpara.defectX     = autoset.defectlist[i].defectX;
                    Chanpara.defectY     = autoset.defectlist[i].defectY;
                    if (skewflag == 0)
                    {
                        Chanpara.skew = 90;
                    }
                    else
                    {
                        Chanpara.skew = 270;
                    }
                    Chanpara.interfaceAngle[0] = Chanpara.defectAngle + groove.angle[0] - 90;

                    BeamPara beampara = new BeamPara(Chanpara, groove, wedge, probe, position, gateB);
                    beamPara.Add(beampara);
                    beamlist.Add(beampara.beamfile);

                    Chanpara.delay      = beampara.pathtime - beampara.gatebefore;
                    Chanpara.range      = 2 * beampara.gatebefore;
                    Chanpara.element[0] = beampara.centerele[0] + 64 * skewflag;
                    Chanpara.index      = beampara.index;
                    chanPara.Add(Chanpara);
                }
            }

            for (j = 0; j < autoset.directcount; j++)
            {
                for (skewflag = 0; skewflag < 2; skewflag++)
                {
                    Chanpara             = new ClassChanpara();
                    Chanpara.config      = (int)FocusConfig.Pulse_Echo;
                    Chanpara.method      = (int)PathMethod.Direct;
                    Chanpara.zonetype    = (int)ZoneType.Root;
                    Chanpara.name        = "Root" + Convert.ToString(j) + GetLeft(skewflag);
                    Chanpara.defectAngle = autoset.defectlist[i + j].defectangle;
                    Chanpara.velocity    = 3.26;
                    Chanpara.activenb[0] = 32;
                    Chanpara.wave        = "shear";
                    Chanpara.defectX     = autoset.defectlist[i + j].defectX;
                    Chanpara.defectY     = autoset.defectlist[i + j].defectY;
                    if (skewflag == 0)
                    {
                        Chanpara.skew = 90;
                    }
                    else
                    {
                        Chanpara.skew = 270;
                    }
                    Chanpara.interfaceAngle[0] = Chanpara.defectAngle + groove.angle[0] - 90;

                    BeamPara beampara = new BeamPara(Chanpara, groove, wedge, probe, position, gateB);
                    beamPara.Add(beampara);
                    beamlist.Add(beampara.beamfile);

                    Chanpara.delay      = beampara.pathtime - beampara.gatebefore;
                    Chanpara.range      = 2 * beampara.gatebefore;
                    Chanpara.element[0] = beampara.centerele[0] + 64 * skewflag;
                    Chanpara.index      = beampara.index;
                    chanPara.Add(Chanpara);
                }
            }
        }