jithenderchoudary commited on
Commit
d58c03f
·
verified ·
1 Parent(s): 4cb7b30

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -10
app.py CHANGED
@@ -4,7 +4,6 @@ import gradio as gr
4
  import cadquery as cq
5
  from cadquery import exporters
6
  import trimesh
7
- import pyvista as pv
8
  from io import BytesIO
9
  import json
10
  import atexit
@@ -22,17 +21,17 @@ def cleanup_temp_files():
22
  atexit.register(cleanup_temp_files)
23
 
24
  # Define 2D and 3D view generation functions with error handling
25
- def generate_2d_view(step_file):
26
  try:
27
- model = cq.importers.importStep(step_file.name)
28
  two_d_image = model.toSvg()
29
  return two_d_image
30
  except Exception as e:
31
  return f"Error generating 2D view: {str(e)}"
32
 
33
- def generate_3d_view(step_file):
34
  try:
35
- model = cq.importers.importStep(step_file.name)
36
  mesh = trimesh.Trimesh(vertices=model.val().vertices(), faces=model.val().faces())
37
  three_d_image = mesh.show()
38
  return three_d_image
@@ -40,14 +39,29 @@ def generate_3d_view(step_file):
40
  return f"Error generating 3D view: {str(e)}"
41
 
42
  # Wrapper function to generate views
43
- def generate_views(step_file):
44
  try:
45
- two_d_view = generate_2d_view(step_file)
46
- three_d_view = generate_3d_view(step_file)
47
  return two_d_view, three_d_view
48
  except Exception as e:
49
  return f"Error: {str(e)}", None
50
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  # APDL script generation
52
  def generate_apdl_script(file, press_force, material_json):
53
  try:
@@ -57,7 +71,7 @@ def generate_apdl_script(file, press_force, material_json):
57
 
58
  # Use temporary file path for processing
59
  step_file_path = file.name
60
- model = cq.importers.importStep(step_file_path)
61
 
62
  stl_file = step_file_path.replace(".stp", ".stl")
63
  exporters.export(model, stl_file)
@@ -100,7 +114,10 @@ def main():
100
  gr.Markdown("# Press Tool Design and APDL Script Generator")
101
 
102
  with gr.Row():
103
- step_input = gr.File(label="Upload STEP File")
 
 
 
104
 
105
  with gr.Row():
106
  two_d_output = gr.Textbox(label="2D View/Error Message", interactive=False)
 
4
  import cadquery as cq
5
  from cadquery import exporters
6
  import trimesh
 
7
  from io import BytesIO
8
  import json
9
  import atexit
 
21
  atexit.register(cleanup_temp_files)
22
 
23
  # Define 2D and 3D view generation functions with error handling
24
+ def generate_2d_view(file):
25
  try:
26
+ model = process_cad_file(file)
27
  two_d_image = model.toSvg()
28
  return two_d_image
29
  except Exception as e:
30
  return f"Error generating 2D view: {str(e)}"
31
 
32
+ def generate_3d_view(file):
33
  try:
34
+ model = process_cad_file(file)
35
  mesh = trimesh.Trimesh(vertices=model.val().vertices(), faces=model.val().faces())
36
  three_d_image = mesh.show()
37
  return three_d_image
 
39
  return f"Error generating 3D view: {str(e)}"
40
 
41
  # Wrapper function to generate views
42
+ def generate_views(file):
43
  try:
44
+ two_d_view = generate_2d_view(file)
45
+ three_d_view = generate_3d_view(file)
46
  return two_d_view, three_d_view
47
  except Exception as e:
48
  return f"Error: {str(e)}", None
49
 
50
+ # Function to process different CAD file formats
51
+ def process_cad_file(file):
52
+ file_extension = os.path.splitext(file.name)[-1].lower()
53
+ if file_extension in [".stp", ".step"]:
54
+ model = cq.importers.importStep(file.name)
55
+ elif file_extension in [".iges", ".igs"]:
56
+ model = cq.importers.importStep(file.name) # Same as STEP for cadquery
57
+ elif file_extension == ".sldprt":
58
+ raise NotImplementedError("SLDPRT support is not yet implemented.")
59
+ elif file_extension == ".dwg":
60
+ raise NotImplementedError("DWG support is not yet implemented.")
61
+ else:
62
+ raise ValueError(f"Unsupported file format: {file_extension}")
63
+ return model
64
+
65
  # APDL script generation
66
  def generate_apdl_script(file, press_force, material_json):
67
  try:
 
71
 
72
  # Use temporary file path for processing
73
  step_file_path = file.name
74
+ model = process_cad_file(file)
75
 
76
  stl_file = step_file_path.replace(".stp", ".stl")
77
  exporters.export(model, stl_file)
 
114
  gr.Markdown("# Press Tool Design and APDL Script Generator")
115
 
116
  with gr.Row():
117
+ step_input = gr.File(
118
+ label="Upload CAD File",
119
+ file_types=[".stp", ".step", ".iges", ".igs", ".sldprt", ".dwg"]
120
+ )
121
 
122
  with gr.Row():
123
  two_d_output = gr.Textbox(label="2D View/Error Message", interactive=False)