VisionPro怎么将不同工具的图形记录图形显示在同一张图像上?使用过VisionPro的视觉工程师应该都遇到过这样的问题,由于程序在运行时不可能随时切换显示图像,所以想要将工具找到的图形显示在一张图形上。本文将通过脚本的方式实现此功能,同理使用C#也能实现,且更加灵活。
代码如下
复制
Cognex.VisionPro.ICogRecord myInputRecord = lastRecord.SubRecords["CogPMAlignTool1.InputImage"];
if (myInputRecord == null)
{
return;
}
Cognex.VisionPro.ICogRecord myRecord = lastRecord.SubRecords["CogToolBlock1.CogFixtureTool1.OutputImage"];
if (myRecord == null)
{
return;
}
foreach (Cognex.VisionPro.ICogRecord subrecord in myRecord.SubRecords)
{
// myInputRecord.SubRecords.Add(subrecord);
}
在工具块或者工具组的ModifyLastRunRecord
方法中,写入上述代码即可看到效果。
简单说明一下代码的运行过程。
首先从最后运行图像结果集合中获取CogPMAlignTool模板工具的输入图像作为最终显示图像层。
然后继续从最后运行图像集合中获取CogToolBlock1.CogFixtureTool1.OutputImage
图像的图形集合。(本文所示图形集合包含坐标系、找到的圆周以及圆心。这里是复合图形CogCompositeResult
)
最后,遍历第二步得到的图形集合,将所有的图形加入到第一步得到的显示图像层。
评论 (0)