jithenderchoudary commited on
Commit
146c59e
·
verified ·
1 Parent(s): 74a8e8f

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +52 -0
app.py ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import os
3
+
4
+ # Function to generate G-code based on user input
5
+ def generate_gcode(length, diameter, feed_rate):
6
+ """
7
+ Generates a simple G-code string based on user inputs.
8
+ """
9
+ gcode = []
10
+ gcode.append(f"(Generated G-code for length={length}, diameter={diameter}, feed_rate={feed_rate})")
11
+ gcode.append("G21 ; Set units to millimeters")
12
+ gcode.append("G90 ; Absolute positioning mode")
13
+ gcode.append("G17 ; Select XY plane")
14
+ gcode.append("M03 S1000 ; Start spindle at 1000 RPM")
15
+ gcode.append("G00 Z5.0 ; Move to safe height")
16
+ gcode.append(f"G00 X0 Y0 ; Move to start position")
17
+ gcode.append(f"G01 Z-1.0 F{feed_rate} ; Start cutting")
18
+ gcode.append(f"G01 X{length} F{feed_rate} ; Linear move along X-axis")
19
+ gcode.append(f"G01 Y{diameter} F{feed_rate} ; Linear move along Y-axis")
20
+ gcode.append("G00 Z5.0 ; Retract to safe height")
21
+ gcode.append("M05 ; Stop spindle")
22
+ gcode.append("M30 ; End of program")
23
+ return "\n".join(gcode)
24
+
25
+ # Gradio UI setup
26
+ def main_interface(length, diameter, feed_rate):
27
+ gcode = generate_gcode(length, diameter, feed_rate)
28
+ return gcode
29
+
30
+ # Create Gradio Interface
31
+ inputs = [
32
+ gr.Number(label="Length (mm)", value=50),
33
+ gr.Number(label="Diameter (mm)", value=20),
34
+ gr.Number(label="Feed Rate (mm/min)", value=100)
35
+ ]
36
+
37
+ outputs = gr.Textbox(label="Generated G-code", lines=20)
38
+
39
+ title = "CNC G-code Generator"
40
+ description = "Enter the desired length, diameter, and feed rate to generate a basic G-code file."
41
+
42
+ demo = gr.Interface(
43
+ fn=main_interface,
44
+ inputs=inputs,
45
+ outputs=outputs,
46
+ title=title,
47
+ description=description
48
+ )
49
+
50
+ # Launch the app
51
+ if __name__ == "__main__":
52
+ demo.launch()