cognex visionpro 标签显示CogCreateGraphicLabelTool

image

using System;
using System.Drawing;
using Cognex.VisionPro;
using Cognex.VisionPro3D;
using Cognex.VisionPro.ToolGroup;
using Cognex.VisionPro.Display;
using Cognex.VisionPro.PMAlign;
using Cognex.VisionPro.Dimensioning;
using Cognex.VisionPro.CalibFix;

public class UserScript : CogToolGroupBaseScript
{
  public override bool GroupRun(ref string message, ref CogToolResultConstants result)
  {
    CogCreateGraphicLabelTool labelTool = 
      (CogCreateGraphicLabelTool) toolGroup.Tools["CogCreateGraphicLabelTool1"];

    // 先运行除标签工具以外的所有工具
    for (Int32 toolIdx = 0; toolIdx < toolGroup.Tools.Count; toolIdx++)
    {
      if (toolGroup.Tools[toolIdx].Name == "CogCreateGraphicLabelTool1")
        continue;

      toolGroup.RunTool(toolGroup.Tools[toolIdx], ref message, ref result);
    }

    // 取两个测距工具的结果
    CogDistanceSegmentSegmentTool disTool1 =
      (CogDistanceSegmentSegmentTool) toolGroup.Tools["CogDistanceSegmentSegmentTool2"];

    CogDistanceSegmentSegmentTool disTool2 =
      (CogDistanceSegmentSegmentTool) toolGroup.Tools["CogDistanceSegmentSegmentTool1左右"];

    double distance1 = disTool1.Distance;
    double distance2 = disTool2.Distance;

    // 给标签工具赋值
    if (labelTool.InputGraphicLabel == null)
      labelTool.InputGraphicLabel = new CogGraphicLabel();

    labelTool.InputImage = ((CogFixtureTool) toolGroup.Tools["CogFixtureTool1"]).OutputImage;
    labelTool.InputGraphicLabel.X = 50;
    labelTool.InputGraphicLabel.Y = 50;
    labelTool.InputGraphicLabel.Text =
      string.Format("距离上下: {0:F3}  \n\r  距离左右: {1:F3}", distance1, distance2);
    // 字体
    labelTool.InputGraphicLabel.Font = new Font("Arial", 18, FontStyle.Bold);

    // 字体颜色
    labelTool.InputGraphicLabel.Color = CogColorConstants.Yellow;

    // 背景色
    labelTool.InputGraphicLabel.BackgroundColor = CogColorConstants.Black;

    // 最后再运行标签工具
    toolGroup.RunTool(labelTool, ref message, ref result);

    return false;
  }

  #region "When the Current Run Record is Created"
  public override void ModifyCurrentRunRecord(Cognex.VisionPro.ICogRecord currentRecord)
  {
  }
  #endregion

  #region "When the Last Run Record is Created"
  public override void ModifyLastRunRecord(Cognex.VisionPro.ICogRecord lastRecord)
  {
  }
  #endregion

  #region "When the Script is Initialized"
  public override void Initialize(CogToolGroup host)
  {
    base.Initialize(host);
  }
  #endregion
}

image

posted @ 2026-06-10 09:22  哈库拉  阅读(25)  评论(0)    收藏  举报