diff --git a/app/stl_analysis.py b/app/stl_analysis.py index e18e683..2a0a33f 100644 --- a/app/stl_analysis.py +++ b/app/stl_analysis.py @@ -23,7 +23,11 @@ def analyse(filename: str, db: Session) -> StlCache | None: try: import trimesh - mesh = trimesh.load(str(filepath), force="mesh") + loaded = trimesh.load(str(filepath)) + if isinstance(loaded, trimesh.Scene): + mesh = trimesh.util.concatenate(list(loaded.geometry.values())) + else: + mesh = loaded extents = mesh.extents # [size_x, size_y, size_z] in mm volume_mm3 = abs(mesh.volume) # mm³ (negative for inverted normals) entry = StlCache(