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

相关文章

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s

Python xmltodict实现简化XML数据处理

《Pythonxmltodict实现简化XML数据处理》Python社区为提供了xmltodict库,它专为简化XML与Python数据结构的转换而设计,本文主要来为大家介绍一下如何使用xmltod... 目录一、引言二、XMLtodict介绍设计理念适用场景三、功能参数与属性1、parse函数2、unpa

怎么关闭Ubuntu无人值守升级? Ubuntu禁止自动更新的技巧

《怎么关闭Ubuntu无人值守升级?Ubuntu禁止自动更新的技巧》UbuntuLinux系统禁止自动更新的时候,提示“无人值守升级在关机期间,请不要关闭计算机进程”,该怎么解决这个问题?详细请看... 本教程教你如何处理无人值守的升级,即 Ubuntu linux 的自动系统更新。来源:https://

深入理解C语言的void*

《深入理解C语言的void*》本文主要介绍了C语言的void*,包括它的任意性、编译器对void*的类型检查以及需要显式类型转换的规则,具有一定的参考价值,感兴趣的可以了解一下... 目录一、void* 的类型任意性二、编译器对 void* 的类型检查三、需要显式类型转换占用的字节四、总结一、void* 的

深入理解Redis大key的危害及解决方案

《深入理解Redis大key的危害及解决方案》本文主要介绍了深入理解Redis大key的危害及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、背景二、什么是大key三、大key评价标准四、大key 产生的原因与场景五、大key影响与危

Python数据处理之导入导出Excel数据方式

《Python数据处理之导入导出Excel数据方式》Python是Excel数据处理的绝佳工具,通过Pandas和Openpyxl等库可以实现数据的导入、导出和自动化处理,从基础的数据读取和清洗到复杂... 目录python导入导出Excel数据开启数据之旅:为什么Python是Excel数据处理的最佳拍档

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

基于Qt Qml实现时间轴组件

《基于QtQml实现时间轴组件》时间轴组件是现代用户界面中常见的元素,用于按时间顺序展示事件,本文主要为大家详细介绍了如何使用Qml实现一个简单的时间轴组件,需要的可以参考下... 目录写在前面效果图组件概述实现细节1. 组件结构2. 属性定义3. 数据模型4. 事件项的添加和排序5. 事件项的渲染如何使用

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如