public Runresults Run(Runresults runresults) { Run(cogRecordDisplay1); if (m_FindCircleTool.Results == null) { runresults.CenterX = 0; runresults.CenterY = 0; runresults.isSuccess = false; return(runresults); } else { CogCircle iCircle = m_FindCircleTool.Results.GetCircle(); if (iCircle == null) { runresults.CenterX = 0; runresults.CenterY = 0; runresults.isSuccess = false; return(runresults); } else { runresults.CenterX = iCircle.CenterX; runresults.CenterY = iCircle.CenterY; runresults.isSuccess = true; return(runresults); } } }
private void ApplyNeedleCircleFindValueFunction(CogNeedleFindAlgo _CogNeedleFindAlgo, ref CogNeedleFindResult _CogNeedleFindResult) { if (eTeachStep.ALGO_SET != CurrentTeachStep) { MessageBox.Show("Not select \"Algorithm Set\" button"); return; } AlgorithmAreaDisplayRefresh(); bool _Result = InspNeedleCircleFindProcess.Run(InspectionImage, _CogNeedleFindAlgo, ref _CogNeedleFindResult); _CogNeedleFindResult.CenterXReal = (_CogNeedleFindResult.CenterX - (InspectionImage.Width / 2)) * ResolutionX; _CogNeedleFindResult.CenterYReal = (_CogNeedleFindResult.CenterY - (InspectionImage.Height / 2)) * ResolutionY; _CogNeedleFindResult.OriginXReal = (_CogNeedleFindResult.OriginX - (InspectionImage.Width / 2)) * ResolutionX; _CogNeedleFindResult.OriginYReal = (_CogNeedleFindResult.OriginY - (InspectionImage.Height / 2)) * ResolutionY; _CogNeedleFindResult.RadiusReal = _CogNeedleFindResult.Radius * ResolutionX; CogCircle _CogCircle = new CogCircle(); if (_CogNeedleFindResult.Radius <= 0) { return; } _CogCircle.SetCenterRadius(_CogNeedleFindResult.CenterX, _CogNeedleFindResult.CenterY, _CogNeedleFindResult.Radius); CogPointMarker _CogCenterPoint = new CogPointMarker(); _CogCenterPoint.SetCenterRotationSize(_CogNeedleFindResult.CenterX, _CogNeedleFindResult.CenterY, 0, 2); kpTeachDisplay.DrawStaticShape(_CogCircle, "Circle", CogColorConstants.Green, 3); kpTeachDisplay.DrawStaticShape(_CogCenterPoint, "CirclePoint", CogColorConstants.Green); string _CenterName = string.Format("X = {0:F2}mm, Y = {1:F2}mm, R = {2:F2}mm", _CogNeedleFindResult.CenterXReal, _CogNeedleFindResult.CenterYReal, _CogNeedleFindResult.RadiusReal); kpTeachDisplay.DrawText(_CenterName, _CogNeedleFindResult.CenterX, _CogNeedleFindResult.CenterY + 150, CogColorConstants.Green, 10, CogGraphicLabelAlignmentConstants.BaselineCenter); }
public void DrawStaticShape(CogCircle _CogCircle, string _groupName, CogColorConstants _color, int _LineSize = 2) { StaticCircleGraphic = new CogCircle(); StaticCircleGraphic = _CogCircle; StaticCircleGraphic.Color = _color; StaticCircleGraphic.LineWidthInScreenPixels = _LineSize; StaticCircleGraphic.GraphicDOFEnable = CogCircleDOFConstants.All; kCogDisplay.ClearDisplay(_groupName); kCogDisplay.StaticGraphics.Add(StaticCircleGraphic, _groupName); }
// 2014.09.02 public void SetInitSearchRegion(double dX, double dY) { m_dInitSearchRegionX = dX; m_dInitSearchRegionY = dY; ICogRegion region = m_icogRegion; if (region is CogCircle) { CogCircle circle = region as CogCircle; circle.CenterX = m_dInitSearchRegionX; circle.CenterY = m_dInitSearchRegionY; } else if (region is CogEllipse) { CogEllipse ellipse = region as CogEllipse; ellipse.CenterX = m_dInitSearchRegionX; ellipse.CenterY = m_dInitSearchRegionY; } else if (region is CogRectangle) { CogRectangle rectangle = region as CogRectangle; rectangle.X = m_dInitSearchRegionX; rectangle.Y = m_dInitSearchRegionY; } else if (region is CogRectangleAffine) { CogRectangleAffine rectangleAffine = region as CogRectangleAffine; rectangleAffine.CenterX = m_dInitSearchRegionX; rectangleAffine.CenterY = m_dInitSearchRegionY; } else if (region is CogCircularAnnulusSection) { CogCircularAnnulusSection circularAnnuluns = region as CogCircularAnnulusSection; circularAnnuluns.CenterX = m_dInitSearchRegionX; circularAnnuluns.CenterY = m_dInitSearchRegionY; } else if (region is CogEllipticalAnnulusSection) { CogEllipticalAnnulusSection ellipticalAnnuluns = region as CogEllipticalAnnulusSection; ellipticalAnnuluns.CenterX = m_dInitSearchRegionX; ellipticalAnnuluns.CenterY = m_dInitSearchRegionY; } }
// 2014.09.02 public void MoveSearchRegion(double x, double y) { m_dMoveSearchRegionX = x; m_dMoveSearchRegionY = y; ICogRegion region = m_icogRegion; if (region is CogCircle) { CogCircle circle = region as CogCircle; circle.CenterX = m_dInitSearchRegionX + x; circle.CenterY = m_dInitSearchRegionY + y; } else if (region is CogEllipse) { CogEllipse ellipse = region as CogEllipse; ellipse.CenterX = m_dInitSearchRegionX + x; ellipse.CenterY = m_dInitSearchRegionY + y; } else if (region is CogRectangle) { CogRectangle rectangle = region as CogRectangle; rectangle.X = m_dInitSearchRegionX + x; rectangle.Y = m_dInitSearchRegionY + y; } else if (region is CogRectangleAffine) { CogRectangleAffine rectangleAffine = region as CogRectangleAffine; rectangleAffine.CenterX = m_dInitSearchRegionX + x; rectangleAffine.CenterY = m_dInitSearchRegionY + y; } else if (region is CogCircularAnnulusSection) { CogCircularAnnulusSection circularAnnuluns = region as CogCircularAnnulusSection; circularAnnuluns.CenterX = m_dInitSearchRegionX + x; circularAnnuluns.CenterY = m_dInitSearchRegionY + y; } else if (region is CogEllipticalAnnulusSection) { CogEllipticalAnnulusSection ellipticalAnnuluns = region as CogEllipticalAnnulusSection; ellipticalAnnuluns.CenterX = m_dInitSearchRegionX + x; ellipticalAnnuluns.CenterY = m_dInitSearchRegionY + y; } }
private Boolean make_results() { string ProcID = System.Reflection.MethodInfo.GetCurrentMethod().Name.ToString(); try { if (mFindCircleTool.Results != null) { CogCircle iCircle = mFindCircleTool.Results.GetCircle(); CogCircularArc iCircularArc = mFindCircleTool.Results.GetCircularArc(); if (iCircle != null && iCircularArc != null) { mFindCircleTool_Results.Circle_CenterX = iCircle.CenterX; mFindCircleTool_Results.Circle_CenterY = iCircle.CenterY; mFindCircleTool_Results.Circle_Radius = iCircle.Radius; mFindCircleTool_Results.CircularArc_CenterX = iCircularArc.CenterX; mFindCircleTool_Results.CircularArc_CenterY = iCircularArc.CenterY; mFindCircleTool_Results.CircularArc_Radius = iCircularArc.Radius; mFindCircleTool_Results.CircularArc_AngleStart = iCircularArc.AngleStart; mFindCircleTool_Results.CircularArc_AngleSpan = iCircularArc.AngleSpan; return(true); } else { SaveLog.Msg_("iCircle or iCircularArc is null!"); return(false); } } else { SaveLog.Msg_("FindCircleTool Doesn't have any result!"); return(false); //MessageBox.Show("Didn't find any line"); } } catch (Exception ex) { SaveLog.Msg_("FindCircleTool make_results Failed : " + ModularID + ":\r\n" + ProcID + ":\r\n" + ex.ToString()); return(false); } }
// 2014.09.02 public void SetInitSearchRegion() { ICogRegion region = m_icogRegion; if (region is CogCircle) { CogCircle circle = region as CogCircle; m_dInitSearchRegionX = circle.CenterX - m_dMoveSearchRegionX; m_dInitSearchRegionY = circle.CenterY - m_dMoveSearchRegionY; } else if (region is CogEllipse) { CogEllipse ellipse = region as CogEllipse; m_dInitSearchRegionX = ellipse.CenterX - m_dMoveSearchRegionX; m_dInitSearchRegionY = ellipse.CenterY - m_dMoveSearchRegionY; } else if (region is CogRectangle) { CogRectangle rectangle = region as CogRectangle; m_dInitSearchRegionX = rectangle.X - m_dMoveSearchRegionX; m_dInitSearchRegionY = rectangle.Y - m_dMoveSearchRegionY; } else if (region is CogRectangleAffine) { CogRectangleAffine rectangleAffine = region as CogRectangleAffine; m_dInitSearchRegionX = rectangleAffine.CenterX - m_dMoveSearchRegionX; m_dInitSearchRegionY = rectangleAffine.CenterY - m_dMoveSearchRegionY; } else if (region is CogCircularAnnulusSection) { CogCircularAnnulusSection circularAnnuluns = region as CogCircularAnnulusSection; m_dInitSearchRegionX = circularAnnuluns.CenterX - m_dMoveSearchRegionX; m_dInitSearchRegionY = circularAnnuluns.CenterY - m_dMoveSearchRegionY; } else if (region is CogEllipticalAnnulusSection) { CogEllipticalAnnulusSection ellipticalAnnuluns = region as CogEllipticalAnnulusSection; m_dInitSearchRegionX = ellipticalAnnuluns.CenterX - m_dMoveSearchRegionX; m_dInitSearchRegionY = ellipticalAnnuluns.CenterY - m_dMoveSearchRegionY; } }
public bool GrabRegion(ADisplay aDisplay, AVisionProBuild._emRegionShape emRegionShape) { aDisplay.ClearOverlay(); ICogGraphicInteractive icogGraphInteractive = null; ICogRegion icogRegion = m_cogBlobTool.Region; CogCircle circle = icogRegion as CogCircle; CogEllipse ellipse = icogRegion as CogEllipse; CogRectangle rectangle = icogRegion as CogRectangle; CogRectangleAffine rectangleAffine = icogRegion as CogRectangleAffine; CogCircularAnnulusSection circularAnnuluns = icogRegion as CogCircularAnnulusSection; CogEllipticalAnnulusSection ellipticalAnnuluns = icogRegion as CogEllipticalAnnulusSection; switch (emRegionShape) { case AVisionProBuild._emRegionShape.Circle: { if (circle == null) { circle = new CogCircle(); circle.FitToImage(aDisplay.GetImage8Grey(), 0.5, 0.5); } icogGraphInteractive = circle as ICogGraphicInteractive; } break; case AVisionProBuild._emRegionShape.Ellipse: { if (ellipse == null) { ellipse = new CogEllipse(); ellipse.FitToImage(aDisplay.GetImage8Grey(), 0.5, 0.5); } icogGraphInteractive = ellipse as ICogGraphicInteractive; } break; case AVisionProBuild._emRegionShape.Rectangle: { if (rectangle == null) { rectangle = new CogRectangle(); rectangle.FitToImage(aDisplay.GetImage8Grey(), 0.5, 0.5); } icogGraphInteractive = rectangle as ICogGraphicInteractive; } break; case AVisionProBuild._emRegionShape.RectangleAffine: { if (rectangleAffine == null) { rectangleAffine = new CogRectangleAffine(); rectangleAffine.FitToImage(aDisplay.GetImage8Grey(), 0.5, 0.5); } icogGraphInteractive = rectangleAffine as ICogGraphicInteractive; } break; case AVisionProBuild._emRegionShape.CircularAnnulusSection: { if (circularAnnuluns == null) { circularAnnuluns = new CogCircularAnnulusSection(); circularAnnuluns.FitToImage(aDisplay.GetImage8Grey(), 0.5, 0.5); } icogGraphInteractive = circularAnnuluns as ICogGraphicInteractive; } break; case AVisionProBuild._emRegionShape.EllipticalAnnulusSection: { if (ellipticalAnnuluns == null) { ellipticalAnnuluns = new CogEllipticalAnnulusSection(); ellipticalAnnuluns.FitToImage(aDisplay.GetImage8Grey(), 0.5, 0.5); } icogGraphInteractive = ellipticalAnnuluns as ICogGraphicInteractive; } break; case AVisionProBuild._emRegionShape.Entire: { m_icogRegion = null; aDisplay.ClearOverlay(); } break; default: m_icogRegion = null; return(false); } if (icogGraphInteractive != null) { icogGraphInteractive.GraphicDOFEnableBase = CogGraphicDOFConstants.All; icogGraphInteractive.Interactive = true; icogGraphInteractive.TipText = "Region of Interest"; aDisplay.AddOverlay(icogGraphInteractive, ""); } return(true); }