Esempio n. 1
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\FindLineTool\" + @FileName + @"\";
                CogToolBlock ToolBlock1    = new CogToolBlock();

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

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

                //依序載入
                mFindLineTool = (CogFindLineTool)ToolBlock1.Tools[TempFileName + "_FindLineTool_"];
                mFindLineTool.Run();

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

                FindLineTool_Status = true;
                return(true);
            }
            catch (Exception ex)
            {
                SaveLog.Msg_("Save Data Failed : " + ModularID + ":\r\n" + ProcID + ":\r\n" + ex.ToString());
                FindLineTool_Status = false;
                return(false);
            }
        }
Esempio n. 2
0
        public InspectionLineFind()
        {
            FindLineProc    = new CogFindLineTool();
            FindLineResults = new CogFindLineResults();

            FindLineProc.RunParams.DecrementNumToIgnore = true;
        }
Esempio n. 3
0
        public Boolean Load()
        {
            string ProcID = System.Reflection.MethodInfo.GetCurrentMethod().Name.ToString();

            try
            {
                mFindLineTool = null;
                mFindLineTool = new CogFindLineTool();

                mFindLineTool_Results = null;
                mFindLineTool_Results = new FindLineTool_Results();

                mStartX                  = 201.412;
                mStartY                  = 263.353;
                mEndX                    = 401.412;
                mEndY                    = 263.353;
                mNumCalipers             = 6;
                mCaliperSearchLength     = 30;
                mCaliperProjectionLength = 10;
                mCaliperSearchDirection  = 90;

                FindLineTool_Status = false;

                return(true);
            }
            catch (Exception ex)
            {
                SaveLog.Msg_("FindLineTool Load Failed : " + ModularID + ":\r\n" + ProcID + ":\r\n" + ex.ToString());
                return(false);
            }
        }
Esempio n. 4
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. 5
0
        public Boolean unLoad()
        {
            string ProcID = System.Reflection.MethodInfo.GetCurrentMethod().Name.ToString();

            try
            {
                mFindLineTool = null;

                FindLineTool_Status = false;

                return(true);
            }
            catch (Exception ex)
            {
                SaveLog.Msg_("FindLineTool unLoad Failed : " + ModularID + ":\r\n" + ProcID + ":\r\n" + ex.ToString());
                return(false);
            }
        }
Esempio n. 6
0
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //생성 :
        //추가 :
        //목적 : 초기화
        //설명 :
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        private bool Initialize()
        {
            bool bReturn   = false;
            var  pDocument = CDocument.GetDocument;

            do
            {
                InitializeForm();
                timer1.Start();
                m_objCogDisplayMain = cogDisplayRunImage;
                // m_objRecipeParameter = pDocument.m_objConfig.GetRecipeParameter( ( int )CDefine.enumCamera.CAMERA_1 );
                m_objFindLineToolTop    = new CogFindLineTool();
                m_objFindLineToolBottom = new CogFindLineTool();
                m_iPositionCrop         = 0;
                Reload();
                bReturn = true;
            } while(false);

            return(bReturn);
        }
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //생성 :
        //수정 :
        //목적 : Load
        //설명 :
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        public override bool HLLoadRecipe(string strRecipePath, string strRecipeName)
        {
            bool bReturn = false;

            do
            {
                string strFileName = strRecipePath + "\\" + strRecipeName + "\\" + string.Format("FindLine{0}.VPP", m_iIndex);

                try {
                    m_objFindLineTool = CogSerializer.LoadObjectFromFile(strFileName) as CogFindLineTool;
                } catch (System.Exception ex) {
                    Trace.WriteLine(ex.Message + " -> " + ex.StackTrace);
                    MakeErrorMessage("HLLoadRecipe", 5303, ex.Message);
                    break;
                }

                bReturn = true;
            } while(false);

            return(bReturn);
        }
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //생성 :
        //수정 :
        //목적 : 초기화
        //설명 :
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        public override bool HLInitialize(HLDevice.Abstract.CVisionLibraryAbstract.CInitializeParameter objInitializeParameter)
        {
            bool bReturn = false;

            do
            {
                m_objResultLine        = new CogLine();
                m_objResultLineSegment = new CogLineSegment();
                m_objGraphics          = new CogCompositeShape();

                m_objFindLineTool = new CogFindLineTool();

                m_iIndex = m_objInitializeParameter.iIndex;
                m_objInitializeParameter = ( CInitializeParameter )objInitializeParameter.Clone();
                HLLoadRecipe(m_objInitializeParameter.strRecipePath, m_objInitializeParameter.strRecipeName);

                bReturn = true;
            } while(false);

            return(bReturn);
        }
Esempio n. 9
0
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //생성 :
        //수정 :
        //목적 : 초기화
        //설명 :
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        public override bool HLInitialize(HLDevice.Abstract.CVisionLibraryAbstract.CInitializeParameter objInitializeParameter)
        {
            bool bReturn = false;

            do
            {
                m_objInitializeParameter = (HLDevice.Abstract.CVisionLibraryAbstract.CInitializeParameter)objInitializeParameter.Clone();

                m_objFindLineTool      = new CogFindLineTool[( int )CResultData.enumLine.LINE_FINAL];
                m_objResultLine        = new CogLine[( int )CResultData.enumLine.LINE_FINAL];
                m_objResultLineSegment = new CogLineSegment[( int )CResultData.enumLine.LINE_FINAL];
                m_objLineGraphics      = new CogCompositeShape[( int )CResultData.enumLine.LINE_FINAL];

                m_dLinePositionX = new double[( int )CResultData.enumLine.LINE_FINAL];
                m_dLinePositionY = new double[( int )CResultData.enumLine.LINE_FINAL];
                m_dLineAngle     = new double[( int )CResultData.enumLine.LINE_FINAL];


                for (int iLoopCount = 0; iLoopCount < ( int )CResultData.enumLine.LINE_FINAL; iLoopCount++)
                {
                    m_objFindLineTool[iLoopCount]      = new CogFindLineTool();
                    m_objResultLine[iLoopCount]        = new CogLine();
                    m_objResultLineSegment[iLoopCount] = new CogLineSegment();
                    m_objLineGraphics[iLoopCount]      = new CogCompositeShape();
                }

                m_objIntersectTool = new CogIntersectLineLineTool();

                m_iIndex = m_objInitializeParameter.iIndex;
                m_objInitializeParameter = ( CInitializeParameter )objInitializeParameter.Clone();
                HLLoadRecipe(m_objInitializeParameter.strRecipePath, m_objInitializeParameter.strRecipeName);

                bReturn = true;
            } while(false);

            return(bReturn);
        }
Esempio n. 10
0
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //생성 :
        //추가 :
        //목적 : 레시피 저장
        //설명 :
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//      public void SetSaveRecipe( HLVision.VisionLibrary.CVisionLibraryAbstract.CInitializeParameter objInitialize )
//      {
//          CVisionLibraryCogFindLine obj = new CVisionLibraryCogFindLine();
//          obj.HLInitialize( objInitialize );
//          obj.m_objFindLineTool = this.m_objFindLineTool;
//          obj.HLSaveRecipe( objInitialize.strRecipePath, objInitialize.strRecipeName );
//      }

        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //생성 :
        //추가 :
        //목적 : 툴 적용 ( 외부 -> 내부 )
        //설명 :
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        public void SetTool(CogFindLineTool objFindLineTool)
        {
            m_objFindLineTool = objFindLineTool;
        }
Esempio n. 11
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));
        }
Esempio n. 12
0
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 //생성 :
 //추가 :
 //목적 : 생성자
 //설명 :
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 public CDialogCogFindLine(CogFindLineTool objFindLineTool)
 {
     m_objFindLineTool = objFindLineTool;
     InitializeComponent();
 }