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); } }
private static void TestTiltSensor(RotationResult actualRotationResult, RotationResult expectedRotationResult, double toleranceDegrees) { // X axis Console.WriteLine($"Expected rotation X: {expectedRotationResult.XRotation}°. Actual rotation X: {actualRotationResult.XRotation}°. Tolerance: +{toleranceDegrees}/-{toleranceDegrees}"); if (actualRotationResult.XRotation <= expectedRotationResult.XRotation + toleranceDegrees && actualRotationResult.XRotation >= expectedRotationResult.XRotation - toleranceDegrees) { ConsoleHelper.WriteLine($"Test {_testNumber} 'rotation X' passed", ConsoleColor.Green); } else { ConsoleHelper.WriteLine($"Test {_testNumber} 'rotation X' failed", ConsoleColor.Red); } // Y axis Console.WriteLine($"Expected rotation Y: {expectedRotationResult.YRotation}°. Actual rotation Y: {actualRotationResult.YRotation}°. Tolerance: +{toleranceDegrees}/-{toleranceDegrees}"); if (actualRotationResult.YRotation <= expectedRotationResult.YRotation + toleranceDegrees && actualRotationResult.YRotation >= expectedRotationResult.YRotation - toleranceDegrees) { ConsoleHelper.WriteLine($"Test {_testNumber} 'rotation Y' passed", ConsoleColor.Green); } else { ConsoleHelper.WriteLine($"Test {_testNumber} 'rotation Y' failed", ConsoleColor.Red); } _testNumber++; }
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); } }
private ContinousBendingMomentLoad(ILoadWithPosition startPosition, ILoadWithPosition endPosition) : base(startPosition, endPosition) { BendingMomentResult = new BendingMomentResult(this); RotationResult = new RotationResult(this); VerticalDeflectionResult = new VerticalDeflectionResult(this); }
public void SetRotationResult(double xRotation, double yRotation) { this.rotationResult = new RotationResult { XRotation = xRotation, YRotation = yRotation }; }
public Beam(IList <ISpan> spans, ICollection <INode> nodes) { Spans = spans ?? throw new ArgumentNullException(nameof(spans)); Nodes = nodes ?? throw new ArgumentNullException(nameof(nodes)); GlobalStiffnessMatrix = new GlobalStiffnessMatrix(this); NormalForceResult = new NormalForceResult(this); ShearResult = new ShearResult(this); BendingMomentResult = new BendingMomentResult(this); HorizontalDeflectionResult = new HorizontalDeflectionResult(this); VerticalDeflectionResult = new VerticalDeflectionResult(this); RotationResult = new RotationResult(this); }
private ContinousAngledLoad(ILoadWithPosition startPosition, ILoadWithPosition endPosition, double angle) : base(startPosition, endPosition) { Angle = angle; SetContinousLoads(); NormalForceResult = new NormalForceResult(_horizontalContinousLoad); ShearResult = new ShearResult(_verticalContinousLoad); BendingMomentResult = new BendingMomentResult(_verticalContinousLoad); RotationResult = new RotationResult(_verticalContinousLoad); HorizontalDeflectionResult = new HorizontalDeflectionResult(_horizontalContinousLoad); VerticalDeflectionResult = new VerticalDeflectionResult(_verticalContinousLoad); }
public void BendingMomentLoadResults_GetValueForRotationTest_Success() { var span = new Mock <ISpan>(); span.Setup(s => s.Material.YoungModulus).Returns(2); span.Setup(s => s.Section.MomentOfInteria).Returns(4); var continousLoad = new Mock <IContinousLoad>(); continousLoad.Setup(cl => cl.StartPosition.Value).Returns(5); var rotationResult = new RotationResult(continousLoad.Object); var result = rotationResult.GetValue(span.Object, distanceFromLeftSide: 4, currentLength: 1); Assert.That(result, Is.EqualTo(2.8125)); }
public void SpanExtendLoadResult_GetValueForRotationTest_Success() { var continousLoad = new Mock <IContinousLoad>(); continousLoad.Setup(cl => cl.StartPosition.Value).Returns(0); continousLoad.Setup(cl => cl.EndPosition.Value).Returns(3); var span = new Mock <ISpan>(); span.Setup(s => s.Section.SolidHeight).Returns(3); var rotationResult = new RotationResult(continousLoad.Object); var result = rotationResult.GetValue(span.Object, distanceFromLeftSide: 4, currentLength: 1); Assert.That(result, Is.EqualTo(-0.0003)); }
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 void SetUpData() { var continousLoad = new Mock <IContinousLoad>(); continousLoad.Setup(cl => cl.StartPosition.Value).Returns(1); continousLoad.Setup(cl => cl.StartPosition.Position).Returns(1); continousLoad.Setup(cl => cl.EndPosition.Value).Returns(3); continousLoad.Setup(cl => cl.EndPosition.Position).Returns(7); continousLoad.Setup(cl => cl.Length) .Returns(continousLoad.Object.EndPosition.Position - continousLoad.Object.StartPosition.Position); var span = new Mock <ISpan>(); span.Setup(s => s.Material.YoungModulus).Returns(2); span.Setup(s => s.Section.MomentOfInteria).Returns(4); _span = span.Object; _rotationResult = new RotationResult(continousLoad.Object); }
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); } }
private UpDownTemperatureDifferenceLoad(ILoadWithPosition startPosition, ILoadWithPosition endPosition) : base(startPosition, endPosition) { RotationResult = new RotationResult(this); VerticalDeflectionResult = new VerticalDeflectionResult(this); }