0

我正在研究一个计算机科学项目,它是一个 CNC 绘图仪,基本上我看到的所有获取 Gcode 的方法都使用 Inkscape。我已经编写了将普通图像仅转换为黑白边缘的软件,并且我已经从图像中提取了坐标。有什么方法可以使用 X,Y 坐标生成 Gcode 吗?还是我必须使用 Inkscape。

4

2 回答 2

2

GCode 只是调用的指令,您可以在其中传递参数。

机器将一一执行 Gcode 并解释它以移动他的电机或根据他的固件进行调节。

因此,如果您想在 python 中创建 Gcode,只需创建一个 txt 文件并附加命令即可。

您需要首先获得您机器的 Gcode 可用说明(此处为 InkScape)。

例如在马林

G1 X90.6 Y13.8 ; move to 90.6mm on the X axis and 13.8mm on the Y axis

要在 python 中获取此文件:

positions = [  # Get your datas of format them like this:
    [90.6, 13.8],  # Point 1 [x, y]
    [10.6, 3.98]
]
with open("myGCode.gcode", "w") as f:
    for x, y in positions:
        f.write(f"G1 X{x} Y{y} ;\n")

文件创建内容:

G1 X90.6 Y13.8 ;
G1 X10.6 Y3.98 ;
于 2021-12-13T10:19:54.357 回答
0

这确实取决于机器及其控制器,但大多数时候,像 G1 或 G01 这样的线性插补通常只需要指定一次,比如

G01 X1.0 Y2.0;

然后它的线性插值已经启用,所以它可以

X1.0 Y3.0;
...

直到你想回到快速移动的点(G0 G00)

或圆弧插补 (G02, G03)

但是,在切换到特定插值一次后,通常只有坐标就足够了。

然而,我假设它用于简单的铣削,而最近的铣床(我接受过 Haas 培训)具有一些花哨的口袋功能,您只需指定几个轮廓的关键点,它们就可以在数学上扣除。

看到你的程序从照片中获取轮廓会很有趣。

但是指定每组坐标之间的插值类型也是可以的,只是它可能会使代码的可读性稍微困难一些。

于 2021-12-17T10:17:56.650 回答