
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
import plotly.express as px
import pandas as pd
import re
from io import StringIO
def extract_range(line):
values = re.findall(r"[-+]?\d*\.\d+|\d+", line)
if len(values) >= 2:
return [float(values[0]), float(values[1])]
else:
raise ValueError(f"Could not extract range from line: {line}")
def draw_gcode(file_name):
with open(file_name, "r") as f:
data = f.read()
# Extracting necessary info from the first 9 lines
info_lines = data.split('"X,Y,Z,G,M,S,F"')[0].split('\n')
name = info_lines[2].split('=')[1].strip()
# Using the function to extract the ranges
x_range = extract_range(info_lines[6]) # Corrected index
y_range = extract_range(info_lines[7]) # Corrected index
z_range = extract_range(info_lines[8]) # Corrected index
# Parsing the coordinate data
data_coords = data.split('"X,Y,Z,G,M,S,F"')[1].strip()
# The data was refined, but he made a mistake of... putting all in a string.
df = pd.read_csv(StringIO(data_coords), delimiter=',', names=['X', 'Y', 'Z', 'G', 'M', 'S', 'F'])
# Visualizing using Plotly
fig = px.scatter_3d(df, x='X', y='Y', z='Z', color='M',
title=name,
range_x=x_range,
range_y=y_range,
range_z=z_range,
size_max=8,
opacity=0.3)
fig.update_traces(marker=dict(size=1))
fig.show()
if __name__ == "__main__":
file_name = "/home/juni/PycharmProjects/failure_analysis/data/ncdata/cleaned/26.csv"
draw_gcode(file_name)