matlab 生成gcode文件,解析gcode文件以提取坐标

Regex似乎能做到这一点:import re

gcode = [

';TYPE:SKIN',

'G1 F1200 X-9.914 Y-9.843 E3.36222',

'G0 F9000 X-9.843 Y-9.914',

'G1 F1200 X9.914 Y9.843 E3.65844',

'G0 F9000 X9.914 Y9.702',

'G1 F1200 X-9.702 Y-9.914 E3.95254',

'G0 F9000 X-9.560 Y-9.914',

'G1 F1200 X9.914 Y9.560 E4.24451',

'G0 F9000 X9.914 Y9.419',

'G1 F1200 X-9.419 Y-9.914 E4.53437',

'G0 F9000 X-9.277 Y-9.914',

'G1 F1200 X9.914 Y9.277 E4.82211',

'G0 F9000 X9.914 Y9.136',

'G1 F1200 X-9.136 Y-9.914 E5.10772',

'G0 F9000 X-8.995 Y-9.914',

'G1 F1200 X9.914 Y8.995 E5.39123',

'G0 F9000 X9.914 Y8.853',

'G1 F1200 X-8.853 Y-9.914 E5.67260'

]

for line in gcode:

coord = re.findall(r'[XY]-\d.\d\d\d', line)

if coord:

print("{} - {}".format(coord[0], coord[1]))

结果:

^{pr2}$

编辑:

请尝试以下操作。我已将您的代码与我提供的示例进行了集成,并进行了一些调整:import re

with open('PI_25mm_cube.gcode') as gcode:

for line in gcode:

line = line.strip()

coord = re.findall(r'[XY].?\d+.\d+', line)

if coord:

print("{} - {}".format(coord[0], coord[1]))

通过将open替换为with,它可以防止您忘记close()文件,并降低引起任何内存问题的风险,正如我所理解的那样。在

由于不清楚您的代码是否将用于其他gcode文件,我的初始regex可能不适合。{a1使用提供的gci}创建了坐标。基于此信息,您可能会发现'[XY].?\d+.\d+'模式更有用。Regex101是测试这些功能的好网站

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值