cnctog-code4 / app.py
prudhviLatha's picture
Create app.py
4640fcc verified
import gradio as gr
def generate_gcode(diameter, length, radius1, radius2):
"""
Generates CNC G-code based on input parameters.
"""
gcode = f"""%
O1000 (CNC PROGRAM FOR TURNED PART)
G21 (Units in mm)
G28 U0 W0 (Home Position)
G50 S1500 (Max RPM)
G96 S200 M03 (Spindle ON with Constant Surface Speed)
(START TURNING PROFILE)
G00 X{diameter + 5.0} Z5.0
G01 Z0.0 F0.25
G01 X0.0 F0.25
(ROUGH TURNING OPERATION)
G00 X{diameter + 5.0} Z2.0
G01 Z0.0 F0.25
G01 X{diameter} Z-2.0
G02 X{diameter - 2.5} Z-2.75 R{radius1}
G01 X{diameter - 2.5} Z-4.125
G02 X{diameter - 5.0} Z-5.0 R{radius2}
G01 X{diameter - 5.0} Z-{length}
(END OF OPERATION)
G00 X{diameter + 5.0} Z5.0
G28 U0 W0
M30
%
"""
return gcode
# Gradio interface
with gr.Blocks() as app:
gr.Markdown("# CNC G-Code Generator for Turned Parts")
gr.Markdown("Input your dimensions to generate G-Code:")
with gr.Row():
diameter_input = gr.Number(label="Diameter (mm)", value=50)
length_input = gr.Number(label="Length (mm)", value=30)
radius1_input = gr.Number(label="Radius R1 (mm)", value=2.5)
radius2_input = gr.Number(label="Radius R2 (mm)", value=1.25)
generate_button = gr.Button("Generate G-Code")
gcode_output = gr.Textbox(label="Generated G-Code", lines=20)
generate_button.click(
generate_gcode,
inputs=[diameter_input, length_input, radius1_input, radius2_input],
outputs=gcode_output
)
app.launch()