File size: 2,222 Bytes
13b4e72 b5a4200 0664784 13b4e72 b5a4200 0664784 b5a4200 13b4e72 b5a4200 0664784 b5a4200 0664784 b5a4200 0664784 b5a4200 0664784 b5a4200 13b4e72 b5a4200 13b4e72 b5a4200 13b4e72 b5a4200 13b4e72 b5a4200 13b4e72 b5a4200 13b4e72 b5a4200 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# app.py
import streamlit as st
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)
config_report = generate_detailed_report(gcode)
return errors, 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) # No "Line 0" for general warnings/errors
return formatted
# Streamlit UI
st.title("G-code Programming Assistant (v0.1)")
st.markdown("""
Welcome to the G-code Assistant! This tool helps you verify and analyze your G-code for potential errors and warnings before 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**.
""")
# Input for maximum depth of cut
depth_max = st.number_input("Maximum Depth of Cut", min_value=0.0, value=0.1, step=0.1, format="%.1f")
# Text area for G-code input
gcode_input = st.text_area("Input G-code", height=300, placeholder="Enter G-code here...")
# Button to analyze G-code
if st.button("Analyze G-code"):
# Run analysis
errors, warnings, config_report = analyze_gcode(gcode_input, depth_max)
# Display Errors with count in the subheader
st.subheader(f"Errors ({len(errors)})")
if errors:
for message in format_issues(errors):
st.error(message)
else:
st.success("No errors found.")
# Display Warnings with count in the subheader
st.subheader(f"Warnings ({len(warnings)})")
if warnings:
for message in format_issues(warnings):
st.warning(message)
else:
st.info("No warnings found.")
# Display Configuration Settings
st.subheader("Configuration Settings")
st.text(config_report)
# Footer
st.markdown("---")
st.markdown("Developed by **Aspra, N.**") |