fixed cad area and added dfx
This commit is contained in:
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user