问题标签 [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 回答
5114 浏览

python - 如何在 tkinter 窗口中显示变量?

我对 Python 完全陌生,我正在编写以下代码,这些代码是在其他 stackflow 用户的大力帮助下编写的。

运行脚本后,将打开一个 tkinter 窗口,您可以在其中选择一个 gcode 文件(它是一个包含许多多行 3D 打印机指令的文件),然后从该文件中找到一个特定值。

我想要实现的是:

1)在带有描述/标签的tkinter窗口中的加载GCODE按钮下显示此值。

2) 对此值进行一些计算并将它们也显示在 tkinter 窗口中。

3) 最后制作这个脚本的可执行文件,这样每个人都可以使用它,即使没有安装 Python。

我不确定这是否超级简单,或者因为我对 Python 完全陌生(而且整体编程不太好),所以需要做很多工作。我希望我已经解释得足够好,并提前感谢您的任何意见!

用于代码测试的 Gcode 文件:GCODE FILE

最后是代码:

0 投票
1 回答
75 浏览

python - 如何使用文件中的值进行进一步计算

在两个 stackoverflow 用户的大力帮助下,我编写了这段代码。它是应该从 GCODE(3D 打印机创建对象的代码)中提取使用的灯丝值的代码。到目前为止,它运行良好,并且该值根据我的需要显示在 tkinter 窗口中。问题是这个值表示所用灯丝的体积。现在我想在 tkinter 窗口中计算和显示另外两个值 1)质量,volume*1,13然后是新发现的价格mass*0.175。问题是我无法弄清楚如何使用 gcode 中的这个值并使其可用于计算。self.value是从加载的文件中找到的初始变量(这里我附上示例 gcode 文件,您可以使用它来测试代码:smaple gcode)。我认为问题在于这个值是一个字符串,它应该是一个整数,以便在他的代码中进行计算我试图将它更改为整数,但它没有工作,所以我已经注释掉了。非常感谢您提供所有可能的提示和帮助。

PS Additionaly 我想在上传文件后更改状态栏,我也遇到了问题。

完整代码:

这是我得到的错误:

0 投票
0 回答
196 浏览

python - 使用打开的文件名更新状态栏

在其他 stackoverflow 用户的帮助下,我编写了这段代码,用于从 gcode 文件中读取一些数据并对其进行一些计算。它几乎完成了,我遇到的最后两件事是:

1)我希望状态栏更新显示消息“文件[上传文件的名称]已上传”,在使用按钮上传gcode文件后。

2)我想为该程序制作可执行文件,以便它可以独立运行并在 Mac OS 和 Windows 上运行。我已经下载并安装了(我在 Mac 上)pyinstaller,我正在对我的 .py 文件执行一些操作,最终结果看起来像是准备好的应用程序,但它们不起作用。

提前感谢您的帮助和所有投入,我是 python 的新手,但我已经从您那里学到了很多东西。

这是用于测试的示例 gcode 文件:sample GCODE

这是代码:

0 投票
1 回答
519 浏览

javascript - 回车CNC G代码

我正在编写一个在 javascript 中导出 Gcode form illustrator 的插件。一切正常,除了当我将 gcode 加载到 CNC 软件上时,没有任何文本出现,因为它的格式错误。当我在文本编辑器中打开它时,它全部显示在一行上。当我在记事本++中打开它时,所有的回车都在那里,看起来还不错。我使用 \r\n 作为回车,我已经尝试过 \n\r 并且它仍然看起来相同。有谁知道我做错了什么?

0 投票
4 回答
14701 浏览

c - 给定两个点和半径找到圆心

我正在编写一个 G 代码解释器,当给定圆上的两个点和半径的 (X, Y) 时,我很难确定圆的中心。当给定中心硬币时,我可以从 2 个点绘制一个圆,但如果给出半径值,我不能将它用于中心点。

我查找了多个以不同形式的数学(微积分、几何、三角函数等)编写的示例,但无法将它们中的任何一个转换为代码。我的理解是给定的值会产生两个不同的中心/相交点。这些是我需要弄清楚的。

解释器在 Arduino 上运行并用 C 语言编写。如果有人甚至可以用伪代码引导我完成它,我将非常感激。

谢谢!

0 投票
0 回答
211 浏览

svg - Was SVG(Scalable Vector Graphics) created with G-CODE in mind?

As someone who has studied CNC (Computer Numerical Control), I was taught G-Code. When I opened an SVG file to apply certain compatibility changes to it, its path attribute reminded me of G-Code. Now, I get that both work with vectors and such, but is there any connection with the two?

0 投票
1 回答
371 浏览

c# - 从 G 代码计算拱门的 X-aixes Limmets

我正在尝试确定拱门的限制几天,但没有取得多大成功。我知道这更像是一个几何类型的问题而不是编程,但它就在这里。让我首先展示这张图片来详细说明我正在尝试的内容在 C# 中实现。 在此处输入图像描述

在上图中,您可以看到一条绿色弧线,我试图确定“最左边”点在 X 轴上的位置(最终是“最右边”,但为了简单起见,我将关注“左边” most' 点)这个图像在 X 轴上“最左”的答案是 5,注意:即使拱门的后掠角更大,答案仍然是 5,但如果后掠角小于,答案会更多比 5. 我正在从基于文本的 G 代码文件中读取此信息,这里是 G 代码文件中绘制的弧的示例。

第一行表示拱形的起点,在本例中是 X 10 和 Y 15。第二行表示终点、拱形中心点和旋转。G3 表示弓的逆时针旋转(G2 表示顺时针旋转)。X 和 Y 表示端点,I 和 J 是(分别为 X 和 Y)拱中心点值。我尝试的第一件事是看看我是否可以检测到拱穿过 180* 红色没有太多成功的线主要是因为当我尝试处理不同类型的坐标时,我似乎无法正确地进行角度计算。这是我无法完成的代码示例:

上面的代码仅适用于某些特定的弧。我在谷歌上搜索了一下,主要发现了关于线交点和线和圆交点的主题,但只有一个专门关于线与弧相交的主题,答案太模糊,无法确定这里应该发生的事情是链接

除此之外,还有一种类型的拱门,我认为可能必须通过某种 Pathegorem 进行不同的处理,但我还没有开始研究如何做到这一点。但这是它的图像:

在此处输入图像描述

这是G代码:

我认为“最左边”的 X 值为 25.4

我想知道,如果您知道可以帮助解决此问题的方法或库。谢谢

0 投票
2 回答
1494 浏览

c# - 检查结果中是否存在正则表达式组

我正在尝试从一行 gcode 中提取数据,它看起来像以下任何一种:

现在我已经创建了与组完美匹配的正则表达式:

这似乎工作得很好。我为每个结果得到三组数据,例如:

我想要做的是能够检查输入字符串中有哪些值,这样我就可以提取数据并发出位置命令。以上面的例子为例,我想只提取 X、Y 和 Z 值,以便创建它们的向量。当我拥有所有 3 个值时,这很容易做到,但是如果输入字符串为 ,我如何检查第一组中是否存在值G01 X10. Y5.0

0 投票
1 回答
1939 浏览

file-format - G 代码 - 将 Z 代码解密为 G 代码

我有一台您可能/可能不熟悉的 Zortrax m200 3d 打印机。它是封闭源代码,并使用自己的专有软件生成 Z 代码文件,该文件原则上应与 G 代码几乎相同。

我的好奇心已经开始,我想知道是否有办法解密 Z 代码文件或将 g 代码文件转换为 z 代码。怎么去调查这个?

这是一个 z 代码文件:
[ https://drive.google.com/file/d/0ByYqoSxe29qtS05UZlpDclBZNWs/view?usp=sharing][1]

0 投票
1 回答
2382 浏览

python - 逐行编辑 G 代码

我想逐行读取 ag 代码文件,并根据最后的注释,对其执行操作。g 代码来自 Slic3r。一些没有特定顺序的示例行如下所示:

注释始终以分号开头,并且使用一致的术语,例如周长或填充。理想情况下,脚本会读取该行,搜索特定的注释案例,基于此执行操作,然后更新文件,然后转到下一行。我对 python 有点陌生,所以我知道这将通过带有嵌套 if 语句的 for 循环来完成,但是我不确定如何设置架构以基于这些关键术语。