Automating tasks

Python g-code sender

Automating tasks can be done with Python script. Below is script example to send commands provided in text file:

import time
import os
from tqdm import tqdm
import serial
import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-p','--port', help='COM port', required=True)
parser.add_argument('-f','--file', help='File name', required=True)
args = parser.parse_args()

ser = serial.Serial()
ser.port = str(args.port)
ser.baudrate = 115200
ser.timeout = 10
ser.open()
ser.flushInput()
ser.flushOutput()

print("Reading file...")
lines = []
with open(args.file) as fp:
   for cnt, line in enumerate(fp):
       lines.append(line)

print("Sleeping 1s...")
time.sleep(1)

for line in tqdm(lines):
    l = bytes(line.strip()+ '\n', 'utf8')
    ser.write(l)
    grbl_out = ser.readline()

Text file example:

G91

M7

M8
G1 X45 F20000
M9
G1 X45 F20000

M8
G1 X45 F20000
M9
G1 X45 F20000

M8
G1 X45 F20000
M9
G1 X45 F20000

M8
G1 X45 F20000
M9
G1 X45 F20000

G90