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

editor - 如何向 NotepadQQ 添加自定义编程语言?

在 NotepadQQ 中,我想添加 G 代码和 PLC(FBD、LD、ST、IL 和 SFC)编程语言定义/语法代码突出显示。用户可以这样做吗?它是如何完成的?我找到了一篇关于如何添加语言的帖子 https://github.com/notepadqq/notepadqq/issues/164 但这有点超出我的知识库。这是帖子的要点:

无法将 XML 从 Notepad++ 迁移到 Notepadqq。它们是完全不同的格式。最好的方法是从头开始编写。

这是编写模式的 CodeMirror 文档(又名语法荧光笔)

这是一个由 Notepadqq 贡献者编写的 makefile 语法突出显示的示例

创建这样的makefile似乎需要一些格式化语言的知识。而且我看不到如何在我的计算机上将其实现到 notepadqq 中。

0 投票
1 回答
52 浏览

python - Python 在初始化时继承

我试图根据用户在创建时的请求在初始化时从不同类继承例程。我的示例是用于读取/操作/保存 g 代码文本文件的 CNCFile 类。创建时,用户输入目标机器的类型(Fanuc、Okuma、Mitsubishi 等)。由于所有这些机器都有不同的方式来处理文件中的子程序名称和子调用,因此我需要为每台机器编写单独的类/函数。

这是执行我想要的代码的示例。它只是看起来很乱。

我最终不得不围绕目标机器的例程编写一个包装函数,这看起来很尴尬。

稍后我还会在 CNCFile 中看到 FanucFile/OkumaFile,但我不确定这是否是我想要的。

我尝试将 CNCFile 调用继承到 FanucFile 或 OkumaFile 类中,但是当 FanucFile 或 OkumaFile 类持有大量数据时,在 CNCFile 中编写保存文件例程时会变得混乱。

我应该看 super(), 元类吗?

感谢您的任何建议。

0 投票
0 回答
234 浏览

javascript - javascript:以自适应方式在 svg 路径上分配点

我在 Processing 上工作了多年,现在我正在 js/node 上“迁移”。我过去一直在做的事情是 g 代码生成。现在,我现在对 vanilla js 以及主库上的 svg 实现有点熟悉了,对我来说非常重要的一点是在线获取点(显然可能只是在路径上,但我可以将所有内容转换为路径) . 无论如何,我仍然无法做的事情,这是在处理中非常容易的事情,使用几何。

我的意思是以更有效的方式将形状转换为多边形:据我所知,只有使用我尝试过的 js 工具才能获得一定长度的点,所以你将总长度除以步数你想要,你得到一个数组。

但是在一条直线上你只需要两端,并且在半径较小的曲线上点分布需要更高。我想知道是否有人知道以这种方式获得积分的方法,例如在 Geomerative 中,您可以使用 Polygonizer 自适应选项。

谢谢!

0 投票
1 回答
3575 浏览

python - 解析gcode文件以提取坐标

我有一个充满文本的 gcode 文件,更具体地为机器协调。我正在尝试读取文件,删除无用的信息,以便在将它们发送到机器之前对协调器执行操作。

到目前为止,我有:

现在我有一个文件中所有行的列表,我应该如何继续获取相关的 X 和 Y 坐标?

TestCube.gcode 示例:

编辑:

0 投票
2 回答
540 浏览

vbscript - 替换两个字符串之间的某个字符串的实例

我正在尝试创建一个 VBScript 来查找和替换位于两个字符串之间的某个字符串。这是脚本将在其上执行的文件的示例:

所以在这个特定的代码中有两个 Tapping 操作。我正在尝试制作一个看起来介于Tapper 0.250000和之间的脚本M845,并将 的所有实例替换E10.为基于 中的数字的变量Tapper 0.250000

因此,例如,假设Tapper 0.250000后面有一些 X 行M845,这两者之间发生的E10.'s 需要替换为E0.250000. 如果还有其他攻丝操作,例如在 Tapper 和 M845 之间Tapper 0.750000E10.'s 需要替换为E0.787

到目前为止,这是我的 VBScript:

0 投票
1 回答
847 浏览

python - 用于将 plt 文件转换为具有特定格式的 gcode 的 Python 代码

我想将一组坐标从一种文件格式转换为另一种。它适用于绘图机,例如绘图仪。第一个文件是一个 plt 文件,如下所示:

PU-3410,7784;PD-3373,-2281;PU16705,7978;PD16435,5325; (继续数千个坐标)

我想将它转换为另一个具有这种格式的文本文件:

G01 X-3410 Y7784 Z1000
G01 X-3373 Y-2281 Z0
G01 X16705 Y7978 Z1000
G01 X-16435 Y5325 Z0

PU 表示 Pen Up(=Gcode 中的 Z1000),PD 表示 Pen Down(Z0)。我对 python 很陌生,我只知道如何为 Arduino 编写代码。这段代码会很有帮助。我试图了解如何打开和写入文件,但我对这个项目太新手了,所以我想我会寻求帮助而不是放弃。非常感谢任何帮助!干杯,皮埃尔

0 投票
1 回答
698 浏览

c++ - QtSerialPort 未写入串行端口

我正在尝试使用 QtSerialPort 将 Gcode 命令发送到 3d 打印机。我能够连接并读取打印机发出的启动 gcode,但我无法编写 Gcode 来让打印机执行某些操作。我已经阅读了很多人的代码,据我所知,我的代码看起来并没有错,但我肯定错过了一些东西。

这是我用来连接到 3d 打印机的:

这是我要写入串行端口的内容:

这没有给我任何错误,但打印机没有反应。我尝试了 Qt 串行控制台示例并发出“G28”,打印机反应正确。在同一个程序上,我添加了一个执行上述代码以编写命令的按钮,但它什么也没做。这告诉我问题可能出在我如何写入端口上。有人对我做错了什么有任何想法吗?提前致谢。

0 投票
0 回答
908 浏览

arduino-uno - Arduino 绘图错误“命令无法识别”m18 (GRBL + G-CODE)

我是 Arduino 的新手,我正在为我在学校的最终设计项目创建一个名为 (DIY CNC PLOTTER) 的项目,以下是我目前正在使用的部件列表。

硬件: 1 Arduino Uno v3 1 L923D Shield 2 DVD 步进电机 1 Micro Servo S90 电机 1 12V 和 5V 电源(这是由 PC 电源制成,但我只使用 5V)

软件:

  1. 加载器
  2. 连接到 UGS 的 GRBL 1.1 十六进制文件(这对我来说从来没有用过)
  3. 连接到 UGS 的 GRBL 0.8 Hex 文件(这对我没有用)
  4. UGS(从低版本到高版本完全没有反应)
  5. 处理 3.3(这对我来说很好,但它的功能非常有限)
  6. GCTRL(上下左右箭头无反应)
  7. Inkscape(工作正常)

错误:

M18(开走)

命令无法识别:m18

截至目前,这是我目前在绘图过程中遇到的错误。我日夜在互联网上搜索,希望能找到这个问题的答案,但我读得越多,我就越困惑。但我在一些帖子中读到问题是 GBRL 代码不支持 M18 和 M17 G 代码,所以有什么方法可以调整 GRBL 代码以删除添加 M18 和 M17 以使其工作?

我看了很多教程,并按照相同的过程使用如何刷 Arduino,但仍然没有运气,我希望你们能帮助我解决这个问题。

0 投票
0 回答
174 浏览

java - 使用 Java 将 GCode 作为字符串发送

使用 jssc 库编写一个简单的程序以通过 Java 发送 GCode。尝试了以下没有成功

  • serialPort.writeString("G01 X1 Y1 Z1")
  • serialPort.writeString("%G01 X1 Y1 Z1%")
  • serialPort.writeString("%") serialPort.writeString("G01 X1 Y1 Z1") serialPort.writeString("%")

我能够打开/关闭端口(可以听到机器发出的脉冲),但机器不会对发送的 Gcode 做出反应。需要帮忙。

问候,杰

0 投票
1 回答
2096 浏览

java - 将字符串文本转换为 GCode

我需要创建一个应用程序(使用 Android Studio)来生成 CNC 代码来操作 3D 打印机。它需要一个字符串作为输入。

我在 Python 和 Javascript 中找到了几个可以执行此操作的库,但是由于我没有时间将整个库转换为 Java,您能推荐任何可以为我执行此操作的库吗?如果没有开源选项,你能推荐任何指南来帮助我开发这个转换器吗?