41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
import glob
|
|
|
|
all_files = glob.glob("data/*")
|
|
file = all_files[0]
|
|
|
|
def get_value(c, s):
|
|
[x] = [item.replace(s, '') for item in c if item.startswith(s)] or [0]
|
|
return float(x)
|
|
|
|
with open(file, 'r') as fp:
|
|
lines = fp.readlines()
|
|
# print(lines)
|
|
prev_x = None
|
|
prev_y = None
|
|
prev_z = None
|
|
for l in lines[:100]:
|
|
data = l.strip().split(' ')
|
|
if len(data) > 3 and data[1] in ['G01', 'G02', 'G03']:
|
|
_, type, *args = data
|
|
if type in ['G01']:
|
|
parse_x = get_value(args, 'X')
|
|
parse_y = get_value(args, 'Y')
|
|
parse_z = get_value(args, 'Z')
|
|
|
|
if not prev_x: prev_x = parse_x
|
|
if not prev_y: prev_y = parse_y
|
|
if not prev_z: prev_z = parse_z
|
|
|
|
x = prev_x - parse_x
|
|
y = prev_y - parse_y
|
|
z = prev_z - parse_z
|
|
|
|
prev_x = parse_x
|
|
prev_y = parse_y
|
|
prev_z = parse_z
|
|
|
|
print('line',x,y,z)
|
|
if type in ['G02', 'G03']:
|
|
pass
|
|
# print(args)
|
|
|