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