From ab52721c7f1c69c3562a059ba3d810a169b7c5c0 Mon Sep 17 00:00:00 2001 From: Martin Hohenberg Date: Fri, 19 Jun 2026 10:56:21 +0200 Subject: [PATCH] Fix 3MF analysis: concatenate scene geometries instead of force="mesh" trimesh loads 3MF files as a Scene; force="mesh" fails on those. Detect Scene and concatenate all geometries before computing extents/volume. Co-Authored-By: Claude Sonnet 4.6 --- app/stl_analysis.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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(