maker: mm/px a mano nel wizard DXF per immagini da file (Refs #98)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -21,6 +21,7 @@ function dxfRecipeWizard(taskId, csrf, msgs) {
|
||||
imageName: '',
|
||||
imageSrc: '',
|
||||
dxfFile: null,
|
||||
mmPx: '', // #98: mm/px a mano (immagine da file), stringa con virgola o punto
|
||||
bandMm: 0.1,
|
||||
minPointsPct: 95,
|
||||
dark: true, // spuntato = pezzo scuro su fondo chiaro (controluce)
|
||||
@@ -59,8 +60,19 @@ function dxfRecipeWizard(taskId, csrf, msgs) {
|
||||
},
|
||||
|
||||
get calibrated() { return this.calState === 'calibrated'; },
|
||||
// #98: mm/px inserito a mano -> px/mm; null se vuoto o fuori da 0.00001..100 (limiti di /camera/calibrazioni/manuale, #95)
|
||||
get manualPxMm() {
|
||||
const raw = String(this.mmPx || '').trim().replace(',', '.');
|
||||
if (!raw) return null;
|
||||
const v = Number(raw);
|
||||
if (!Number.isFinite(v) || v < 0.00001 || v > 100) return null;
|
||||
return 1 / v;
|
||||
},
|
||||
// #98: compilato ma non valido -> errore in pagina
|
||||
get mmPxInvalid() { return String(this.mmPx || '').trim() !== '' && this.manualPxMm === null; },
|
||||
get canRun() {
|
||||
return !!(this.stationId && this.calibrated && this.imageFile && this.dxfFile) && !this.busy;
|
||||
// #98: la scala a mano sostituisce la calibrazione della stazione
|
||||
return !!(this.stationId && (this.calibrated || this.manualPxMm !== null) && this.imageFile && this.dxfFile) && !this.busy;
|
||||
},
|
||||
|
||||
_setImage(file) {
|
||||
@@ -120,6 +132,8 @@ function dxfRecipeWizard(taskId, csrf, msgs) {
|
||||
fd.append('image', this.imageFile, this.imageFile.name || 'capture.png');
|
||||
fd.append('dxf', this.dxfFile, this.dxfFile.name);
|
||||
fd.append('station_id', this.stationId);
|
||||
// #98: scala a mano; il backend la preferisce alla calibrazione della stazione
|
||||
if (this.manualPxMm !== null) fd.append('px_per_mm', String(this.manualPxMm));
|
||||
fd.append('band_mm', String(this.bandMm));
|
||||
fd.append('min_points_pct', String(this.minPointsPct));
|
||||
fd.append('polarity', this.dark ? 'dark' : 'light');
|
||||
|
||||
Reference in New Issue
Block a user