C# + VisionPro 动态更改VPP参数

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Cognex.VisionPro;
using Cognex.VisionPro.Caliper;
using Cognex.VisionPro.Interop;
using Cognex.VisionPro.QuickBuild;
using Cognex.VisionPro.ToolGroup;

namespace VPPDemo2
{
    public partial class Form1 : Form
    {
        private string VppPath = @"C:\Users\Administrator\Desktop\QuickBuild1.vpp";
        private CogJobManager myjobmanger;
        private CogToolGroup cogToolGroup;
        private CogFindCircleTool cogFindCircleTool;

        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 加载VPP
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            myjobmanger = (CogJobManager)CogSerializer.LoadObjectFromFile(VppPath);
            cogToolGroup = (CogToolGroup)myjobmanger.Job(0).VisionTool;
            cogFindCircleTool = (CogFindCircleTool)cogToolGroup.Tools[3];
            MessageBox.Show("加载VPP成功.");
        }

        /// <summary>
        /// 运行
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            cogFindCircleTool.RunParams.NumCalipers = 10;
            cogFindCircleTool.Run();
            cogToolGroup.Run();
            MessageBox.Show("运行成功.");
        }

        /// <summary>
        /// 获取结果
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button3_Click(object sender, EventArgs e)
        {
            cogRecordDisplay1.Record = cogToolGroup.CreateLastRunRecord().SubRecords[1];
        }
    }
}

运行结果:

 

 

 

posted @ 2022-11-19 13:17  金雨CHN  阅读(165)  评论(0)    收藏  举报