QT深入解析数控机床或激光切割机的nc文件包括读取与数据处理技巧

本文主要是介绍QT深入解析数控机床或激光切割机的nc文件包括读取与数据处理技巧,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

QT深入解析数控机床或激光切割机的nc文件包括读取与数据处理技巧

  • 代码功能说明:
  • 代码
  • 运行过程

代码功能说明:

这个代码是用来读取一个名为 “C:/QCY/qcy.nc” 的文件,这个文件中包含了一系列数据,每行数据可能包含 X、Y、Z 坐标值。这些坐标值可以代表某种路径或轨迹。

代码的作用是:

  1. 打开指定路径的文件。
  2. 逐行读取文件内容。
  3. 对每一行内容进行匹配,查找是否包含 X、Y、Z 坐标值,并提取出这些值。
  4. 将提取的 X、Y、Z 坐标值分别存储在 QVector<double> 类型的数组中。
  5. 如果某行中没有某个坐标值,则默认使用 0 代替。
  6. 最后,输出每一行的 X、Y、Z 坐标值,以及它们在数组中的索引。

这个代码可以帮助你解析含有 XYZ 坐标值的文件,并将它们存储在内存中以便后续处理或分析。

代码

#include <QFile>
#include <QTextStream>
#include <QDebug>
#include <QRegExp>void readNetCDFFile(const QString& filePath) {// Open the fileQFile file(filePath);if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {qDebug() << "Failed to open the file.";return;}// Arrays to store X, Y, Z valuesQVector<double> xValues;QVector<double> yValues;QVector<double> zValues;// Read the contentQTextStream in(&file);while (!in.atEnd()) {QString line = in.readLine();// Regular expression to match X, Y, or Z followed by a numberQRegExp rx("(X|Y|Z)(-?\\d+(\\.\\d+)?)");// Initialize default valuesdouble xValue = 0.0;double yValue = 0.0;double zValue = 0.0;// Index of the regular expression in the lineint pos = 0;// Loop to find all matches in the linewhile ((pos = rx.indexIn(line, pos)) != -1) {// Extract the matched textQString match = rx.cap(1);// Extract the number partQString number = rx.cap(2);double value = number.toDouble();// Assign the value to the corresponding variableif (match == "X") {xValue = value;} else if (match == "Y") {yValue = value;} else if (match == "Z") {zValue = value;}// Move the position forward to search for next matchpos += rx.matchedLength();}// Add the values to the arraysxValues.append(xValue);yValues.append(yValue);zValues.append(zValue);}// Close the filefile.close();// Output the valuesfor (int i = 0; i < xValues.size(); ++i) {qDebug() << "Line" << i + 1 << "X:" << xValues[i] << "Y:" << yValues[i] << "Z:" << zValues[i];}
}int main() {QString filePath = "C:/QCY/qcy.nc";readNetCDFFile(filePath);return 0;
}

运行过程

在这里插入图片描述
在这里插入图片描述

这篇关于QT深入解析数控机床或激光切割机的nc文件包括读取与数据处理技巧的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/847452

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

购买磨轮平衡机时应该注意什么问题和技巧

在购买磨轮平衡机时,您应该注意以下几个关键点: 平衡精度 平衡精度是衡量平衡机性能的核心指标,直接影响到不平衡量的检测与校准的准确性,从而决定磨轮的振动和噪声水平。高精度的平衡机能显著减少振动和噪声,提高磨削加工的精度。 转速范围 宽广的转速范围意味着平衡机能够处理更多种类的磨轮,适应不同的工作条件和规格要求。 振动监测能力 振动监测能力是评估平衡机性能的重要因素。通过传感器实时监

滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10

【C++高阶】C++类型转换全攻略:深入理解并高效应用

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C++ “ 登神长阶 ” 🤡往期回顾🤡:C++ 智能指针 🌹🌹期待您的关注 🌹🌹 ❀C++的类型转换 📒1. C语言中的类型转换📚2. C++强制类型转换⛰️static_cast🌞reinterpret_cast⭐const_cast🍁dynamic_cast 📜3. C++强制类型转换的原因📝