File size: 1,672 Bytes
9c3961c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
from modules.cad_generation import create_cad_model
from modules.simulation import run_simulation
from modules.toolpath_generation import generate_gcode
from modules.visualization import plot_simulation_results

def demo_workflow(dimensions, tolerances, materials, script_file, model_file):
    # Step 1: Generate CAD Model
    cad_result = create_cad_model(float(dimensions))
    
    # Step 2: Run Simulation
    sim_result = run_simulation(script_file.name)
    
    # Step 3: Generate G-Code for CNC
    gcode_result = generate_gcode(model_file.name)
    
    # Step 4: Visualize Results (Mock Data for Demo)
    visualization = plot_simulation_results({"stress": [10, 20, 30], "strain": [0.1, 0.2, 0.3]})
    
    # Consolidate Results
    return f"""
    Workflow Completed:
    CAD Model: {cad_result}
    Simulation: {sim_result}
    G-Code: {gcode_result}
    """, visualization

# Gradio Interface
interface = gr.Interface(
    demo_workflow,
    inputs=[
        gr.Textbox(label="Dimensions (e.g., 10)", placeholder="Enter dimensions in mm"),
        gr.Textbox(label="Tolerances", placeholder="Enter tolerances in mm"),
        gr.Textbox(label="Materials", placeholder="Enter material type (e.g., Aluminum)"),
        gr.File(label="Simulation Script (APDL File)"),
        gr.File(label="CAD Model File (SCAD File)"),
    ],
    outputs=[
        gr.Textbox(label="Workflow Summary"),
        gr.Image(label="Simulation Visualization"),
    ],
    title="Advanced Automation Workflow Demo",
    description="This demo showcases CAD generation, simulation, and CNC G-Code generation."
)

if __name__ == "__main__":
    interface.launch()