Esempio n. 1
0
        public Boolean Load()
        {
            string ProcID = System.Reflection.MethodInfo.GetCurrentMethod().Name.ToString();

            try
            {
                mFindCircleTool = null;
                mFindCircleTool = new CogFindCircleTool();

                mFindCircleTool_Results = null;
                mFindCircleTool_Results = new FindCircleTool_Results();

                mCenterX                     = 730.041;
                mCenterY                     = 436.627;
                mRadius                      = 377.985;
                mAngleStart                  = 78.8641;
                mAngleSpan                   = -277.93;
                mNumCalipers                 = 6;
                mNumToIgnore                 = 2;
                mCaliperSearchLength         = 177.499;
                mCaliperProjectionLength     = 54.2951;
                mCircleSearchDirectionOption = CogFindCircleSearchDirectionConstants.Outward;
                mCogCaliperPolarityConstants = CogCaliperPolarityConstants.LightToDark;

                FindCircleTool_Status = false;

                return(true);
            }
            catch (Exception ex)
            {
                SaveLog.Msg_("FindCircleTool Load Failed : " + ModularID + ":\r\n" + ProcID + ":\r\n" + ex.ToString());
                return(false);
            }
        }
Esempio n. 2
0
        public Boolean LoadFromVPPFile(string FileName)//檔案參數載入
        {
            string ProcID       = System.Reflection.MethodInfo.GetCurrentMethod().Name.ToString();
            string TempFileName = (string)FileName;

            try
            {
                //從CogTool裡面讀出來
                string       strFolderPath = @"D:\VPS_File\Product\FindCircleTool\" + @FileName + @"\";
                CogToolBlock ToolBlock1    = new CogToolBlock();

                FileName = strFolderPath + FileName + "_FCT.vpp";

                ToolBlock1 = (CogToolBlock)CogSerializer.LoadObjectFromFile(FileName);//開啟ToolBlock vpp檔案

                //依序載入
                mFindCircleTool = (CogFindCircleTool)ToolBlock1.Tools[TempFileName + "_FindCircleTool_"];
                mFindCircleTool.Run();

                SaveLog.Msg_("Data of Find Circle Tool Loaded : " + @FileName);
                ToolBlock1 = null;

                FindCircleTool_Status = true;
                return(true);
            }
            catch (Exception ex)
            {
                SaveLog.Msg_("Save FindCircleTool Data Failed : " + ModularID + ":\r\n" + ProcID + ":\r\n" + ex.ToString());
                FindCircleTool_Status = false;
                return(false);
            }
        }
Esempio n. 3
0
        private void TeachDisplayMouseUpEvent(object _CaliperTool)
        {
            if (CurrentAlgoType != eAlgoType.C_NEEDLE_FIND && CurrentAlgoType != eAlgoType.C_LINE_FIND)
            {
                return;
            }
            if (CurrentTeachStep != eTeachStep.ALGO_SET)
            {
                return;
            }

            if (CurrentAlgoType == eAlgoType.C_NEEDLE_FIND)
            {
                CogFindCircleTool _CircleCaliperTool = _CaliperTool as CogFindCircleTool;

                double _CenterX = 0, _CenterY = 0, _Radius = 0, _AngleStart = 0, _AngleSpan = 0;
                _CircleCaliperTool.RunParams.ExpectedCircularArc.GetCenterRadiusAngleStartAngleSpan(out _CenterX, out _CenterY, out _Radius, out _AngleStart, out _AngleSpan);

                int              _CaliperNumber = 0;
                double           _CaliperSearchLength = 0, _CaliperProjectionLength = 0;
                eSearchDirection _CaliperSearchDir = eSearchDirection.IN_WARD;
                ePolarity        _CaliperPolarity = ePolarity.DARK_TO_LIGHT;
                _CaliperNumber           = _CircleCaliperTool.RunParams.NumCalipers;
                _CaliperSearchLength     = _CircleCaliperTool.RunParams.CaliperSearchLength;
                _CaliperProjectionLength = _CircleCaliperTool.RunParams.CaliperProjectionLength;
                _CaliperSearchDir        = (eSearchDirection)_CircleCaliperTool.RunParams.CaliperSearchDirection;
                _CaliperPolarity         = (ePolarity)_CircleCaliperTool.RunParams.CaliperRunParams.Edge0Polarity;

                ucCogNeedleFindWnd.SetCaliper(_CaliperNumber, _CaliperSearchLength, _CaliperProjectionLength, _CaliperSearchDir, _CaliperPolarity);
                ucCogNeedleFindWnd.SetCircularArc(_CenterX, _CenterY, _Radius, _AngleStart, _AngleSpan);
            }

            else if (CurrentAlgoType == eAlgoType.C_LINE_FIND)
            {
                CogFindLineTool _FindLineTool = _CaliperTool as CogFindLineTool;

                double _StartX = 0, _StartY = 0, _EndX = 0, _EndY = 0;
                _FindLineTool.RunParams.ExpectedLineSegment.GetStartEnd(out _StartX, out _StartY, out _EndX, out _EndY);

                int    _CaliperNumber = 0;
                double _CaliperSearchLength = 0, _CaliperProjectionLength = 0, _CaliperDirection;
                _CaliperNumber           = _FindLineTool.RunParams.NumCalipers;
                _CaliperSearchLength     = _FindLineTool.RunParams.CaliperSearchLength;
                _CaliperProjectionLength = _FindLineTool.RunParams.CaliperProjectionLength;
                _CaliperDirection        = _FindLineTool.RunParams.CaliperSearchDirection;

                ucCogLineFindWnd.SetCaliper(_CaliperNumber, _CaliperSearchLength, _CaliperProjectionLength, _CaliperDirection);
                ucCogLineFindWnd.SetCaliperLine(_StartX, _StartY, _EndX, _EndY);
            }
        }
Esempio n. 4
0
        public Boolean unLoad()
        {
            string ProcID = System.Reflection.MethodInfo.GetCurrentMethod().Name.ToString();

            try
            {
                mFindCircleTool = null;

                FindCircleTool_Status = false;

                return(true);
            }
            catch (Exception ex)
            {
                SaveLog.Msg_("FindCircleTool unLoad Failed : " + ModularID + ":\r\n" + ProcID + ":\r\n" + ex.ToString());
                return(false);
            }
        }
Esempio n. 5
0
        public CogFindCircleTool Run(CogRecordDisplay CogRecordDisplay1)
        {
            string ProcID = System.Reflection.MethodInfo.GetCurrentMethod().Name.ToString();

            FindCircleTool_Status = false;

            try
            {
                m_FindCircleTool.InputImage = (CogImage8Grey)CogRecordDisplay1.Image;

                m_FindCircleTool.Run();
                CogRecordDisplay1.Record = m_FindCircleTool.CreateLastRunRecord().SubRecords["InputImage"];
                FindCircleTool_Status    = true;
                return(m_FindCircleTool);
            }
            catch (Exception ex)
            {
                //SaveLog.Msg_("FindCircleTool Run Failed : " + ModularID + ":\r\n" + ProcID + ":\r\n" + ex.ToString());
                MessageBox.Show(ex.ToString());
                m_FindCircleTool = null;
                return(m_FindCircleTool);
            }
        }
 public InspectionNeedleCircleFind()
 {
     FindCircleProc    = new CogFindCircleTool();
     FindCircleResults = new CogFindCircleResults();
 }
Esempio n. 7
0
        public static List <double> find(int toolNum, int method)
        {
            object toolgroup = CogSerializer.LoadObjectFromFile("c://tool.vpp");
            object job       = CogSerializer.LoadObjectFromFile("QuickBuild1.vpp");

            switch (toolNum)
            {
            case 0:  toolgroup = CogSerializer.LoadObjectFromFile("c://tool0.vpp");
                break;

            case 1:  toolgroup = CogSerializer.LoadObjectFromFile("c://tool1.vpp");
                break;

            case 2: toolgroup = CogSerializer.LoadObjectFromFile("c://tool2.vpp");
                break;

            case 3: toolgroup = CogSerializer.LoadObjectFromFile("c://tool3.vpp");
                break;

            default: break;
            }

            CogToolGroup  ToolGroup1 = toolgroup as CogToolGroup;
            CogJobManager cojob      = job as CogJobManager;
            CogJob        cojob      = cojob.Job["CogJob1"] as CogJob;


            CogImageFileTool myFile = ToolGroup1.Tools["CogImageFileTool1"] as CogImageFileTool;

            myFile.Run();
            CogFindCircleTool myCircleTool = ToolGroup1.Tools["CogFindCircleTool1"] as CogFindCircleTool;
            CogFindLineTool   myLineTool   = ToolGroup1.Tools["CogFindLineTool1"] as CogFindLineTool;

            switch (method)
            {
            case 1: myCircleTool.Run();
                break;

            case 2: myLineTool.Run();
                break;

            case 3: myCircleTool.Run();
                myLineTool.Run();
                break;

            default: break;
            }
            double Lx0    = 0;
            double Lx1    = 0;
            double Ly0    = 0;
            double Ly1    = 0;
            double Langle = 0;
            double Cx     = 0;
            double Cy     = 0;
            double Cr     = 0;


            if (method == 1 | method == 3)
            {
                Cx = myCircleTool.Results.GetCircle().CenterX;
                Cy = myCircleTool.Results.GetCircle().CenterY;
                Cr = myCircleTool.Results.GetCircle().Radius;
            }
            if (method == 2 | method == 3)
            {
                Lx0    = myLineTool.Results.GetLineSegment().StartX;
                Ly0    = myLineTool.Results.GetLineSegment().StartY;
                Lx1    = myLineTool.Results.GetLineSegment().EndX;
                Ly1    = myLineTool.Results.GetLineSegment().EndY;
                Langle = myLineTool.Results.GetLine().Rotation;
            }
            double[] result = { Cx, Cy, Cr, Lx0, Ly0, Lx1, Ly1, Langle };
            return(new List <double>(result));
        }