fixed cad area and added dfx

This commit is contained in:
2026-07-06 11:06:33 +02:00
parent 376252e263
commit db6e73bde5
6 changed files with 2679 additions and 94 deletions
+52 -1
View File
@@ -50,6 +50,7 @@ try {
$outerPolygon = $input['manual_polygon'] ?? null;
$holes = $input['manual_holes'] ?? [];
$roi = $input['roi'] ?? null;
$dxfContent = isset($input['dxf_content']) ? (string)$input['dxf_content'] : '';
if ($areaMm2 <= 0) {
jsonResponse([
@@ -106,6 +107,43 @@ try {
$manualHolesJson = json_encode($holes);
$dxfFilename = null;
$dxfUrl = null;
if ($dxfContent !== '') {
if (strlen($dxfContent) > 5 * 1024 * 1024) {
jsonResponse([
'success' => false,
'message' => 'DXF troppo grande.'
]);
}
if (strpos($dxfContent, 'SECTION') === false || strpos($dxfContent, 'EOF') === false) {
jsonResponse([
'success' => false,
'message' => 'Contenuto DXF non valido.'
]);
}
$dxfDir = __DIR__ . '/uploads/cad_area/dxf/';
if (!is_dir($dxfDir)) {
mkdir($dxfDir, 0755, true);
}
$dxfFilename = 'profilo_' . $id . '_' . date('Ymd_His') . '_' . bin2hex(random_bytes(4)) . '.dxf';
if (file_put_contents($dxfDir . $dxfFilename, $dxfContent) === false) {
jsonResponse([
'success' => false,
'message' => 'Impossibile salvare il file DXF sul server.'
]);
}
$dxfUrl = 'uploads/cad_area/dxf/' . $dxfFilename;
}
$roiX = null;
$roiY = null;
$roiW = null;
@@ -152,6 +190,9 @@ try {
manual_holes_json = ?,
manual_status = 'completed',
dxf_filename = COALESCE(?, dxf_filename),
dxf_url = COALESCE(?, dxf_url),
scale_used = ?,
scale_detected = ?,
confidence = 'manual_validated',
@@ -188,6 +229,9 @@ try {
$manualPolygonJson,
$manualHolesJson,
$dxfFilename,
$dxfUrl,
$mmPerPx,
'manual',
@@ -227,6 +271,9 @@ try {
manual_holes_json = ?,
manual_status = 'completed',
dxf_filename = COALESCE(?, dxf_filename),
dxf_url = COALESCE(?, dxf_url),
scale_used = ?,
scale_detected = ?,
confidence = 'manual_validated',
@@ -264,6 +311,9 @@ try {
$manualPolygonJson,
$manualHolesJson,
$dxfFilename,
$dxfUrl,
$mmPerPx,
'manual',
@@ -285,7 +335,8 @@ try {
'area_mm2' => $areaMm2,
'area_cm2' => $areaCm2,
'outer_area_mm2' => $outerAreaMm2,
'holes_area_mm2' => $holesAreaMm2
'holes_area_mm2' => $holesAreaMm2,
'dxf_url' => $dxfUrl
]);
} catch (Throwable $e) {
error_log('CAD manual area save error: ' . $e->getMessage());