public void FreeObject() { GeneralInspector.Dispose(); }
// private List<Hdc.Mv.Inspection.MeasurementInfo> c5MeasurementInfos = new List<Hdc.Mv.Inspection.MeasurementInfo>(); public InspectionInfo Inspect(Hdc.Mv.ImageInfo imageInfo) { var newSchema = GetInspectionSchema(); GeneralInspector.ImportInspectionSchema(newSchema); GeneralInspector.Inspect(imageInfo); var inspectionInfo = new InspectionInfo(); var originAResult = GeneralInspector.CircleSearchingResults[0]; var originBResult = GeneralInspector.CircleSearchingResults[1]; var baseLine = new Line(originAResult.Circle.GetCenterPoint(), originBResult.Circle.GetCenterPoint()); var baseLineAngle = 90 - 56; for (int i = 1; i < GeneralInspector.CircleSearchingDefinitions.Count; i++) { var circleSearchingResult = GeneralInspector.CircleSearchingResults[i]; if (!circleSearchingResult.HasError) { var measurement = new Hdc.Mv.Inspection.MeasurementInfo() { StartPointX = originAResult.Circle.CenterX, StartPointY = originAResult.Circle.CenterY, EndPointX = circleSearchingResult.Circle.CenterX, EndPointY = circleSearchingResult.Circle.CenterY, }; Point targetPoint = circleSearchingResult.Circle.GetCenterPoint(); var relativePoint = targetPoint.GetRelativePoint(baseLine, baseLineAngle); var length = relativePoint.ToVector().Length; // measurement.StartPointXActualValue = relativePoint.X; // measurement.StartPointXActualValue = relativePoint.X; measurement.Index = i; measurement.GroupIndex = i; measurement.Value = length; measurement.StartPointXActualValue = relativePoint.X * 16 / 1000.0; measurement.StartPointYActualValue = relativePoint.Y * 16 / 1000.0; // measurement.EndPointXActualValue = relativePoint.X * 16 / 1000.0; // measurement.EndPointYActualValue = relativePoint.Y * 16 / 1000.0; measurement.ValueActualValue = length * 16 / 1000.0; measurement.ValueActualValue = circleSearchingResult.Circle.Radius * 16 / 1000.0; counter++; // DateTime dateTime = DateTime.Now; // Debug.WriteLine("begin -------------" + dateTime + "--------------"); switch (i) { case 1: measurement.EndPointXActualValue = measurement.StartPointXActualValue - 31.85; measurement.EndPointYActualValue = measurement.StartPointYActualValue - (-21.29); c2MeasurementInfos.Add(measurement); break; case 2: measurement.EndPointXActualValue = measurement.StartPointXActualValue - 40.77; measurement.EndPointYActualValue = measurement.StartPointYActualValue - (-44.45); c3MeasurementInfos.Add(measurement); break; case 3: measurement.EndPointXActualValue = measurement.StartPointXActualValue - 42.43; measurement.EndPointYActualValue = measurement.StartPointYActualValue - 83.06; c4MeasurementInfos.Add(measurement); break; case 4: measurement.EndPointXActualValue = measurement.StartPointXActualValue - (-17.28); measurement.EndPointYActualValue = measurement.StartPointYActualValue - 84.04; c5MeasurementInfos.Add(measurement); break; } // Debug.WriteLine("end -------------" + dateTime + "--------------"); inspectionInfo.MeasurementInfos.Add(measurement); } else { // innerCircle.Stroke = Brushes.Red; // outerCircle.Stroke = Brushes.Red; } } DateTime dateTime = DateTime.Now; Debug.WriteLine("begin -------------" + dateTime + "--------------"); Debug.WriteLine("C2 ---------------------"); OutputResults(c2MeasurementInfos); Debug.WriteLine("C3 ---------------------"); OutputResults(c3MeasurementInfos); Debug.WriteLine("C4 ---------------------"); OutputResults(c4MeasurementInfos); Debug.WriteLine("C5 ---------------------"); OutputResults(c5MeasurementInfos); Debug.WriteLine("end -------------" + dateTime + "--------------"); foreach (var searchingResult in GeneralInspector.CircleSearchingResults) { Debug.WriteLine(@"CircleSearchingResults: x={0}, y={1}", searchingResult.Circle.CenterX, searchingResult.Circle.CenterY); } return(inspectionInfo); }
public void Dispose() { GeneralInspector.Dispose(); }