C#加载toolblock工具

发布于:2024-08-14 ⋅ 阅读:(121) ⋅ 点赞:(0)

 VisionPro QuickBuild工具

       VisionPro QuickBuild是康耐视旗下的与相机配套的软件,主要是设计了一些底层算法,免去了开发者要进行底层开发的工作量,而其中的ToolBlock工具相当于一个函数,可以在这个函数里面完成你想完成的功能,整个软件主要是通过拖动工具箱里的工具完成你所想要完成的功能,总的来说是一款不错的软件。

      当你从创建了一个VPP文件之后,再往里面拖动一个ToolBlock工具时,此时就可以用两种方式加载该VPP,分别是toolblock工具和整个QuickBuild,通常用得比较多的是加载ToolBlock工具,可以从c#加载图片进入到ToolBlock工具,完成采集到检测的功能。注意保存ToolBlock工具时,需要保存完整的工具。

     

如何确定一个vpp文件是ToolBlock文件还是QuickBuild文件,在Cognex的安装路径下,直接cmd,在使用VPPVersion工具即可。

C#加载ToolBlock工具

        主要代码如下所示:

    CogToolBlock    tbx        = new CogToolBlock();        //ToolBlock工具
    CogImageFile cogimage_pic1 = new CogImageFile();        //图像读取工具
    CogFixtureTool cft_pic1;                                //ToolBlock工具的其中的小工具
        private void Form1_Load(object sender, EventArgs e)
        {
             //初始化操作
            tbx = CogSerializer.LoadObjectFromFile(vpp1path) as CogToolBlock;

            cft_pic1 = tbx.Tools["CogFixtureTool1"] as CogFixtureTool;
//ToolBlock里面会拖入很多的工具,想要使用某种工具的结果,都可以去调用你ToolBlock文件中拖入工具的名称。
            path_pic1= Directory.GetFiles(img1path);         
        }    
        private void Imageshow_record1()
        {
            orderpic1 %= path_pic1.Length;
            cogimage_pic1.Open(path_pic1[orderpic1], CogImageFileModeConstants.Read);
            cft_pic1.InputImage = cogimage_pic1[0];  //给ToolBlock工具中输入图片
            tbx.Run();   //让ToolBlock工具运行
            //将结果显示在cogRecordDisplay1上
            Invoke(new Action(() =>
            {
                try
                {
                    cogRecordDisplay1.InteractiveGraphics.Clear();
                    cogRecordDisplay1.StaticGraphics.Clear();
                    cogRecordDisplay1.Image = cft_pic1.OutputImage;
                    cogRecordDisplay1.Record = cft_pic1.CreateLastRunRecord();
                    cogRecordDisplay1.AutoFit = true;//自适应
                    cogRecordDisplay1.Fit();
        }
                catch (Exception ex)
                {
                    MessageBox.Show($"Error displaying record: {ex.Message}");
                }
            }));
            var now = DateTime.Now;
            //存图
            if (saveimg)
            {
                string fileNameWithoutExtension = "reslt_";
                fileNameWithoutExtension += now.ToString("yyyy_MM_dd_HH_mm_ss");
                string imagname = ressavePath + fileNameWithoutExtension + ".bmp";
                Cognex.VisionPro.ICogImage img = cogRecordDisplay1.Image;
                Bitmap bitmap = (System.Drawing.Bitmap)img.ToBitmap();
                Bitmap img1 = (System.Drawing.Bitmap)bitmap.Clone();
                img1.Save(imagname, System.Drawing.Imaging.ImageFormat.Bmp);
            }
            
            orderpic1 += 1;
            WriteLog(logContent.ToString());
        }


网站公告

今日签到

点亮在社区的每一天
去签到