From 8c6c1e10b3d536321aa8e10ff1006cda1ac91a84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joe=20K=C3=BCng?= Date: Mon, 16 Feb 2026 16:19:18 +0100 Subject: [PATCH] fix(back-end): fix process and new feature --- .../com/printcalculator/service/SlicerService.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/backend/src/main/java/com/printcalculator/service/SlicerService.java b/backend/src/main/java/com/printcalculator/service/SlicerService.java index 9961bbe..2e73f1c 100644 --- a/backend/src/main/java/com/printcalculator/service/SlicerService.java +++ b/backend/src/main/java/com/printcalculator/service/SlicerService.java @@ -55,10 +55,17 @@ public class SlicerService { if (machineProfile.has("bed_custom_texture")) machineProfile.put("bed_custom_texture", ""); machineProfile.remove("thumbnail"); - // OrcaSlicer si aspetta almeno un valore per bed_exclude_area. + // OrcaSlicer si aspetta un poligono valido per bed_exclude_area. // Alcuni profili BBL la sovrascrivono con [] e causano "Unable to create exclude triangles". - if (!machineProfile.has("bed_exclude_area") || machineProfile.get("bed_exclude_area").isEmpty()) { - machineProfile.putArray("bed_exclude_area").add("0x0"); + // Usiamo un quadrato minimo per rendere il poligono valido senza impattare la superficie utile. + if (!machineProfile.has("bed_exclude_area") + || !machineProfile.get("bed_exclude_area").isArray() + || machineProfile.get("bed_exclude_area").size() < 4) { + machineProfile.putArray("bed_exclude_area") + .add("0x0") + .add("1x0") + .add("1x1") + .add("0x1"); } Path baseTempPath = Paths.get("/app/temp");