nicoaspra
remove streamlit.py
d554b02
raw
history blame
1.83 kB
# gcode_analyzer_ui.py
import gradio as gr
from python_gcode_checker import run_checks
from settings_report_details import generate_detailed_report
def analyze_gcode(gcode, depth_max=0.1):
errors, warnings = run_checks(gcode, depth_max)
error_count = len(errors)
warning_count = len(warnings)
config_report = generate_detailed_report(gcode)
return (
f"Errors: {error_count}\n\n{format_issues(errors)}",
f"Warnings: {warning_count}\n\n{format_issues(warnings)}",
config_report,
)
def format_issues(issues):
formatted = []
for line_num, message in issues:
if line_num > 0:
formatted.append(f"Line {line_num}: {message}")
else:
formatted.append(message)
return "\n".join(formatted)
# Create a Gradio Interface layout
app = gr.Interface(
fn=analyze_gcode,
inputs=[
gr.Textbox(lines=20, label="Input G-code", placeholder="Enter G-code here..."),
gr.Number(value=0.1, label="Maximum Depth of Cut"),
],
outputs=[
gr.Textbox(label="Errors", interactive=False),
gr.Textbox(label="Warnings", interactive=False),
gr.Textbox(label="Configuration Settings", interactive=False),
],
description="""
### G-code Programming Assistant (v0.1)
Welcome to the G-code Assistant! This tool is solely for educational purposes, helping you verify and analyze your G-code for potential errors and warnings before actually running it on your machine.
**Note:** This tool is limited to simple carving operations on a CNC milling machine.
This is a beta version, and you're free to use it for checking your G-codes. If you encounter any issues or unexpected behavior, please contact the developer at **nico.aspra@bicol-u.edu.ph**.
""",
)
app.launch()