jithenderchoudary commited on
Commit
9400a0f
·
verified ·
1 Parent(s): f7ea67c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -8
app.py CHANGED
@@ -46,20 +46,27 @@ atexit.register(cleanup_temp_files)
46
  # Generate 2D View
47
  def generate_2d_view(file):
48
  try:
 
49
  model = process_cad_file(file)
 
 
50
  svg_content = model.toSvg()
51
-
52
- # Save SVG to a temporary file
53
  svg_path = "/tmp/2d_view.svg"
54
  with open(svg_path, "w") as svg_file:
55
  svg_file.write(svg_content)
 
 
56
  return svg_path
57
  except Exception as e:
58
- return f"Error generating 2D view: {str(e)}"
 
 
 
59
 
60
  # Generate 3D View
61
  def generate_3d_view(file):
62
  try:
 
63
  model = cq.importers.importStep(file.name)
64
 
65
  # Extract solids
@@ -67,22 +74,25 @@ def generate_3d_view(file):
67
  if not solids:
68
  raise ValueError("No solids found in the CAD model.")
69
 
 
70
  vertices = []
71
  faces = []
72
  for solid in solids:
73
- for face in solid.tessellate(tolerance=0.01): # Tolerance for tessellation
74
  vertices.extend(face[0])
75
  faces.extend([[face[1][i], face[1][i + 1], face[1][i + 2]] for i in range(0, len(face[1]), 3)])
76
 
77
- # Generate trimesh mesh
78
  mesh = trimesh.Trimesh(vertices=vertices, faces=faces)
79
-
80
- # Save mesh as OBJ file
81
  obj_path = "/tmp/3d_view.obj"
82
  mesh.export(obj_path)
 
 
83
  return obj_path
84
  except Exception as e:
85
- return f"Error generating 3D view: {str(e)}"
 
 
 
86
 
87
  # Wrapper to generate both 2D and 3D views
88
  def generate_views(file):
 
46
  # Generate 2D View
47
  def generate_2d_view(file):
48
  try:
49
+ # Process CAD file
50
  model = process_cad_file(file)
51
+
52
+ # Generate 2D SVG
53
  svg_content = model.toSvg()
 
 
54
  svg_path = "/tmp/2d_view.svg"
55
  with open(svg_path, "w") as svg_file:
56
  svg_file.write(svg_content)
57
+
58
+ print(f"2D View successfully generated: {svg_path}")
59
  return svg_path
60
  except Exception as e:
61
+ error_message = f"Error generating 2D view: {str(e)}"
62
+ print(error_message) # Log error details
63
+ return error_message
64
+
65
 
66
  # Generate 3D View
67
  def generate_3d_view(file):
68
  try:
69
+ # Import CAD file
70
  model = cq.importers.importStep(file.name)
71
 
72
  # Extract solids
 
74
  if not solids:
75
  raise ValueError("No solids found in the CAD model.")
76
 
77
+ # Tessellate and generate 3D mesh
78
  vertices = []
79
  faces = []
80
  for solid in solids:
81
+ for face in solid.tessellate(tolerance=0.1): # Increase tolerance for simpler tessellation
82
  vertices.extend(face[0])
83
  faces.extend([[face[1][i], face[1][i + 1], face[1][i + 2]] for i in range(0, len(face[1]), 3)])
84
 
 
85
  mesh = trimesh.Trimesh(vertices=vertices, faces=faces)
 
 
86
  obj_path = "/tmp/3d_view.obj"
87
  mesh.export(obj_path)
88
+
89
+ print(f"3D View successfully generated: {obj_path}")
90
  return obj_path
91
  except Exception as e:
92
+ error_message = f"Error generating 3D view: {str(e)}"
93
+ print(error_message) # Log error details
94
+ return error_message
95
+
96
 
97
  # Wrapper to generate both 2D and 3D views
98
  def generate_views(file):