private void AcqFifoTool_Ran(object sender, System.EventArgs e) { cogRecordDisplay1.InteractiveGraphics.Clear(); cogRecordDisplay1.StaticGraphics.Clear(); calbCheckerBoard = cogToolBlockEditV21.Subject.Tools["CogCalibCheckerboardTool1"] as CogCalibCheckerboardTool; calbCheckerBoard.InputImage = AcqFifoTool.OutputImage; calbCheckerBoard.Run(); CalibNPointTool = cogToolBlockEditV21.Subject.Tools["CogCalibNPointToNPointTool1"] as CogCalibNPointToNPointTool; CalibNPointTool.InputImage = calbCheckerBoard.OutputImage; CalibNPointTool.Run(); if (flagDisplayResult) //add on 25/11/14 { cogRecordDisplay1.Image = cogPMAlignTool.InputImage; } cogPMAlignTool.InputImage = CalibNPointTool.OutputImage as CogImage8Grey; PatMaxTool.InputImage = AcqFifoTool.OutputImage as CogImage8Grey; PatMaxTool.InputImage = CalibNPointTool.OutputImage as CogImage8Grey; ImageFileTool.InputImage = AcqFifoTool.OutputImage; static_AcqFifoTool_Ran_numacqs += 1; if (static_AcqFifoTool_Ran_numacqs > 4) { GC.Collect(); static_AcqFifoTool_Ran_numacqs = 0; } }
/// <summary> /// 开启vpp编辑画面 /// </summary> /// <param name="cogCalibCheckerboard">棋盘格矫正工具</param> /// <param name="cogCalibNPointToNPoint">坐标系标定工具</param> /// <param name="enableCheckerboard">启用棋盘格工具</param> /// <param name="enableCalibNPointToNPoint">启用坐标系工具</param> /// <param name="cogToolBlock">编辑vpp</param> /// <param name="backupToolBlock">备份vpp</param> /// <param name="toolBlockId">工具id</param> /// <param name="titleText">vpp名称</param> public void ShowEdit(CogCalibCheckerboardTool cogCalibCheckerboard, CogCalibNPointToNPointTool cogCalibNPointToNPoint, bool enableCheckerboard, bool enableCalibNPointToNPoint, CogToolBlock cogToolBlock, CogToolBlock backupToolBlock, int toolBlockId, string titleText) { //mod 20200918 by wangsizhe start ////_save = false; //if (cogToolBlock == null) //{ // cogToolBlock = new CogToolBlock(); //} //if (cogCalibCheckerboard == null) //{ // cogCalibCheckerboard = new CogCalibCheckerboardTool(); //} //if (cogCalibNPointToNPoint == null) //{ // cogCalibNPointToNPoint = new CogCalibNPointToNPointTool(); //} //_enableCheckerboard = enableCheckerboard; //_enableCalibNPointToNPoint = enableCalibNPointToNPoint; //_cogCalibCheckerboard = cogCalibCheckerboard; //_cogCalibNPointToNPoint = cogCalibNPointToNPoint; //Text = titleText; //_backupToolBlock = backupToolBlock; //_cogToolBlock = cogToolBlock; //_toolBlockId = toolBlockId; //cogToolBlockEditV21.Subject = _cogToolBlock; //Show(); cogToolBlockEditV21.Invoke(new Action(delegate { if (cogToolBlock == null) { cogToolBlock = new CogToolBlock(); } if (cogCalibCheckerboard == null) { cogCalibCheckerboard = new CogCalibCheckerboardTool(); } if (cogCalibNPointToNPoint == null) { cogCalibNPointToNPoint = new CogCalibNPointToNPointTool(); } _enableCheckerboard = enableCheckerboard; _enableCalibNPointToNPoint = enableCalibNPointToNPoint; _cogCalibCheckerboard = cogCalibCheckerboard; _cogCalibNPointToNPoint = cogCalibNPointToNPoint; Text = titleText; _backupToolBlock = backupToolBlock; _cogToolBlock = cogToolBlock; _toolBlockId = toolBlockId; cogToolBlockEditV21.Subject = _cogToolBlock; Show(); })); //mod 20200918 by wangsizhe end }
private void button2_Click(object sender, EventArgs e) { // CogSerializer.SaveObjectToFile(toolBlock,@"C:\PROJECTS\Stahli.Net\Bin\Debug\CognexStahli\Camera1.vpp"); CogSerializer.SaveObjectToFile(toolBlock, System.IO.Directory.GetCurrentDirectory() + "\\CognexStahli\\Camera1.vpp"); cogAcqTool = cogToolBlockEditV21.Subject.Tools["CogAcqFifoTool1"] as CogAcqFifoTool; calbCheckerBoard = cogToolBlockEditV21.Subject.Tools["CogCalibCheckerboardTool1"] as CogCalibCheckerboardTool; CalibNPointTool = cogToolBlockEditV21.Subject.Tools["CogCalibNPointToNPointTool1"] as CogCalibNPointToNPointTool; cogPMAlignTool = cogToolBlockEditV21.Subject.Tools["CogPMAlignTool1"] as CogPMAlignTool; cogPMAlignTool.InputImage = CalibNPointTool.OutputImage as CogImage8Grey; }
public FrmLoadTray() { visionActionDelegate = new VisionActionDelegate(VisionActionDelegateFunc); InitializeComponent(); //Add any initialization after the InitializeComponent() call cogToolBlockEditV21.LocalDisplayVisible = false; mIFTool = new CogImageFileTool(); //mIFTool.Operator.Open(Environment.GetEnvironmentVariable("VPRO_ROOT") + @"\images\coins.idb", CogImageFileModeConstants.Read); mAcqTool = new CogAcqFifoTool(); toolBlock = cogToolBlockEditV21.Subject; try { // toolBlock = CogSerializer.LoadObjectFromFile(@"C:\PROJECTS\Stahli.Net\Bin\Debug\CognexStahli\Camera1.vpp") as CogToolBlock; //Need to upload insernt name as given by asaf toolBlock = CogSerializer.LoadObjectFromFile(System.IO.Directory.GetCurrentDirectory() + "\\CognexStahli\\Camera1.vpp") as CogToolBlock; //Need to upload insernt name as given by asaf //if it is new insert, upload a defult } catch (Exception ex) { MessageBox.Show("Tool block is error"); } cogToolBlockEditV21.Subject = toolBlock; cogToolBlockEditV21.Subject.Ran += new EventHandler(Subject_Ran); cogToolBlockEditV21.SubjectChanged += new EventHandler(cogToolBlockEditV21_SubjectChanged); foreach (ICogTool tool in toolBlock.Tools) { calbCheckerBoard = tool as CogCalibCheckerboardTool; if (calbCheckerBoard != null) { break; } } foreach (ICogTool tool in toolBlock.Tools) { CalibNPointTool = tool as CogCalibNPointToNPointTool; if (CalibNPointTool != null) { break; } } foreach (ICogTool tool in toolBlock.Tools) { cogPMAlignTool = tool as CogPMAlignTool; if (cogPMAlignTool != null) { break; } } loadOrderDataDelegate = new LoadOrderDataDelegate(LoadOrderDataDelegateFunc); // LoadPatternFromFile(); //13.07.15 (Ziv) }
public void Subject_Ran(object sender, EventArgs e) //Run tool { cogAcqTool = cogToolBlockEditV21.Subject.Tools["CogAcqFifoTool1"] as CogAcqFifoTool; calbCheckerBoard.InputImage = cogToolBlockEditV21.Subject.Inputs["Image"].Value as CogImage8Grey; calbCheckerBoard = cogToolBlockEditV21.Subject.Tools["CogCalibCheckerboardTool1"] as CogCalibCheckerboardTool; calbCheckerBoard.Run(); CalibNPointTool = cogToolBlockEditV21.Subject.Tools["CogCalibNPointToNPointTool1"] as CogCalibNPointToNPointTool; CalibNPointTool.InputImage = calbCheckerBoard.OutputImage; cogPMAlignTool = cogToolBlockEditV21.Subject.Tools["CogPMAlignTool1"] as CogPMAlignTool; cogPMAlignTool.InputImage = CalibNPointTool.OutputImage as CogImage8Grey; cogRecordDisplay1.Image = cogPMAlignTool.InputImage; cogPMAlignTool.Run(); cogRecordDisplay1.Record = cogPMAlignTool.CreateLastRunRecord(); cogRecordDisplay1.Fit(true); if (dataGridView1.Visible == false) { dataGridView1.Visible = true; } dataGridView1.Rows.Clear(); TrayIndexData TIS; AppGen.Inst.UnLoadCarrier.CurrIndex = 0; AppGen.Inst.UnLoadCarrier.IndexList.Clear(); try { for (int i = 0; i < cogPMAlignTool.Results.Count; i++) { TIS = new TrayIndexData(); dataGridView1.Rows.Add(); dataGridView1[0, i].Value = cogPMAlignTool.Results[i].ID.ToString(); dataGridView1[1, i].Value = cogPMAlignTool.Results[i].Score.ToString(); dataGridView1[2, i].Value = cogPMAlignTool.Results[i].GetPose().Rotation *(180 / Math.PI); dataGridView1[3, i].Value = cogPMAlignTool.Results[i].GetPose().TranslationX; dataGridView1[4, i].Value = cogPMAlignTool.Results[i].GetPose().TranslationY; TIS.X_VisRes = cogPMAlignTool.Results[i].GetPose().TranslationX; TIS.Y_VisRes = cogPMAlignTool.Results[i].GetPose().TranslationY; TIS.Angle_VisRes = cogPMAlignTool.Results[i].GetPose().Rotation *(180 / Math.PI); AppGen.Inst.UnLoadCarrier.IndexList.Add(TIS); } txtPatMaxScoreValue.Text = cogPMAlignTool.Results.Count.ToString(); } catch (Exception) { MessageBox.Show("No Input Image available for setup.", "PatMax Setup Error"); } }
private void button1_Click(object sender, EventArgs e) //Teach { if (!SettingUp) { if ((!AppGen.Inst.MDImain.frmVisionMain.FrmUnloadCarrier.flagFullTray)) { MessageBox.Show("Please acquire full frame"); return; } cogPMAlignTool.Pattern.TrainImage = CalibNPointTool.OutputImage as CogImage8Grey; //While setting up PMAlign, disable other GUI controls. SettingUp = true; DisableAll(settingUpPatMax); //Add TrainRegion to display's interactive graphics //Add SearchRegion to display's static graphics for display only. cogRecordDisplay1.InteractiveGraphics.Clear(); cogRecordDisplay1.StaticGraphics.Clear(); cogRecordDisplay1.InteractiveGraphics.Add(cogPMAlignTool.Pattern.TrainRegion as ICogGraphicInteractive, "test", false); //Now axes = new CogCoordinateAxes(); axes.Transform = cogPMAlignTool.Pattern.Origin; axes.GraphicDOFEnable = CogCoordinateAxesDOFConstants.All & ~CogCoordinateAxesDOFConstants.Skew; axes.Interactive = true; // Add a standard VisionPro "manipulable" mouse cursor. axes.MouseCursor = CogStandardCursorConstants.ManipulableGraphic; axes.XAxisLabel.MouseCursor = CogStandardCursorConstants.ManipulableGraphic; axes.YAxisLabel.MouseCursor = CogStandardCursorConstants.ManipulableGraphic; cogRecordDisplay1.InteractiveGraphics.Add((ICogGraphicInteractive)axes, "test", false); //if ((cogPMAlignTool.SearchRegion != null)) //{ // //cogPMAlignTool.SearchRegion.FitToImage(cogRecordDisplay1.Image, 0.990,0.999); // cogRecordDisplay1.StaticGraphics.Add(cogPMAlignTool.SearchRegion as ICogGraphic, "test"); // cogToolBlockEditV21.Subject.Inputs["Image"].Value = cogRecordDisplay1.Image; //} //OK has been pressed, completing Setup. } else { SettingUp = false; cogRecordDisplay1.InteractiveGraphics.Clear(); cogRecordDisplay1.StaticGraphics.Clear(); //Make sure we catch errors from Train, since they are likely. For example, //No InputImage, No Pattern Features, etc. try { CalibNPointTool = cogToolBlockEditV21.Subject.Tools["CogCalibNPointToNPointTool1"] as CogCalibNPointToNPointTool; CalibNPointTool.Run(); cogPMAlignTool.Pattern.Train(); //SavePatternToFile(); //save the teach pattern according to order name (ziv) AppGen.Inst.MDImain.frmVisionMain.savePattern("Camera3", AppGen.Inst.OrderParams.InsertCode, cogPMAlignTool.Pattern); } catch (CogException cogex) { MessageBox.Show("Following Specific Cognex Error Occured:" + cogex.Message); } catch (Exception ex) { MessageBox.Show(ex.Message, "PatMax Setup Error"); } EnableAll(settingUpPatMax); } }
public void Subject_Ran(object sender, EventArgs e) { if (RunAgainFlag) { PatMaxTool.RunParams.AcceptThreshold = Convert.ToDouble(numericUpDown1.Value * Convert.ToDecimal(0.9)); cogPMAlignTool.RunParams.AcceptThreshold = Convert.ToDouble(numericUpDown1.Value * Convert.ToDecimal(0.9)); } cogAcqTool = cogToolBlockEditV21.Subject.Tools["CogAcqFifoTool1"] as CogAcqFifoTool; calbCheckerBoard.InputImage = cogToolBlockEditV21.Subject.Inputs["Image"].Value as CogImage8Grey; calbCheckerBoard = cogToolBlockEditV21.Subject.Tools["CogCalibCheckerboardTool1"] as CogCalibCheckerboardTool; calbCheckerBoard.Run(); CalibNPointTool = cogToolBlockEditV21.Subject.Tools["CogCalibNPointToNPointTool1"] as CogCalibNPointToNPointTool; CalibNPointTool.InputImage = calbCheckerBoard.OutputImage; cogPMAlignTool = cogToolBlockEditV21.Subject.Tools["CogPMAlignTool1"] as CogPMAlignTool; cogPMAlignTool.InputImage = CalibNPointTool.OutputImage as CogImage8Grey; //cogRecordDisplay1.Image = cogPMAlignTool.InputImage; cogPMAlignTool.Run(); if (flagDisplayResult) //add on 25/11/14 { cogRecordDisplay1.Image = cogPMAlignTool.InputImage; cogRecordDisplay1.Record = cogPMAlignTool.CreateLastRunRecord(); cogRecordDisplay1.Fit(true); } dataGridView1.Rows.Clear(); try { if ((cogPMAlignTool.Results.Count == 0) && (!AppGen.Inst.MDImain.frmVisionMain.FrmLoadtray.flagFullTray)) //no insert founded { AppGen.Inst.LoadTray.IndexList[AppGen.Inst.LoadTray.CurrIndex].IsFound = false; UnfoundInsertList.Add(AppGen.Inst.LoadTray.IndexList[AppGen.Inst.LoadTray.CurrIndex]); //not in use!! } else //insert founded { AppGen.Inst.LoadTray.IndexList[AppGen.Inst.LoadTray.CurrIndex].X_VisRes = cogPMAlignTool.Results[0].GetPose().TranslationX; AppGen.Inst.LoadTray.IndexList[AppGen.Inst.LoadTray.CurrIndex].Y_VisRes = cogPMAlignTool.Results[0].GetPose().TranslationY; AppGen.Inst.LoadTray.IndexList[AppGen.Inst.LoadTray.CurrIndex].Angle_VisRes = cogPMAlignTool.Results[0].GetPose().Rotation *(180 / Math.PI); //converted to degree } for (int i = 0; i < cogPMAlignTool.Results.Count; i++) { dataGridView1.Rows.Add(); dataGridView1[0, i].Value = cogPMAlignTool.Results[i].ID.ToString(); dataGridView1[1, i].Value = cogPMAlignTool.Results[i].Score.ToString(); dataGridView1[2, i].Value = cogPMAlignTool.Results[i].GetPose().Rotation *(180 / Math.PI); dataGridView1[3, i].Value = cogPMAlignTool.Results[i].GetPose().TranslationX; dataGridView1[4, i].Value = cogPMAlignTool.Results[i].GetPose().TranslationY; } txtPatMaxScoreValue.Text = cogPMAlignTool.Results.Count.ToString(); if ((cogPMAlignTool.SearchRegion != null)) { //cogPMAlignTool.SearchRegion.FitToImage(cogRecordDisplay1.Image, 0.990,0.999); cogRecordDisplay1.StaticGraphics.Add(cogPMAlignTool.SearchRegion as ICogGraphic, "test"); cogToolBlockEditV21.Subject.Inputs["Image"].Value = cogRecordDisplay1.Image; } } catch (Exception) { MessageBox.Show("Insert wasn't found", "Run tool Error"); } }
//初始化函数2 private void initToolEdit() { //JobManagerEdit.Subject = m_JobManager; //一级视觉 CogToolGroup m_ToolGroup_1 = (CogToolGroup)m_Job_1.VisionTool; cogToolGroupEditV21.Subject = m_ToolGroup_1; if (m_ToolGroup_1 == null) { MessageBox.Show("toolgroup1工具读取失败,窗口将自动关闭"); this.Close(); return; } blobTool_1 = (CogBlobTool)m_ToolGroup_1.Tools["CogBlobTool1"]; if (blobTool_1 == null) { MessageBox.Show("blob1工具读取失败,请退出软件"); } pmaTool_1 = (CogPMAlignTool)m_ToolGroup_1.Tools["caliPMATool"]; if (pmaTool_1 == null) { MessageBox.Show("pma1工具读取失败,请退出软件"); } calibTool_1 = (CogCalibNPointToNPointTool)m_ToolGroup_1.Tools["CogCalibNPointToNPointTool1"]; if (calibTool_1 == null) { MessageBox.Show("calib1工具读取失败,请退出软件"); } acqFifoTool_1 = (CogAcqFifoTool)m_ToolGroup_1.Tools["CogAcqFifoTool1"]; if (acqFifoTool_1 == null) { MessageBox.Show("acqfifo1工具读取失败,窗口将自动关闭"); this.Close(); return; } mAcqFifo_1 = acqFifoTool_1.Operator; if (mAcqFifo_1 == null) { MessageBox.Show("macqfifo1为 null,窗口将自动关闭"); this.Close(); return; } mAcqFifo_1.Timeout = 1000; //二级视觉 CogToolGroup m_ToolGroup_2 = (CogToolGroup)m_Job_2.VisionTool; cogToolGroupEditV22.Subject = m_ToolGroup_2; if (m_ToolGroup_2 == null) { MessageBox.Show("toolgroup2工具读取失败,窗口将自动关闭"); this.Close(); return; } blobTool_2 = (CogBlobTool)m_ToolGroup_2.Tools["CogBlobTool1"]; if (blobTool_2 == null) { MessageBox.Show("blob2工具读取失败,请退出软件"); } pmaTool_2 = (CogPMAlignTool)m_ToolGroup_2.Tools["caliPMATool"]; if (pmaTool_2 == null) { MessageBox.Show("pma2工具读取失败,请退出软件"); } calibTool_2 = (CogCalibNPointToNPointTool)m_ToolGroup_2.Tools["CogCalibNPointToNPointTool1"]; if (calibTool_2 == null) { MessageBox.Show("calib2工具读取失败,请退出软件"); } acqFifoTool_2 = (CogAcqFifoTool)m_ToolGroup_2.Tools["CogAcqFifoTool1"]; if (acqFifoTool_2 == null) { MessageBox.Show("acqfifo2工具读取失败,窗口将自动关闭"); this.Close(); return; } mAcqFifo_2 = acqFifoTool_2.Operator; if (mAcqFifo_2 == null) { MessageBox.Show("macqfifo2为 null,窗口将自动关闭"); this.Close(); return; } mAcqFifo_2.Timeout = 1000; ////对比度Test //ICogAcqContrast mContrast = mAcqFifo_2.OwnedContrastParams; //double val = mContrast.Contrast; //Console.WriteLine(val); //三级视觉 CogToolGroup m_ToolGroup_3 = (CogToolGroup)m_Job_3.VisionTool; cogToolGroupEditV23.Subject = m_ToolGroup_3; if (m_ToolGroup_3 == null) { MessageBox.Show("toolgroup3工具读取失败,窗口将自动关闭"); this.Close(); return; } blobTool_3 = (CogBlobTool)m_ToolGroup_3.Tools["CogBlobTool1"]; if (blobTool_3 == null) { MessageBox.Show("blob3工具读取失败,请退出软件"); } pmaTool_3 = (CogPMAlignTool)m_ToolGroup_3.Tools["caliPMATool"]; if (pmaTool_3 == null) { MessageBox.Show("pma3工具读取失败,请退出软件"); } calibTool_3 = (CogCalibNPointToNPointTool)m_ToolGroup_3.Tools["CogCalibNPointToNPointTool1"]; if (calibTool_3 == null) { MessageBox.Show("calib3工具读取失败,请退出软件"); } acqFifoTool_3 = (CogAcqFifoTool)m_ToolGroup_3.Tools["CogAcqFifoTool1"]; if (acqFifoTool_3 == null) { MessageBox.Show("acqfifo3工具读取失败,窗口将自动关闭"); this.Close(); return; } mAcqFifo_3 = acqFifoTool_3.Operator; if (mAcqFifo_3 == null) { MessageBox.Show("macqfifo3为 null,窗口将自动关闭"); this.Close(); return; } mAcqFifo_3.Timeout = 1000; }
public ACalibNPointToNPoint(Object objTool) { m_cogCalibNPointToNPointTool = objTool as CogCalibNPointToNPointTool; Init(); }
public ACalibNPointToNPoint() { m_cogCalibNPointToNPointTool = new CogCalibNPointToNPointTool(); Init(); }