Spaces:
Sleeping
Sleeping
| 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() | |