Crea ricetta da DXF: mm/px a mano per immagini da file #98
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
COSA: nel wizard «Crea ricetta da DXF» (editor task maker) un campo mm/px opzionale che sostituisce la calibrazione della stazione.
PERCHÉ: Adriano 25/10/2026: con un'immagine da file (foto Menoncin B2997, Sider) la scala non c'è, il wizard pretende la stazione calibrata (canRun richiede calibrated) e la ricetta non si crea. Il backend accetta già px_per_mm (src/backend/api/routers/vision.py create_dxf_compare_recipe, Form px_per_mm) e il proxy maker lo inoltra (src/frontend/flask_app/blueprints/maker.py api_dxf_compare_recipe).
CRITERIO DI FATTO: con stazione non calibrata e mm/px inserito, «Prova» e «Salva ricetta» funzionano; la richiesta porta px_per_mm = 1/mm_per_px; senza mm/px il comportamento è quello di oggi.
ANALISI #98 (Opus)
RIF: gitea:Adriano/TieMeasureFlow#98, base ramo lavoro/daitarn-tmf-dxfcal
4b1b23cCOSA: campo «mm/px» opzionale nel wizard «Crea ricetta da DXF»; se valido sostituisce la calibrazione della stazione.
FILE:
mmPx: ''(stringa, accetta virgola decimale).manualPxMm: parse di mmPx (replace ',' -> '.'), valido se finito e 0.00001 <= v <= 100 (stessi limiti di /camera/calibrazioni/manuale, #95); ritorna 1/v, altrimenti null.canRun: stationId && (calibrated || manualPxMm) && imageFile && dxfFile && !busy.run(): se manualPxMm != null aggiunge fd.append('px_per_mm', String(manualPxMm)); station_id resta inviato (serve per il worker della stazione).Testi con _(), commenti {# #98 #} / // #98.
TEST:
NON TOCCARE: src/backend (accetta gia' px_per_mm), maker.py salvo bug nel proxy, vision_execute.js, task_execute.html, scripts/camera_service.py.
Soluzione
ESITO: fatto
FILE: src/frontend/flask_app/static/js/dxf_recipe_wizard.js — campo mmPx, getter manualPxMm (virgola→punto, 0.00001..100, restituisce 1/v), canRun ammette mm/px valido senza stazione calibrata, run() invia px_per_mm; templates/maker/task_editor.html — input mm/px, riga «= N px/mm», errore «mm/px non valido», avviso «Stazione non calibrata» nascosto con mm/px valido.
TEST: test_manual_px_per_mm_forwarded (frontend).
COMMIT:
27d7c1e, su lavoro/daitarn-tmf-dxfcal (pushato inb78f242).PROVA: pytest frontend → nessun fallimento nuovo rispetto alla base; backend accetta px_per_mm: dxf-compare con px_per_mm=71.11 e BMP Sider → HTTP 200; TMF daitarn riavviato 15:48 con il codice.