22 lines
678 B
Python
22 lines
678 B
Python
|
|
class GCodeParser():
|
|
def __init__(self, gcode_file):
|
|
self.gcode_file = gcode_file
|
|
self.lines = []
|
|
self.parse_gcode()
|
|
|
|
def parse_gcode(self):
|
|
from pygcode import Line, Machine
|
|
machine = Machine()
|
|
positions = []
|
|
with open(self.gcode_file, "r") as gcode_file:
|
|
for line_text in gcode_file:
|
|
line = Line(line_text)
|
|
if line.block.gcodes:
|
|
machine.process_gcodes(*line.block.gcodes)
|
|
positions.append((machine.pos.X, machine.pos.Y, machine.pos.Z))
|
|
self.lines = positions
|
|
|
|
def get_positions(self):
|
|
return self.lines
|