视觉平台Visionpro脚本神器

1 篇文章 0 订阅
1 篇文章 0 订阅

废话前言,关于visionpro脚本

作者:mingqi QQ 297294753,本文原创,如果要转载请注明出处。
关于vision的脚本操作,官方没有说明,帮助文档也只是说了visionpro内部使用的。此次带来visionpro视觉的脚本处理方法,先说一段废话:由于使用到了视觉平台visionpro,经常写visionpro脚本,但是不得不吐槽的是visionpro的脚本界面太难写,智能提示的智商几乎为0,自动完成基本忽略了,很难写,比VB6还难写,后来本人换了一种方式,在VS中写脚本(没错,visionpro的脚本在VS里面写)---------如果是说VS中写代码是开飞机,基本上visionpro里面写脚本就是步行了,本人也是笨笨的,记性不好,写不出来,哈哈哈。这个废话博客为大家带来如何在VS中写visionpro脚本(这不是重点),以及如果把脚本在程序运行的加载到visionpro里面去(重点),就是visionpro里面是没有脚本的,脚本在程序启动的时候动态加载,还有个更重要的,这加载的方法不引用visionpro的DLL,也就是不依赖的它的Dll(这好像也是个重点,个人觉得比前面两个更重要),说明一下这是脚本是cogtoolblock的脚本。废话不多说了,先如何在VS里面写脚本。

VS中写脚本

其实在VS里面写脚本太简单了
首先在VS中添加一个文件,然后把visionpro的脚本复制过去
在这里插入图片描述
上图是visionpro的脚本
然后复制到VS中,如下图
在这里插入图片描述
豪华感来了吧,不然怎么叫宇宙最强编辑器呢。
第二步呢,就是写代码吧,只不过是在VS里面写,能感受出来VS的优越性,自动完成,智能提示和纠错完全不是visionpro不是可以比拟的,你会发现这里写真爽。
提示一下:在这里插入图片描述
这个类名可以随便取名的,阿猫阿狗都可以,只要是合法的。
脚本写完了呢,怎么办的,就是把代码复制回visionpro的脚本里面去了,这是我很久以前的做法,但是现在不这样搞了,因为我很懒,不想复制了,改一次又要复制一次,多麻烦。
提示一下,如果你很细心,可以发现上面的类名的引用数量为0,确实这类在VS中没有被任何地方调用,如果我说这相当用VS写txt有点难以置信(类写来不被调用又有啥意思呢,但是确实这个类是一个蹲坑不扔炸弹的)。

如何把写好的脚本代码载入到visionpro里面去

那就准备一个类来做这个事情,新建一个项目,然后新建一个类,取名为VpScript,名称不重要,随便都可以,自己方便记忆就行
在这里插入图片描述
对吧,项目中确实没有依赖visionpro的DLL,后面会用到反射的办法(我只会那一招而已,泪,泪 …,为毛CSDN不支持表情)
代码:
搞点字段(我用的被人瞧不起的语言VB.net,不喜欢请将就)
在这里插入图片描述

ssToolBlock用来存储cogtoolblock类型,之所以声明为object,因为我没有依赖visionpro的dll,我咋知道类型呢,反正都是对象,不会有拆装箱的。
后面都的字段是后面过程要用到的,顺便说一下,我的代码很渣渣,请不要拍我哈,怕怕怕。
写两个构造函数,方便使用
在这里插入图片描述
第一个构造的可选参数direction是用来存储脚本的文件夹位置(如果此参数没有指定的话默认为My上次trip文件夹,位于程序的根目录),用于程序发布后读取脚本的地方,也就是说,当程序没有发布的时候是拿你写的脚本来用,当发布了到客户那里去了,程序就从direction这个位置调取脚本文件,每次调试一次就会更新脚本文件到这个文件夹里去,保持新鲜的,里面的其他方法后面再叙述。
在这里插入图片描述
上图是设置脚本,构造函数也有使用,也公开出来了,会检查toolblock参数到底是不是cogtoolblock类型,如果是不是则抛出错误。虽然是object,但是也不能乱干哈。
然后开始反射需要的类型
在这里插入图片描述
这里我需要四个类型,都给拿出来。
在这里插入图片描述
后期需要的文件夹先建好
然后把脚本需要的Dll加入进去
在这里插入图片描述
注释中也说明默认会加载哪些DLL,其实为了保持与visionpro创建脚本的引用一直,就是这些
在这里插入图片描述
在这里插入图片描述
其实这个地方为什么只有这些DLL呢,如果这DLL不够用,还要添加其他的DLL,比如系统的DLL,或者其他visionpro的DLL,或者自己定义的DLL呢,不着急,后面会有描述的,这些都不是问题。
经过上述过程,new的构造函数已经完成了,就是new这个对象的时候,基本就执行上述步骤了,也是准备工作。

下面说添加三种DLL,一种visionpro的,一种是系统的,一种是自定义的。
这个部分我为了方便使用写了四个方法,其中三个有重载
在这里插入图片描述
以下是添加系统DLL的方法在这里插入图片描述
只需要dll的全名称即可,里面有个步骤是判断是否重复添加的,如果进来参数是添加过的DLL则会忽略这个过程。
以下是添加在这里插入图片描述
这里参数为了方便使用,使用了枚举,比字符串轻松很多的,
总共73个枚举,如下:
‘’’
‘’’ Visionpro的DLL的 枚举
‘’’
Public Enum VPdll
Cognex_VisionPro_AutoSelect = 0
Cognex_VisionPro_Barcode_Controls = 1
Cognex_VisionPro_Barcode = 2
Cognex_VisionPro_Blob_Controls = 3
Cognex_VisionPro_Blob = 4
Cognex_VisionPro_CalibFix_Controls = 5
Cognex_VisionPro_CalibFix = 6
Cognex_VisionPro_Caliper_Controls = 7
Cognex_VisionPro_Caliper = 8
Cognex_VisionPro_CNLSearch_Controls = 9
Cognex_VisionPro_CNLSearch = 10
Cognex_VisionPro_ColorExtractor_Controls = 11
Cognex_VisionPro_ColorExtractor = 12
Cognex_VisionPro_ColorMatch_Controls = 13
Cognex_VisionPro_ColorMatch = 14
Cognex_VisionPro_ColorSegmenter_Controls = 15
Cognex_VisionPro_ColorSegmenter = 16
Cognex_VisionPro_CompositeColorMatch_Controls = 17
Cognex_VisionPro_CompositeColorMatch = 18
Cognex_VisionPro_Controls = 19
Cognex_VisionPro_Core = 20
Cognex_VisionPro_CorePlus = 21
Cognex_VisionPro_Database = 22
Cognex_VisionPro_Dimensioning_Controls = 23
Cognex_VisionPro_Dimensioning = 24
Cognex_VisionPro_Display_Controls = 25
Cognex_VisionPro = 26
Cognex_VisionPro_FG1394DCAM = 27
Cognex_VisionPro_FG8100 = 28
Cognex_VisionPro_FG8100L = 29
Cognex_VisionPro_FG8120 = 30
Cognex_VisionPro_FG8500L = 31
Cognex_VisionPro_FG8501 = 32
Cognex_VisionPro_FG8504 = 33
Cognex_VisionPro_FG8600 = 34
Cognex_VisionPro_FGGigE = 35
Cognex_VisionPro_ID_Controls = 36
Cognex_VisionPro_ID = 37
Cognex_VisionPro_ImageFile_Controls = 38
Cognex_VisionPro_ImageFile = 39
Cognex_VisionPro_ImageProcessing_Controls = 40
Cognex_VisionPro_ImageProcessing = 41
Cognex_VisionPro_ImagingDevice = 42
Cognex_VisionPro_Inspection_Controls = 43
Cognex_VisionPro_Inspection = 44
Cognex_VisionPro_Interop_Core = 45
Cognex_VisionPro_LinescanDistortionCorrection_Controls = 46
Cognex_VisionPro_LinescanDistortionCorrection = 47
Cognex_VisionPro_OC = 48
Cognex_VisionPro_OCRMax_Controls = 49
Cognex_VisionPro_OCRMax = 50
Cognex_VisionPro_OCVMax_Controls = 51
Cognex_VisionPro_OCVMax = 52
Cognex_VisionPro_PatInspect_Controls = 53
Cognex_VisionPro_PatInspect = 54
Cognex_VisionPro_PixelMap_Controls = 55
Cognex_VisionPro_PixelMap = 56
Cognex_VisionPro_PMAlign_Controls = 57
Cognex_VisionPro_PMAlign = 58
Cognex_VisionPro_QuickBuild_Controls = 59
Cognex_VisionPro_QuickBuild_Core = 60
Cognex_VisionPro_QuickBuild_IO = 61
Cognex_VisionPro_ResultsAnalysis_Controls = 62
Cognex_VisionPro_ResultsAnalysis = 63
Cognex_VisionPro_SearchMax_Controls = 64
Cognex_VisionPro_SearchMax = 65
Cognex_VisionPro_ToolGroup_Controls = 66
Cognex_VisionPro_ToolGroup = 67
Cognex_VisionPro_TwoDSymbol_Controls = 68
Cognex_VisionPro_TwoDSymbol = 69
Cognex_VisionPro3D_Controls = 70
Cognex_VisionPro3D_Core = 71
Cognex_VisionPro3D = 72
End Enum

这么多枚举,我不是一个个写哈,写代码的读取一下加工复制到VS即可了。

太晚了,明天继续 …

  • 11
    点赞
  • 102
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值