让代码更简单

VisionPro自定义工具实例教程附源码

重要:本文最后更新于2025-01-05 19:38:33,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

VisionPro自定义工具属于高级用法了,常见的都可以使用工具块或者工具组加上脚本实现。如果你想将opencv中的算法搬到VisionPro中使用,封装成VisionPro工具是个不错的选择,下面狗哥以图片另存工具为例,带大家过一遍VisionPro自定义工具的方法。有自学能力的,可以看看前面的教程VisionPro自定义工具教程

VisionPro自定义工具教程

开发环境准备

  • 确保安装了 Cognex VisionPro SDK。
  • 使用编程语言:VisionPro 支持 .NET 环境(C# 或 VB.NET)。
  • IDE:建议使用 Visual Studio。

创建自定义工具类

VisionPro 的工具通常是从 CogToolBase 继承,创建一个C#类库项目,名称为CustomTool,然后在其中创建一个类名叫CustomSaveImageTool


隐藏内容,解锁需要开通VIP
登录/注册

然后在CustomTool这个类库项目中,添加一项用户控件,命名为CustomSaveImageToolEditV2

注意:CustomSaveImageToolEditV2这个名称要对应上面CustomSaveImageTool代码中对控件的声明

复制
 [Editor(typeof(CustomSaveImageToolEditV2), typeof(Control))]

设计如下

VisionPro自定义工具教程

注意:当你的自定义控件类,继承自CogToolEditControlBaseV2类时,会自动首先visionpro工具的框架,你只需要添加编辑框按钮选择框即可。


隐藏内容,解锁需要开通VIP
登录/注册

到此,整个工具代码写完了,但是你还不能在visionpro中使用它。

运行下此项目,不出意外vs会提醒你,dll项目不能直接运行,不过没关系,运行一下即使报错也会在调试目录下生成对应的dll文件,这里生成的CustomTool.dll

接下来在当前的解决方案中,添加一个测试项目,选择Windows窗体程序,添加引用,浏览,找到刚刚生成的CustomTool.dll文件,添加后,就能使用控件了,高版本vs会在工具箱最上面显示你刚刚制作的控件,直接拖就能使用,低版本还是用代码添加到窗体上预览吧。

不过这里不必使用它,我们只需要在测试窗体程序中,使用CogSerializer.SaveObjectToFile方法将其序列化成二进制文件即可。将下面代码添加到窗口加载完成事件中,便于运行程序即序列化文件。

复制
 //CustomTool.CustomSaveImageToolEditV2 csi = new CustomTool.CustomSaveImageToolEditV2();
//Controls.Add(csi); 低版本代码添加预览
//序列化工具
CogSerializer.SaveObjectToFile(new CustomTool.CustomSaveImageTool(), Application.StartupPath + "/CustomTool.vtt");

在解决方案管理器中,右键测试项目,将其设置为启动项目,然后点击vs中的运行按钮,不出意外会在调试目录中生成CustomTool.vtt文件。

添加自定义工具到VisionPro

想要将自定义工具添加到VisionPro,需要三个文件,dll、vtt、ico,缺一不可。ico图标文件大小16X16像素。

ico与dll文件全部复制到\Program Files\Cognex\VisionPro\bin目录,具体参考你的visionpro安装路径。

vtt文件复制到\Program Files\Cognex\VisionPro\bin\Templates\Tools,如果你想给自定义工具单独分组,请在该路径下新建文件夹,并将vtt文件放在其中即可。

VisionPro自定义工具教程

我的显示器比较大,懒得调分辨率了,大家凑合着看吧。

工具没有终端?

做到这一步的同学应该是发现了,自定义的工具添加到visionpro中并没有生成默认的终端,想要实现自动添加默认终端,可以先右键工具,添加终端,添加好后,打开工具,选择保存,将工具覆盖掉之前的CustomTool.vtt文件即可。

按照上图的流程,当pma工具识别成功时,自定义工具CustomTool会自动将图像保存在用户自定义的文件夹中,以日期为文件名。

CustomTool_daimadog.zip
VIP用户免费下载

感觉很棒!可以赞赏支持我哟~

0 打赏

评论 (0)

登录后评论
QQ咨询 邮件咨询 狗哥推荐