public Boolean Load() { string ProcID = System.Reflection.MethodInfo.GetCurrentMethod().Name.ToString(); try { mFindCircleTool = null; mFindCircleTool = new CogFindCircleTool(); mFindCircleTool_Results = null; mFindCircleTool_Results = new FindCircleTool_Results(); mCenterX = 730.041; mCenterY = 436.627; mRadius = 377.985; mAngleStart = 78.8641; mAngleSpan = -277.93; mNumCalipers = 6; mNumToIgnore = 2; mCaliperSearchLength = 177.499; mCaliperProjectionLength = 54.2951; mCircleSearchDirectionOption = CogFindCircleSearchDirectionConstants.Outward; mCogCaliperPolarityConstants = CogCaliperPolarityConstants.LightToDark; FindCircleTool_Status = false; return(true); } catch (Exception ex) { SaveLog.Msg_("FindCircleTool Load Failed : " + ModularID + ":\r\n" + ProcID + ":\r\n" + ex.ToString()); return(false); } }
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\FindCircleTool\" + @FileName + @"\"; CogToolBlock ToolBlock1 = new CogToolBlock(); FileName = strFolderPath + FileName + "_FCT.vpp"; ToolBlock1 = (CogToolBlock)CogSerializer.LoadObjectFromFile(FileName);//開啟ToolBlock vpp檔案 //依序載入 mFindCircleTool = (CogFindCircleTool)ToolBlock1.Tools[TempFileName + "_FindCircleTool_"]; mFindCircleTool.Run(); SaveLog.Msg_("Data of Find Circle Tool Loaded : " + @FileName); ToolBlock1 = null; FindCircleTool_Status = true; return(true); } catch (Exception ex) { SaveLog.Msg_("Save FindCircleTool Data Failed : " + ModularID + ":\r\n" + ProcID + ":\r\n" + ex.ToString()); FindCircleTool_Status = false; 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 { mFindCircleTool = null; FindCircleTool_Status = false; return(true); } catch (Exception ex) { SaveLog.Msg_("FindCircleTool unLoad Failed : " + ModularID + ":\r\n" + ProcID + ":\r\n" + ex.ToString()); return(false); } }
public CogFindCircleTool Run(CogRecordDisplay CogRecordDisplay1) { string ProcID = System.Reflection.MethodInfo.GetCurrentMethod().Name.ToString(); FindCircleTool_Status = false; try { m_FindCircleTool.InputImage = (CogImage8Grey)CogRecordDisplay1.Image; m_FindCircleTool.Run(); CogRecordDisplay1.Record = m_FindCircleTool.CreateLastRunRecord().SubRecords["InputImage"]; FindCircleTool_Status = true; return(m_FindCircleTool); } catch (Exception ex) { //SaveLog.Msg_("FindCircleTool Run Failed : " + ModularID + ":\r\n" + ProcID + ":\r\n" + ex.ToString()); MessageBox.Show(ex.ToString()); m_FindCircleTool = null; return(m_FindCircleTool); } }
public InspectionNeedleCircleFind() { FindCircleProc = new CogFindCircleTool(); FindCircleResults = new CogFindCircleResults(); }
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)); }