脚本
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.ImageProcessing;
using Cognex.VisionPro.Blob;
public class CogToolBlockAdvancedScript : CogToolBlockAdvancedScriptBase{
private Cognex.VisionPro.ToolBlock.CogToolBlock mToolBlock;
//blob工具
CogBlobTool blob;
//label工具
CogGraphicLabel label;
//图形集合label
CogGraphicCollection col = new CogGraphicCollection();
//图形集合circle
CogGraphicCollection ac = new CogGraphicCollection();
public override bool GroupRun(ref string message, ref CogToolResultConstants result) {
//创建blob工具映射用来获取blob工具中的数据
blob = mToolBlock.Tools["CogBlobTool1"] as CogBlobTool;
for(int i = 0;i < blob.Results.GetBlobs().Count;i++){
// 创建圆形对象
CogCircle cir = new CogCircle();
//圆形x坐标
cir.CenterX = blob.Results.GetBlobs()[i].CenterOfMassX;
//圆形y坐标
cir.CenterY = blob.Results.GetBlobs()[i].CenterOfMassY;
//半径
cir.Radius = 80;
//颜色
cir.Color = CogColorConstants.Red;
//框选的宽度
cir.LineWidthInScreenPixels = 2;
//添加到圆形图形集合
ac.Add(cir);
//创建label工具对象
label = new CogGraphicLabel();
//label坐标与内容
label.SetXYText(blob.Results.GetBlobs()[i].CenterOfMassX, blob.Results.GetBlobs()[i].CenterOfMassY, "NG");
//添加到label图形集合
col.Add(label);
}
foreach(ICogTool tool in mToolBlock.Tools)
mToolBlock.RunTool(tool, ref message, ref result);
return false;
}
public override void ModifyCurrentRunRecord(Cognex.VisionPro.ICogRecord currentRecord) {
}
public override void ModifyLastRunRecord(Cognex.VisionPro.ICogRecord lastRecord) {
foreach (CogGraphicLabel item in col) {
mToolBlock.AddGraphicToRunRecord(item,lastRecord,"CogIPOneImageTool1.InputImage","");
}
foreach (CogCircle item in ac){
mToolBlock.AddGraphicToRunRecord(item,lastRecord,"CogIPOneImageTool1.InputImage","");
}
}
public override void Initialize(Cognex.VisionPro.ToolGroup.CogToolGroup host) {
base.Initialize(host);
this.mToolBlock = ((Cognex.VisionPro.ToolBlock.CogToolBlock)(host));
}
}