前言
做硬件测试时,用到了vp的c#脚本,由于偷懒导出数据表想直接用以前封装好的函数库,在测试时遇到些问题,在此做些记录。
一、具体配置与代码
我准备通过vp脚本输出数据表格至csv文件。
vp中的配置:
简单的加入一个组合工具,添加函数dll文件到vp的bin文件目录下:
类库的依赖项也一并要添加进来,否则会报缺少依赖项的错误
当脚本由vp打开时,dll一定要放在vp的bin文件目录下,否则也会报缺少文件的错误
在用c#调用时我暂未测试,以后测试了再更新
在组合中编写脚本代码:
#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 System.Data;
#endregion
public class CogToolBlockSimpleScript : CogToolBlockAdvancedScript
{
DataTable dt = new DataTable();
string pathName = @"C:\Users\ZDH-XMXT-257\Desktop\dp.csv";
/// <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>
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
DataRow dr = dt.NewRow();
dr["X"] = 12;
dr["Y"] = 15;
dt.Rows.Add(dr);
CSVHelepr_DP.CSVHelper.DataTable2CSV(dt, pathName);
return false;
}
#region When the Script is Initialized
/// <summary>
/// Perform any initialization required by your script here
/// </summary>
/// <param name="host">The host tool</param>
public override void Initialize(Cognex.VisionPro.ToolGroup.CogToolGroup host)
{
// DO NOT REMOVE - Call the base class implementation first - DO NOT REMOVE
base.Initialize(host);
dt.Columns.Add("次数");
dt.Columns.Add("X");
dt.Columns.Add("Y");
}
#endregion
其中CSVHelepr_DP就是我封装的类库,helper打错了,忘记改了。
结果: