public override void Calculate(InspectedPanel currentPanel, object file) { try { _CenterOffsetResult = null; _RotationResult = null; _StretchResult = null; _HanwhaResult = null; var Boxes = GetCandidateBoxes(currentPanel, PrinterCommonSetting); //Calculate CenterOffsetCorrectionAlgorithm cocAlgo = new CenterOffsetCorrectionAlgorithm(PrinterCommonSetting.Clone()); RotationCorrectionAlgorithm rcAlgo = new RotationCorrectionAlgorithm(PrinterCommonSetting.Clone()); StretchAlgorithm sAlgo = new StretchAlgorithm(); HanwhaHAVAvg hanwhaAvg = new HanwhaHAVAvg(); _CenterOffsetResult = (CenterOffsetResult)cocAlgo.Calculate(Boxes, currentPanel, null); _RotationResult = (RotationResult)rcAlgo.Calculate(Boxes, currentPanel, _CenterOffsetResult); _StretchResult = (StretchResult)sAlgo.Calculate(null, currentPanel, null); _HanwhaResult = (HanwhaResult)hanwhaAvg.Calculate(Boxes, null, null); _WipeReason = JudgeWipeHelper.JudgeWipeByPriorityStrategy(currentPanel, Boxes); } catch (Exception e) { throw new CaculateException(e.Message); } }
public override void Calculate(InspectedPanel currentPanel, object file) { try { _CenterOffsetResult = null; _RotationResult = null; _StretchResult = null; _DefectStatisticResult = null; var Boxes = GetCandidateBoxes(currentPanel, PrinterCommonSetting); //Calculate CenterOffsetCorrectionAlgorithm cocAlgo = new CenterOffsetCorrectionAlgorithm(PrinterCommonSetting.Clone()); RotationCorrectionAlgorithm rcAlgo = new RotationCorrectionAlgorithm(PrinterCommonSetting.Clone()); StretchAlgorithm sAlgo = new StretchAlgorithm(); DefectStatistic dsAlgo = new DefectStatistic(); EkraFiducailOffset ekraFMAlgo = new EkraFiducailOffset(); _CenterOffsetResult = (CenterOffsetResult)cocAlgo.Calculate(Boxes, currentPanel, null); _RotationResult = (RotationResult)rcAlgo.Calculate(Boxes, currentPanel, _CenterOffsetResult); _StretchResult = (StretchResult)sAlgo.Calculate(null, currentPanel, null); _DefectStatisticResult = (DefectStatisticResult)dsAlgo.Calculate(Boxes, currentPanel, null); //Wipe _WipeReason = JudgeWipeHelper.JudgeWipeByPriorityStrategy(currentPanel, Boxes); } catch (Exception e) { throw new CaculateException(e.Message); } }
public override void Calculate(InspectedPanel currentPanel, object file) { try { _CenterOffsetResult = null; _RotationResult = null; _StretchResult = null; _DefectStatisticResult = null; var Boxes = GetCandidateBoxes(currentPanel, PrinterCommonSetting); //Calculate CenterOffsetCorrectionAlgorithm cocAlgo = new CenterOffsetCorrectionAlgorithm(PrinterCommonSetting.Clone()); RotationCorrectionAlgorithm rcAlgo = new RotationCorrectionAlgorithm(PrinterCommonSetting.Clone()); StretchAlgorithm sAlgo = new StretchAlgorithm(); DefectStatistic dsAlgo = new DefectStatistic(); _CenterOffsetResult = (CenterOffsetResult)cocAlgo.Calculate(Boxes, currentPanel, null); _RotationResult = (RotationResult)rcAlgo.Calculate(Boxes, currentPanel, _CenterOffsetResult); _StretchResult = (StretchResult)sAlgo.Calculate(null, currentPanel, null); _DefectStatisticResult = (DefectStatisticResult)dsAlgo.Calculate(Boxes, currentPanel, null);//=>從failbox來 } catch (Exception e) { throw new CaculateException(e.Message); } }
public override void Calculate(InspectedPanel currentPanel, object file) { try { _CenterOffsetResult = null; _RotationResult = null; _StretchResult = null; _DefectStatisticResult = null; var Boxes = GetCandidateBoxes(currentPanel, PrinterCommonSetting); //Calculate CenterOffsetCorrectionAlgorithm cocAlgo = new CenterOffsetCorrectionAlgorithm(PrinterCommonSetting.Clone()); RotationCorrectionAlgorithm rcAlgo = new RotationCorrectionAlgorithm(PrinterCommonSetting.Clone()); StretchAlgorithm sAlgo = new StretchAlgorithm(); DefectStatistic dsAlgo = new DefectStatistic(); //Yamaha該方法和Ese要計算 each box的HAV percentage 平均功能一致,故重用 PadHAVAvg padAvgAlgo = new PadHAVAvg(); _CenterOffsetResult = (CenterOffsetResult)cocAlgo.Calculate(Boxes, currentPanel, null); _RotationResult = (RotationResult)rcAlgo.Calculate(Boxes, currentPanel, _CenterOffsetResult); _StretchResult = (StretchResult)sAlgo.Calculate(null, currentPanel, null); _DefectStatisticResult = (DefectStatisticResult)dsAlgo.Calculate(Boxes, currentPanel, null); //=>從failbox來 _PadHAVAvgResult = (PadHAVAvgResult)padAvgAlgo.Calculate(Boxes, null, null); //YAMAHA需要額外的avg統計 _WipeReason = JudgeWipeHelper.JudgeWipeByPriorityStrategy(currentPanel, Boxes); } catch (Exception e) { throw new CaculateException(e.Message); } }
public override void Calculate(InspectedPanel currentPanel, object file) { _CenterOffsetResult = null; _RotationResult = null; _StretchResult = null; var Boxes = GetCandidateBoxes(currentPanel, PrinterCommonSetting); //Calculate CenterOffsetCorrectionAlgorithm cocAlgo = new CenterOffsetCorrectionAlgorithm(PrinterCommonSetting.Clone()); RotationCorrectionAlgorithm rcAlgo = new RotationCorrectionAlgorithm(PrinterCommonSetting.Clone()); StretchAlgorithm sAlgo = new StretchAlgorithm(); _CenterOffsetResult = (CenterOffsetResult)cocAlgo.Calculate(Boxes, currentPanel, null); _RotationResult = (RotationResult)rcAlgo.Calculate(Boxes, currentPanel, _CenterOffsetResult); _StretchResult = (StretchResult)sAlgo.Calculate(null, currentPanel, null); _WipeReason = JudgeWipeHelper.JudgeWipeByPriorityStrategy(currentPanel, Boxes); }
public override void Calculate(InspectedPanel currentPanel, object file) { try { var Boxes = GetCandidateBoxes(currentPanel, PrinterCommonSetting); //Calculate CenterOffsetCorrectionAlgorithm cocAlgo = new CenterOffsetCorrectionAlgorithm(PrinterCommonSetting.Clone()); RotationCorrectionAlgorithm rcAlgo = new RotationCorrectionAlgorithm(PrinterCommonSetting.Clone()); PadHAVAvg yamahaAlgo = new PadHAVAvg(); _CenterOffsetResult = (CenterOffsetResult)cocAlgo.Calculate(Boxes, currentPanel, null); _RotationResult = (RotationResult)rcAlgo.Calculate(Boxes, currentPanel, _CenterOffsetResult); _PadHAVAvgResult = (PadHAVAvgResult)yamahaAlgo.Calculate(Boxes, null, null);//YAMAHA需要額外的avg統計 } catch (Exception e) { throw new CaculateException(e.Message); } }
public EkraFiducailOffsetInputPara(Ekra_PrinterData data, RotationResult rResult, CenterOffsetResult cResult) { FM = new List <System.Windows.Point>(); foreach (var fm in data.EkraFMs) { var point = new System.Windows.Point(fm.P.X, fm.P.Y); FM.Add(point); } Theta = rResult.Theta; Center = new System.Windows.Point(rResult.Center.X, rResult.Center.Y); Dx = cResult.Dx; Dy = cResult.Dy; }