3.1 在VisionPro脚本中添加CogGraphicLabel

news/2025/3/20 9:22:18/

本案例需要实现如下功能:

1.加载toolBlock

2.加载图片,

3.运行Block

4.VisionPro中添加脚本显示数值。

见下图:详细代码(C#以及visionPro)见下面链接:

https://download.csdn.net/download/qq_34047402/90489941

C#加载运行VisonPro的toolblock资源-CSDN文库

主要代码罗列:

1.加载toolblock

  toolBlock = CogSerializer.LoadObjectFromFile(Application.StartupPath + "\\VPP_ToolBlock\\ToolBlock1_卡尺.vpp") as CogToolBlock;

2.加载图片

 using (CogImageFileTool imageFileTool = new CogImageFileTool())
 {
     imageFileTool.Operator.Open(Application.StartupPath + "\\pic\\1.bmp", CogImageFileModeConstants.Read);
     imageFileTool.Run();
     if(toolBlock!=null)
     {
         this.toolBlock.Inputs["InputImage"].Value = imageFileTool.OutputImage;
        this.cogRecordDisplay1.Image = imageFileTool.OutputImage;
     }
 }

3.运行

 if (toolBlock != null)
 {
     this.toolBlock.Run();
     this.cogRecordDisplay1.Record = this.toolBlock.CreateLastRunRecord().SubRecords[0];
     this.textBox1.Text = this.toolBlock.Outputs["Width"].Value.ToString();
 }

4.脚本:

  public override void ModifyLastRunRecord(Cognex.VisionPro.ICogRecord lastRecord)
  {
    CogPMAlignTool PMAlignTool = mToolBlock.Tools["CogPMAlignTool1"] as CogPMAlignTool;
    CogGraphicLabel label = new CogGraphicLabel();
    double x = PMAlignTool.Results[0].GetPose().TranslationX;
    double y = PMAlignTool.Results[0].GetPose().TranslationY;
    double width = Convert.ToDouble(mToolBlock.Outputs["Width"].Value);
    label.SetXYText(x, y,width.ToString("f2"));
    mToolBlock.AddGraphicToRunRecord(label, lastRecord, "CogPMAlignTool1.InputImage", "");
  }

【备注】:   C#中如果无法添加控件,可以先把dll所在的目录名称修改为:ReferencedAssemblies1. 然后添加控件。然后再改回来:ReferencedAssemblies


http://www.ppmy.cn/news/1580561.html

相关文章

OpenManus:无需邀请码的开源版Manus,开启自动化新纪元

对于那些渴望拥有自己的AI助手但苦于无法获取Manus邀请码的用户来说,OpenManus提供了一个绝佳的选择。这款开源项目不仅复刻了Manus的核心功能,还允许用户在自己的电脑上执行包括网页浏览、文件操作和代码编写在内的多种任务。本文将详细介绍OpenManus的功能及其使用方法。 …

Netty基础—6.Netty实现RPC服务二

大纲 1.RPC的相关概念 2.RPC服务调用端动态代理实现 3.Netty客户端之RPC远程调用过程分析 4.RPC网络通信中的编码解码器 5.Netty服务端之RPC服务提供端的处理 6.RPC服务调用端实现超时功能 3.Netty客户端之RPC远程调用过程分析 NettyRpcClient.remoteCall()方法的执行逻…

【JavaEE】-- SpringBoot快速上手

文章目录 1. Maven1.1 什么是Maven1.2 为什么要学Maven1.3 创建一个Maven项目1.4 Maven核心功能1.4.1 项目创建1.4.2 依赖管理1.4.3 Maven Help插件 1.5 Maven仓库1.5.1 本地仓库1.5.2 中央仓库1.5.3 私有服务器(私服) 1.6 Maven设置国内源1.6.1 配置当前…

sqlite mmap

https://www.sqlite.org/mmap.html 1. 内存映射 I/O 的基本原理 默认机制(传统 I/O) SQLite 默认通过 xRead() 和 xWrite() 方法(对应 read()/write() 系统调用)访问数据库文件。这些方法需要将数据从内核缓冲区复制到用户空间&am…

图莫斯TOOMOSS上位机TCANLINPro使用CAN UDS功能时 编写、加载27服务dll解锁算法文件

【本文发布于https://blog.csdn.net/Stack_/article/details/146303690,未经许可不得转载,转载须注明出处】 软件安装目录下找到如下压缩包,此为dll文件示例工程 使用VisualStudio打开工程GenerateKeyExImpl.vcxproj,可能会提示版…

常用的pdf技术有哪些?--笔记

常用的pdf技术有哪些? 1.iText PDF:iText 是著名的开放项目,是用于生成 PDF 文档的一个 java 类库。通过 iText 不仅可以生成 PDF 或 rtf 的文档,而且可以将 XML、Html 文件转化为 PDF 文件。 Openoffice:openoffice 是…

【数据分析】数据筛选(布尔索引:多个判断条件)

在pandas模块中,逻辑运算符有以下几种: 1.&表示并且 2.|表示或者 3.~表示非 1. &(并且)运算符 当且仅当运算符两边的布尔值均为 True 时,运算结果才为 True,其他情况为 False。 a True b Tr…

【go】如何处理可选配置

问题背景: 在设计API 时,如何处理可选配置? 1. 配置结构体 好处:解决兼容性,但问题是0值,和可读性差 如何解决0值? ——使用指针,将nil和类型0值做区分 但是入参包含结构体&#x…