45 lines
1.3 KiB
Python
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)) |