一:(宽度测量,文本工具输出宽度) 1.使用工具 1.CogPMAlignTool---模版匹配工具 2.CogFixtureTool---定位工具(一般与PMAlign配合使用) 3.CogCaliperTool---卡尺工具用来寻找单边或者边缘对 4.CogCreateGraphicLabelTool---文本工具输出想要的文本 2.思路 1.通过模版匹配工具和定位工具对我们的零件进行定位 2.使用卡尺工具卡出零件的边缘对进行测量 3.使用文本工具将测量的宽度输出( 注意:这里输出的宽度是像素并不是实际的宽度 ) 3.卡尺工具的讲解
卡尺工具工做原理: 通过扫描选中区域的灰度值变化来找到测量物体的边,因为边缘位置的图像灰度值必然是有浮动的通过调整参数来找出我们需要的边缘进行测量 结果输出:
将宽度结果连线输出给文本工具显示出来 4.效果:
二:(宽度测量,ToolBlock通过代码输出宽度)
将方法一的工具(除了文本工具)拖入ToolBlock中,选择高级脚本进行c#代码编写
1.实例化文本工具
#region Private Member Variables
private Cognex.VisionPro.ToolBlock.CogToolBlock mToolBlock;
//1. 在此处写代码 定义变量的地方
//定义一个图形标签 CogGraphicLabel数据类型 myLabel 变量名 对象名 new创建
CogGraphicLabel myLabel = new CogGraphicLabel();
#endregion
2.实例化卡尺工具获取测量尺寸,调整文本参数
// Run each tool using the RunTool function
foreach(ICogTool tool in mToolBlock.Tools)
mToolBlock.RunTool(tool, ref message, ref result);
//2.在此处写代码 获取工具 以及 工具的运行结果
//获取卡尺工具 以及 卡尺的测量结果
//定义一个卡尺 名字叫做 c Tools中括号里面是卡尺的名字 要与 拖拽进来的 工具名字 对应
CogCaliperTool c = mToolBlock.Tools["CogCaliperTool1"] as CogCaliperTool;
myLabel.SetXYText(10,-50, "面积:" + c.Results[0].Width.ToString("F2") ); //三个参数的函数 第一个 x坐标 第二个是 y坐标 第三个 是要显示的文字
//调整颜色和大小
myLabel.Color = CogColorConstants.Red;
myLabel.Font = new Font("楷体",15);
3.设置文本输出的图层
public override void ModifyLastRunRecord(Cognex.VisionPro.ICogRecord lastRecord)
{
//3.在此处写代码 把结果放置在图像上
//AddGraphicToRunRecord 四个参数 第一个参数:要放置的图形 myLabel
// 第二个参数:运行记录 固定的 lastRecord
// 第三个参数:放置的位置 图像信息
// 第四个参数:内容可以为空字符串
mToolBlock.AddGraphicToRunRecord( myLabel , lastRecord, "CogFixtureTool1.OutputImage", "");
//mToolBlock.AddGraphicToRunRecord( myLabel , lastRecord, "CogPMAlignTool1.InputImage", "");
}
三.(零件圆半径和面积测量)
工具:CogFindCircleTool--找圆工具
可通过上述的方法将圆的半径或面积输出在图层上
