modbus_test/prepare.py

45 lines
1.3 KiB
Python

import glob
all_files = glob.glob("data/*.NC")
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
result = []
for l in lines:
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
result.append(('line',x,y,z))
if type in ['G02', 'G03']:
pass
# print(args)
with open(f"{file}.result", 'w') as fp:
fp.write('\n'.join(','.join(str(i) for i in x) for x in result))