Analyse STL/3MF on upload: bounding box + volume, cached in stl_cache

- StlCache model: filename, cube_x/y/z (mm), volume_ccm
- Migration 0007: stl_cache table
- app/stl_analysis.py: trimesh-based analyse() + get_cache_map()
  - Runs immediately after upload in both /jobs and /brackets/{id}/jobs
  - Skips .gcode (no geometry), caches per filename, idempotent
- Library selector in both modals now shows dimensions and volume
- requirements: trimesh==4.5.3

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Martin Hohenberg
2026-06-18 22:04:11 +02:00
parent ccf6a64787
commit 4c7acb1c52
8 changed files with 116 additions and 5 deletions

View File

@@ -7,6 +7,7 @@ from app.models.print_job import PrintJob
from app.models.printer import Printer
from app.models.printer_log import PrinterLog
from app.models.printer_type import PrinterType
from app.models.stl_cache import StlCache
from app.models.todo import Todo
__all__ = ["Base", "Printer", "PrinterLog", "PrinterType", "Filament", "JobBracket", "JobLog", "PrintJob", "Todo", "PricingConfig"]
__all__ = ["Base", "Printer", "PrinterLog", "PrinterType", "Filament", "JobBracket", "JobLog", "PrintJob", "StlCache", "Todo", "PricingConfig"]