|
|
|
|
|
|
|
|
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) |
|
|
|
|
|
|
|
|
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() |