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); } }
public InspectionLineFind() { FindLineProc = new CogFindLineTool(); FindLineResults = new CogFindLineResults(); FindLineProc.RunParams.DecrementNumToIgnore = true; }
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); } }
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); } }
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); } }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //생성 : //추가 : //목적 : 초기화 //설명 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 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); }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //생성 : //수정 : //목적 : 초기화 //설명 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 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); }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //생성 : //추가 : //목적 : 레시피 저장 //설명 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 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; }
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)); }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //생성 : //추가 : //목적 : 생성자 //설명 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public CDialogCogFindLine(CogFindLineTool objFindLineTool) { m_objFindLineTool = objFindLineTool; InitializeComponent(); }