判断隔离纸到钢壳边缘的距离,燕尾是否超标

方法如下:
在这里插入图片描述
方法1:通过找圆工具上的点求解隔离纸边缘点-钢壳边缘点的距离。

#region namespace imports
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.PMAlign;
using Cognex.VisionPro.CalibFix;
using Cognex.VisionPro.Blob;
using Cognex.VisionPro.Caliper;
using Cognex.VisionPro.Dimensioning;
using System.Linq;
using System.Threading;
#endregion

public class CogToolBlockAdvancedScript : CogToolBlockAdvancedScriptBase
{
   
  #region Private Member Variables
  private Cognex.VisionPro.ToolBlock.CogToolBlock mToolBlock;
  #endregion

  /// <summary>
  /// Called when the parent tool is run.
  /// Add code here to customize or replace the normal run behavior.
  /// </summary>
  /// <param name="message">Sets the Message in the tool's RunStatus.</param>
  /// <param name="result">Sets the Result in the tool's RunStatus</param>
  /// <returns>True if the tool should run normally,
  ///          False if GroupRun customizes run behavior</returns>
  ///
  #region

  CogGraphicCollection gc;
  CogGraphicCollection gc1;
  CogGraphicLabel label1;
  CogGraphicLabel label2;
  CogGraphicLabel label3;
  CogGraphicLabel label4;
  CogGraphicLabel label5;
  CogGraphicLabel label6;
  CogRectangleAffine rect;


  //  int s = 0;

  //计算圆心度所需变量
  double Min_Distance = 0.0;
  double Max_Distance = 0.0;
  //double Minus_Value = 0;
  //double Point_CenterD = 0;

  //double InputRMSCircle = 0;

  //  int s = 0;

  #endregion

  public override bool GroupRun(ref string message, ref CogToolResultConstants result)
  {
   
    // To let the execution stop in this script when a debugger is attached, uncomment the following lines.
    //#if DEBUG
    //if (System.Diagnostics.Debugger.IsAttached) System.Diagnostics.Debugger.Break();
    //#endif

    #region 显示运行

    mToolBlock.Outputs["Result"].Value = 1;
    //mToolBlock.Outputs["Area"].Value = 0;
    mToolBlock.Outputs["bStatus"].Value = false;
    //mToolBlock.Outputs["DistanceMax"].Value = 0;
    //mToolBlock.Outputs["DistanceMin"].Value = 0;
    mToolBlock.Outputs["GraphicCollection"].Value = null;
    mToolBlock.Outputs["GraphicCollection1"].Value = null;

    //数组下标对应0 1 2 3 4:产品定位NG或OK 两圆距离计算OK或NG  卡尺燕尾判断OK或NG
    int[] AllResult = new int[4];

    bool DecideResult = false;

    CogFindCircleTool Pat1 = (CogFindCircleTool) mToolBlock.Tools["外圆定位"];

    CogFixtureTool Fix = (CogFixtureTool) mToolBlock.Tools["矫正坐标系"];

    CogFindCircleTool FindCircle = (CogFindCircleTool) mToolBlock.Tools["外圆"];

    CogFindCircleTool FindCircle1 = (CogFindCircleTool) mToolBlock.Tools["隔离管外圆"];

    CogDistancePointPointTool PointP_Distance = (CogDistancePointPointTool) mToolBlock.Tools["两圆距离"];

    CogCaliperTool YanWeiCaliper = (CogCaliperTool) mToolBlock.Tools["卡尺燕尾"];

    if (gc == null) gc = new CogGraphicCollection(); gc.Clear();
    if (gc1 == null) gc1 = new CogGraphicCollection(); gc1.Clear();
    if (label1 == null) label1 = new CogGraphicLabel();
    if (label2 == null) label2 = new CogGraphicLabel();
    if (label3 == null) label3 = new CogGraphicLabel();
    if (label4 == null) label4 = new CogGraphicLabel();
    if (label5 == null) label5 = new CogGraphicLabel();
    if (label6 == null) label6 = new CogGraphicLabel();

    if (rect == null) rect = new CogRectangleAffine();

    label1.Font = new Font("宋体", 16);
    label1.SelectedSpaceName = "#";
    label1.Alignment = CogGraphicLabelAlignmentConstants.BaselineLeft;
    label2.Font = new Font("宋体", 16);
    label2.SelectedSpaceName = "#";
    label2.Alignment = CogGraphicLabelAlignmentConstants.BaselineLeft;
    label3.Font = new Font("宋体", 16);
    label3.SelectedSpaceName = "#";
    label3.Alignment = CogGraphicLabelAlignmentConstants.BaselineLeft;
    label4.Font = new Font("宋体", 16);
    label4.SelectedSpaceName = "#";
    label4.Alignment = CogGraphicLabelAlignmentConstants.BaselineLeft;
    label5.Font = new Font("宋体", 16);
    label5.SelectedSpaceName = "#";
    label5.Alignment = CogGraphicLabelAlignmentConstants.BaselineLeft;
    label6.Font = new Font("宋体", 16);
    label6.SelectedSpaceName = "#";
    label6.Alignment = CogGraphicLabelAlignmentConstants.BaselineLeft;

    Pat1.InputImage = (CogImage8Grey) mToolBlock.Inputs["InputImage"].Value;
    Pat1.Run();

    if (Pat1.Results != null && Pat1.Results.Count > 0)
    {
   
      label1.SetXYText(100, 50, "产品定位OK");
      label1.Color = CogColorConstants.Green;
      gc.Add(label1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/484395.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[项目前置]websocket协议

websocket协议介绍 WebSocket 协议是一种在单个 TCP 连接上进行全双工通讯的协议。 WebSocket 使得客户端和服务器之间的数据交换变得更简单&#xff0c;允许服务器主动向客户端推送数据。它在 2011 年成为国际标准&#xff0c;现在被所有现代浏览器支持。WebSocket 设计用于…

YOLOv8 | 网络结构 | 详细讲解YOLOv8的网络结构

⭐欢迎大家订阅我的专栏一起学习⭐ 🚀🚀🚀订阅专栏,更新及时查看不迷路🚀🚀🚀 YOLOv5涨点专栏:http://t.csdnimg.cn/70xZa YOLOv8涨点专栏:http://t.csdnimg.cn/Cb89a YOLOv7专栏:http://t.csdnimg.cn/HaTdn 💡魔改网络、复现论文、优化创新💡 …

【No.13】蓝桥杯二分查找|整数二分|实数二分|跳石头|M次方根|分巧克力(C++)

二分查找算法 知识点 二分查找原理讲解在单调递增序列 a 中查找 x 或 x 的后继在单调递增序列 a 中查找 x 或 x 的前驱 二分查找算法讲解 枚举查找即顺序查找&#xff0c; 实现原理是逐个比较数组 a[0:n-1] 中的元素&#xff0c;直到找到元素 x 或搜索整个数组后确定 x 不在…

面试笔记——Redis(双写一致、持久化)

双写一致 双写一致性&#xff1a; 当修改了数据库中的数据&#xff0c;也要更新缓存的数据&#xff0c;使缓存和数据库中的数据保持一致。 相关问题&#xff1a;使用Redis作为缓存&#xff0c;mysql的数据如何与Redis进行同步&#xff1f;——双写一致性问题 回答时&#xff0…

数字范围按位与

链接&#xff1a; 201. 数字范围按位与 - 力扣&#xff08;LeetCode&#xff09; 这个题目看起来很难&#xff0c;但是 按位与 的特点是 如果全是1 为 1 其余全为 0 然后这道题其实就是在找最长公共前缀&#xff08;为啥不说后缀&#xff0c;观察可知&#xff0c;后缀那部分…

【Mysql】硬盘性能压测(Sysbench工具)

1、IOPS和吞吐量介绍 IOPS&#xff08;每秒输入/输出操作数&#xff09;&#xff1a;是衡量存储设备每秒能够执行的输入/输出操作的数量。对于数据库等需要频繁读写的应用程序而言&#xff0c;IOPS 是一个关键的性能指标。更高的 IOPS 意味着存储设备能够处理更多的读写请求&am…

css盒子模型及浮动

内容(content)、内边距(padding)、边框(border)、外边距(margin) oder:1px solid red; 边框的粗细 边框的样式&#xff08;虚线还是实线&#xff09; 边框的颜色 border中也有一些属性可以直接调某一个方向上的边框的粗细&#xff0c;样式&#xff0c;颜色 border-left\bord…

24计算机考研调剂 | 【官方】中国航天系统科学与工程研究院

中国航天系统科学与工程研究院2024年硕士研究生招生预调剂通知 调剂招生信息 研究院概况与专业特色&#xff1a; 中国航天系统科学与工程研究院&#xff08;简称&#xff1a;十二院&#xff09;是中国航天科技集团有限公司的直属单位&#xff0c;是在原中国航天工程咨询中心 …

【软考】UML中的图之状态图

目录 1. 说明2. 图示 1. 说明 1.状态图&#xff08;State Diagram&#xff09;展现了一个状态机。2.由状态、转换、事件和活动组成。3.关注系统的动态视图。4.对于接口、类和协作的行为建模尤为重要。5.强调对象行为的事件顺序。6.通常包括简单状态和组合状态、转换&#xff0…

十大经典排序算法复杂度、应用场景总结 | 插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序、桶排序、计数排序

前言 好久不见辽&#xff0c;uu们&#xff01;这几天由于准备专业课的课堂pre&#xff0c;因此一直没能给 “c实现十大经典排序算法” 系列结个尾。本次的十大排序算法包括&#xff1a;插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序、桶排序…

递归课堂案例

一个不知名大学生&#xff0c;江湖人称菜狗 original author: Jacky Li Email : 3435673055qq.com Time of completion&#xff1a;2024.03.24 Last edited: 2024.03.24 目录 递归课堂案例 第1关&#xff1a;斐波那契数列 任务描述 相关知识 编程要求 代码如下&#xff1…

java每日一题——买啤酒(递归经典问题)

前言&#xff1a; 非常喜欢的一道题&#xff0c;经典中的经典。打好基础&#xff0c;daydayup!!!啤酒问题&#xff1a;一瓶啤酒2元&#xff0c;4个盖子可以换一瓶&#xff0c;2个空瓶可以换一瓶&#xff0c;请问10元可以喝几瓶 题目如下&#xff1a; 啤酒问题&#xff1a;一瓶…

学习笔记 | 微信小程序项目day03

今日学习内容 配置自定义导航栏通用轮播组件通用的轮播图组件完善以及主页调用分类面板以及热门推荐面板猜你喜欢模块&#xff08;分页查询&#xff09;首页下拉刷新首页骨架屏 配置自定义导航栏 1、创建自定义组件 /index/components/CustomNavbar.vue <script setup l…

关于使用TCP-S7协议读写西门子PLC字符串的问题

我们可以使用TCP-S7协议读写西门子PLC&#xff0c; 比如PLC中定义一个String[50] 的地址DB300.20 地址DB300.20 DB块编号为300&#xff0c;偏移量【地址】是30 S7协议是西门子PLC自定义的协议&#xff0c;默认端口102&#xff0c;本质仍然是TCP协议的一种具体实现&#xff…

ForceField Effects

支持HDRP、URP和LWRP 完全可定制和优化的ForceField VFX Pack。我们使所有着色器和材质都非常易于调整,因此您可以非常轻松地创建自己独特的效果。几乎每个参数都可以调整。所有这些效果都适合于每个游戏,无论是风格化还是现实主义的。该软件包还附带一系列颜色渐变,可用于更…

力扣-20 有效的括号详解 Java

目录 1.题目分析 2.基础知识储备 2.1 哈希表 2.2 栈的存取 3. 逻辑概要 4.源码 示例 1.题目分析 为了对比都是从内而外&#xff0c;一个个匹配&#xff0c;全部匹配成功即为有效字符 2.基础知识储备 2.1 哈希表 简单来说&#xff0c;keyvalue存储 &#xff0c;通过key…

ideaSSM 高校公寓交流员管理系统bootstrap开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 idea 开发 SSM 高校公寓交流管理系统是一套完善的信息管理系统&#xff0c;结合SSM框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库&…

一篇文章搞懂并设计循环队列

目录 1.为什么使用循环队列 2. 循环队列组成 为什么要只使用size-1 个空间存储&#xff1f; 3.循环队列的元素进出 3.1 队尾加入元素 3.2 队头删除元素 3.3 取出队头元素 3.4 取出队尾元素 1.为什么使用循环队列 “假溢出”——》 出队列会空出存储空间&#xff0c;无法…

Gogs - 一款极易搭建的自助 Git 服务

Gogs - 一款极易搭建的自助 Git 服务 1. 使用文档References Gogs https://gogs.io/ https://github.com/gogs/gogs Gogs (/gɑgz/) 项目旨在打造一个以最简便的方式搭建简单、稳定和可扩展的自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发&#xff0c;并…

模拟-算法

文章目录 替换所有的问号提莫攻击Z字形变换外观数列数青蛙 替换所有的问号 算法思路&#xff1a; 从前往后遍历整个字符串&#xff0c;找到问号之后&#xff0c;就遍历 a ~ z 去尝试替换即可。 class Solution {public String modifyString(String s) {char[] ss s.toCharA…