news 2026/8/5 22:52:13

【VisionPro脚本】将结果数据保存到Excel

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【VisionPro脚本】将结果数据保存到Excel

摘要:

  • 检测需求:将特征点检测结果数据保存到CSV文件的功能。
  • 检测逻辑:首先检查文件是否存在,不存在则创建并写入表头。然后获取当前时间、将这些3D数据拼接成CSV格式的行数据,最后追加写入到指定路径的文件中。数据包含输入输出坐标、结果状态和匹配分数等信息,便于后续追溯分析
//数据保存地址stringfile=@"D:\DataLog\2.FuZhouZheng.csv";if(!File.Exists(file)){stringheader="时间,输入X,输入Y,输入Z,输入RX,输入RY,输入RZ,输出X,输出Y,输出Z,输出RX,输出RY,输出RZ,输出Result,输出PMA_Score";File.WriteAllText(file,header+Environment.NewLine);}//输出到文件夹stringcurrentTime=DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");//输入机械手坐标doubleinput_dX=this.Inputs.dX;doubleinput_dY=this.Inputs.dY;doubleinput_dZ=this.Inputs.dZ;doubleinput_dRx=this.Inputs.dRx;doubleinput_dRy=this.Inputs.dRy;doubleinput_dRz=this.Inputs.dRz;//输出3D坐标doubleoutput_X=this.Outputs.X;doubleoutput_Y=this.Outputs.Y;doubleoutput_Z=this.Outputs.Z;doubleoutput_RX=this.Outputs.RX;doubleoutput_RY=this.Outputs.RY;doubleoutput_RZ=this.Outputs.RZ;doubleoutput_Result=this.Outputs.Result;doubleoutput_PMA_Score=this.Tools.Cog3DPatMaxTool1.Results[0].Score;stringline=currentTime+","+input_dX+","+input_dY+","+input_dZ+","+input_dRx+","+input_dRy+","+input_dRz+","+output_X+","+output_Y+","+output_Z+","+output_RX+","+output_RY+","+output_RZ+","+output_Result+","+output_PMA_Score;using(StreamWritersw=newStreamWriter(file,true)){sw.WriteLine(line);}

生成函数,并以日期为文件名:

/// <summary>/// 保存检测数据到CSV文件,自动按当天日期生成csv文件名/// </summary>/// <param name="pixData">像素坐标/像素测量值(字符串类型)</param>/// <param name="physicalData">物理尺寸/实际测量值(字符串类型)</param>/// <param name="result">产品检测结果,true=合格,false=不合格</param>publicvoidsaveData(stringpixData,stringphysicalData,boolresult){//以日期为文件名称stringfolder=@"D:\VisionNow\DataFile";//文件夹stringcurrentDay=DateTime.Now.ToString("yyyy-MM-dd");//文件名stringfileName=Path.Combine(folder,currentDay+".csv");//判断文件不存在:新建文件,写入表头(列名)//如果电脑没有 D:\VisionNow\DataFile 文件夹,代码直接报错!不会自动创建文件夹if(!File.Exists(fileName)){stringheader="时间,像素数据,物理数据,结果";File.WriteAllText(fileName,header+Environment.NewLine);}//当前时间stringcurrentTime=DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");//每次追加一行的数据stringline=currentTime+","+pixData+","+physicalData+","+result;//追加写入 csv 文件using(StreamWritersw=newStreamWriter(fileName,true))//StreamWriter(file, true):true = 追加模式,不会覆盖原有数据; using:自动关闭文件,防止文件占用{sw.WriteLine(line);//写入一行并换行}}

调用函数:

//保存数据saveData(ca.Results[0].PositionX.ToString("f1"),realValue.ToString("f1"),Convert.ToBoolean(mToolBlock.Outputs["FlowResult"].Value));
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/5 22:47:31

从H.264/H.265码流手动解析SPS:获取视频宽高与帧率的底层原理与实践

1. 项目缘起&#xff1a;为什么需要从码流中“抠”出宽高帧率&#xff1f;做音视频开发或者处理过流媒体文件的朋友&#xff0c;肯定都遇到过这个场景&#xff1a;你拿到一个视频文件或者一段网络流&#xff0c;第一件事就是想搞清楚它的基本信息——分辨率是多少&#xff1f;帧…

作者头像 李华
网站建设 2026/8/5 22:41:19

Java四种引用类型详解:从内存管理到实战应用

1. 从一次线上故障说起&#xff1a;为什么需要了解Java的四种引用那天晚上&#xff0c;系统监控突然告警&#xff0c;一个核心服务的内存使用率在几分钟内飙升到90%以上&#xff0c;紧接着就是频繁的Full GC&#xff0c;服务响应时间从几十毫秒直接拉长到十几秒&#xff0c;几乎…

作者头像 李华
网站建设 2026/8/5 22:34:49

Unity精品Demo库构建指南:从筛选标准到实战应用

1. 项目缘起&#xff1a;为什么我们需要一个精品Demo库&#xff1f;作为一名在Unity开发一线摸爬滚打了十多年的老鸟&#xff0c;我电脑里最宝贵的财富&#xff0c;不是什么祖传的代码框架&#xff0c;也不是什么绝密的优化方案&#xff0c;而是一个被我命名为“Unity精品Demo收…

作者头像 李华
网站建设 2026/8/5 22:32:03

LEOBOG AMG65双屏键盘深度解析:从驱动配置到个性化仪表盘实战

最近在客制化键盘圈子里&#xff0c;一款搭载双屏幕的键盘——LEOBOG AMG65&#xff0c;引起了不小的讨论。对于追求个性化和功能扩展的玩家来说&#xff0c;一块屏幕已经不够“玩”了&#xff0c;点阵屏加TFT彩屏的组合&#xff0c;直接将键盘的可玩性和实用性拉满。本文将为你…

作者头像 李华
网站建设 2026/8/5 22:31:50

从0到1掌握VS Code Smart Clicks:完整功能演示与使用教程

从0到1掌握VS Code Smart Clicks&#xff1a;完整功能演示与使用教程 【免费下载链接】vscode-smart-clicks Smart selection with double clicks for VS Code. 项目地址: https://gitcode.com/gh_mirrors/vs/vscode-smart-clicks VS Code Smart Clicks是一款为VS Code打…

作者头像 李华