一、VisionPro脚本介绍
1.1项目组成
首先介绍一下QuickBuild的项目结构,Job是QuickBuild工程中的基本组成单位,一个QuickBuild至少有一个Job,每个Job之间互不影响。每个Job中默认包含一个toolGroup,在toolGroup中可以添加项目需要的工具和工具块。
其中工具块(toolBlock)和工具组(toolGroup)都是工具的“容器”,通过工具块和工具组对某些功能的工具进行封装,实现项目模块化。但一般都是使用toolBlock较多,是因为toolBlock添加输入输出的方式比较灵活,甚至toolBlock可以在“输入输出”页面查看输入输出数据的当前值、类型等信息,甚至可以手动修改输入输出的值,toolGroup则不支持这些功能。
1.2 VisionPro脚本简介
VisionPro工具封装了视觉算法与用户交互界面,toolGroup与toolBlock提供了组合工具的容器,但是并非所有的功能都能通过既定交互界面实现。VisionPro本身是无法实现逻辑功能,但可以通过VisionPro中的脚本功能实现逻辑判断。
二、脚本类与方法
VisionPro通过”多态”技术实现脚本功能,VisionPro 的每一Job、toolGroup、toolBlock对象都含有一个接口对象,用户通过重写接口方法实现自定义拓展功能。以toolBlock为例, CogToolBlockAdvancedScriptBase接口中定义了子类中必须实现的函数,当toolBlock执行到某一节点(工具准备运行、工具运行完成等)时会调用相应的接口函数实现用户指定的功能。
2.1 toolBlock脚本类的分析
(1)添加命名空间的区域,需要用到工具什么就进行添加。脚本的流程:1、初始化+工具关联,运行+输出结果,逻辑判断
#region namespace imports
using System;
using System.Collections;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using Cognex.VisionPro;
using Cognex.VisionPro.ToolBlock;
using Cognex.VisionPro3D;
using Cognex.VisionPro.QuickBuild.Implementation.Internal;
using Cognex.VisionPro.ImageProcessing;
using Cognex.VisionPro.Caliper;
#endregion
这里会可能出现错误,比如会出现没有程序集的添加,这要手动添加参考程序集,步骤如下。
1)