问题标签 [g-code]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3454 浏览

qt - 在QT中显示大量文本的好方法是什么

我正在构建一个将读取 gcode 文件的应用程序。文件范围从几 KB 到几百 MB(但这种情况很少见)。用户选择一个文件后,程序会遍历它并逐行读取。这根本不需要很长时间。

我想在 QTextEdit 小部件中显示我刚刚读入的文件的文本。不幸的是,这样做需要很长时间(即使是小文件也需要几秒钟)。

我曾考虑为用户添加一条“正在加载,请稍候”消息,但我想知道是否有一种方法可以加快文本加载过程。

现在我的代码如下所示:

有没有更好的方法将大量文本加载到不会使应用程序挂起的 QTextEdit 中?

注意:问题不在于我两次阅读该文件。我更改了我的代码,以便它在将文本添加到 QTextEdit 的同时进行处理,但整个过程仍然花费了太长时间。

0 投票
1 回答
238 浏览

c - memmem() 的分段错误

我试图在 3D 打印机的 .gcode 文件中查找某些层的字节大小。但是,我在运行一个函数来查找字符串“;LAYER:*”的两个实例之间的距离时遇到了一个错误。这是我的函数源:

addVars() 函数如下:

此错误似乎仅在我尝试在int count. 这是正常的程序输出:

我的 GDB 因某种奇怪的原因坏了,所以我正在使用 lldb,这就是 lldb 告诉我的:

因此,根据 lldb,我知道问题似乎在于访问 memmem。任何帮助将不胜感激。

0 投票
3 回答
6764 浏览

loops - 通过 g 代码命令循环和条件

我如何使用在选定的条件下制作和停止循环G-code
例如,我有以下 G 代码命令:

我想创建循环,重复我的代码 5 次。我不能使用 m-code 。我需要 G92 构建循环

0 投票
2 回答
2470 浏览

g-code - 寻找G代码语法规范,尝试制作简单的G代码解析器

我试图找到一个明确的 G 代码语法规范,而不是单个 G 代码的含义,这个 i 无处不在的规范,我的意思是详细的语法规范,用于编写解析器。

我编写解析器没有问题,我只是在寻找语法规范,例如。我知道您不必总是为某些 Gcode 提供完整的 xyz 坐标,在这种情况下,机器将使用缺失坐标的最后一个值,但我似乎找不到任何关于何时发生的明确规则。此外,有些指令可以放在一行中,有些则不能,而且似乎不存在明确的规则。

很长的故事:

所以我有一台diy cnc机器,用了一段时间,最近将它升级到足够稳定的状态,我可以在那里铣削一些PCB。问题是,做双面的真的很棘手,因为机械的索引双面的方法不够准确。

因此,有一些项目旨在利用 USB 摄像头,您可以使用它们瞄准已知点,然后应用程序计算并将转换应用于 gcode,因此它可以补偿错位。

但问题是,我想通过相机以外的方式做到这一点,而且这些项目还没有完成或被放弃。

所以我想,我可以为 gfcode 做一个简单的解析器,但是我发现的任何“规范”,只谈论特定指令的含义,而不是语法。

0 投票
1 回答
550 浏览

python - 将 AutoCAD 模型转换为具有在每个位置指定的质量密度的点/体积矩阵

我是一名实验物理学家(研究生),正在尝试使用我建立的实验的 AutoCAD 模型,并从整个仪器中找到指定体积内的引力势。在我发现潜力之前,我正在尝试绘制模型中每个点的质量密度图。

重要的是我已经有了一个模型,最后我会有一个写着“在 (x,y,z) 处的值为 d”的东西。如果那是一个疯狂的 csv 文件、一个 numpy 数组、一个 excel 表,或者......无论如何,我会很高兴。

到目前为止,这是我想出的:

第 1 步:我对 AutoCAD 文件进行颜色编码,以便颜色与材料相关联。

第 2 步:我将新图纸/模型发送到切片机(用于 3D 打印)。这需要我的 3D 对象并将其转换为等距(在 z 方向上)的 2d 对象......但是这一切都作为 g 代码输出。但是,嘿!G 代码是一种告诉电机如何移动的方式。

第 3 步:这是“难点”,也是这个问题的重点。我在想我采用那个 g 代码,它本质上只是一组关于如何移动喷嘴并使用它来填充 numpy 数组的指令。基本上我有3D数组,每一层对应z中的一个位置,左边的网格是我的xy平面。它读取放置在哪里的颜色,并跟随喷嘴并将该质量放入这些点。它知道质量是因为颜色。它通过解析 g 代码来遵循路径。

完成该级别后,它会移动到下一个网格并重复。

这听起来很疯狂吗?更好的是,这听起来合理吗?或者,也许有人对此有更聪明的思考方式。

即使您只是阅读了所有内容,也谢谢您。严重地。

0 投票
1 回答
944 浏览

android - 在安卓设备上生成 G 代码

在我们从安卓手机的相机中捕获图像后,是否有任何规定或方法可以生成图像的 G 代码?我想通过我的安卓手机控制数控绘图机,但这个过程并不完全独立,因为它需要我在我的电脑上生成 G 代码,然后将其传输到我的手机。有什么方法可以实现上述目标吗?我浏览了谷歌,但没有找到任何健康的东西。请帮我。

0 投票
1 回答
52 浏览

qt - 如何隔离QString中的整数

我有一个 Gcode 的 QString,看起来像这样:

目前,我正在使用myString.midRef(1,1).toInt()获取我想要的数字(我不关心线路的其余部分)。但是,如果有两位数,这将不起作用,如下所示:

除了按索引搜索索引以查看数字停止的位置之外,还有其他更好/更好的方法吗?

  • T数字前面总会有一个。
  • 如果数字后面有任何其他文本,则数字后面总会有一个分号,但数字和分号之间可能没有空格。
  • 数字后面可能有也可能没有。
0 投票
1 回答
1211 浏览

java - 有没有办法在程序启动时自动运行 Universal Gcode Sender 中的文件,而不必上传文件?

我有一个文件“myFile.gcode”,其中包含一些 G 代码命令。就目前而言,Universal Gcode Sender 允许用户上传要执行的文件。但是,我希望在程序启动后立即运行“myFile.gcode”,而不是我必须上传它。

开箱即用的 .jar 文件可以做到这一点吗?

.jar 可在https://winder.github.io/ugs_website/

如果不是我有以下想法,

  • 跟踪代码并对其进行逆向工程以自动运行文件。为此,我反编译了 .jar 文件,但是在跟踪代码时,我无法找到代码的起点(主类)。

总而言之,这可能吗?

而且,什么可以使跟踪此代码更容易?

0 投票
2 回答
591 浏览

c - 为什么 NIST RS274NGC G-Code Interpreter 使用这种代码风格?

我刚刚编译了NIST RS274NGC G-Code Interpreter并看到来自 gcc 的令人难以置信的 890 警告。

其中 200 个是由这个数组引起的:

根据我的基本理解,应该是const char *.

然后我看到了这些宏(它们实际上在不同的 .cc 文件中出现了好几次):

然后我看到了很多suggest braces around empty body in an 'else' statement [-Wempty-body]由非常奇怪的控制流改变宏引起的警告(是的,还有悬空的其他!):

报告表明

A.5 解释器错误

解释器没有已知的错误

所有这一切都让我想知道——为什么它写得这么奇怪?我可以理解 PRINT0 之类的宏 - C 中的错误处理可能会很痛苦 - 但为什么有人会使用SET_TO而不是=呢?

我可以相信所有这些代码都是生成的,但不能以无警告的方式生成吗?

无论如何,我不是专家,我只是很好奇。

0 投票
1 回答
475 浏览

python - 修改 Gcode

我正在尝试打开一个 .gcode 文件,读取它,并根据它读取的内容将特定数字添加到附加到包含“Z”的任何字符串的数字中

下面是一个 gcode 示例:

因此,例如,它需要读取每一行,并且每次遇到包含“Z”的字符串时,取与其关联的数字并加上 1.5,然后将其替换为新值。

到目前为止,这就是我所拥有的:

我只是将打印作为占位符,以查看发生了什么。我对如何只取每行的 ZXXX 部分感到困惑,将其从字母中拆分出来(因此将 'Z0.3' 拆分为 ['Z', '0.3']),这样我就可以将 '0.3' 转换为浮点数,然后添加一个特定的数字,然后用新值替换旧的 ZXXX 字符串。

任何帮助将不胜感激,谢谢!