diff --git a/CLAUDE.md b/CLAUDE.md index 79f3111..b034795 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,10 +4,15 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co ## Cos'è questo progetto -`CadSearchGui` è un'app Windows Forms (.NET 10, WinForms) che indicizza e permette di +`CadSearchGui` è il nome tecnico del progetto (cartella, namespace, csproj); il nome del +programma per l'utente finale è **Cevolani StepPrep** (versione in `` dentro +`CadSearchGui/CadSearchGui.csproj`, attualmente `0.1.0` — mostrata anche nel titolo della +finestra). È un'app Windows Forms (.NET 10, WinForms) che indicizza e permette di cercare i file CAD Pro-ENGINEER/Creo contenuti in tutte le cartelle di primo livello di un disco/share di rete (radice di default `X:\`), salvando i metadati in un DB -SQLite locale (`cad_index.db`). +SQLite locale (`cad_index.db`). Il flusso a valle (fasi 2-5, vedi sotto) prepara i file +`raw/` da passare a Creo Distributed Batch per l'esportazione STEP: la app è quindi un +pre-processo per quel passaggio, non lo sostituisce. ## Comandi @@ -90,6 +95,14 @@ entrambi rimossi: ora l'unico programma è questo, con GUI e indicizzazione inte di progresso, conteggi nuovi/aggiornati/invariati/rimossi, tempo trascorso e stima del tempo rimanente (calcolata dal ritmo file/secondo rispetto al totale atteso, preso dal conteggio della scansione precedente salvato nel DB). +- **UiStile.cs** — stile bottoni condiviso da `Form1` e dai dialog secondari + (`Primario`/`Secondario`, entrambi `AutoSize` col padding invece di una `Size` fissa + in pixel, per evitare che il testo vada a capo e si tagli quando non ci sta) e + `Arrotonda` per gli angoli dei bottoni "Avanti"/"Indietro" del wizard. +- **app.ico** — icona dell'app (logo Cevolani + pezzo + STEP, sfondo trasparente), + referenziata da `` in `CadSearchGui.csproj` e riletta a runtime in + `Form1.BuildUi()` via `Icon.ExtractAssociatedIcon(Application.ExecutablePath)` per + la titlebar (stessa icona dell'exe, nessun file duplicato nell'output). ### Schema del DB (`cad_index.db`) diff --git a/CadSearchGui/CadSearchGui.csproj b/CadSearchGui/CadSearchGui.csproj index 22997bf..229bac9 100644 --- a/CadSearchGui/CadSearchGui.csproj +++ b/CadSearchGui/CadSearchGui.csproj @@ -7,6 +7,11 @@ true enable PerMonitorV2 + app.ico + Cevolani StepPrep + Cevolani StepPrep + Cevolani + 0.1.0 diff --git a/CadSearchGui/Form1.cs b/CadSearchGui/Form1.cs index 77fee35..46b9110 100644 --- a/CadSearchGui/Form1.cs +++ b/CadSearchGui/Form1.cs @@ -75,9 +75,21 @@ public partial class Form1 : Form private void BuildUi() { AllowDrop = true; - Text = "Distinta Base -> CSV con percorsi CAD"; + // Versione letta dall'assembly ( nel csproj) invece che duplicata qui a mano. + var versione = typeof(Form1).Assembly.GetName().Version; + Text = $"Cevolani StepPrep {versione?.ToString(3)} — Distinta Base -> CSV con percorsi CAD"; MinimumSize = new Size(760, 480); Font = new Font("Segoe UI", 9.5f); + // Stessa icona di ApplicationIcon nel csproj: la si rilegge dall'exe compilato invece + // di duplicare il file .ico come Content, funziona identica in Debug/Release/publish. + try + { + Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath); + } + catch (Exception ex) when (ex is IOException or ArgumentException) + { + // ponytail: nessuna icona nell'exe (es. lanciato da dotnet run) -> resta quella di default + } var headerPanel = new Panel { Dock = DockStyle.Top, Height = 40, BackColor = SystemColors.ControlLight }; _lblFase.Dock = DockStyle.Fill; diff --git a/CadSearchGui/app.ico b/CadSearchGui/app.ico new file mode 100644 index 0000000..fc75ede Binary files /dev/null and b/CadSearchGui/app.ico differ diff --git a/README.md b/README.md index 4014cb9..43070e0 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,11 @@ -# CadSearchGui +# Cevolani StepPrep -App Windows Forms (.NET 10) per indicizzare, cercare e recuperare i file CAD -Pro-ENGINEER/Creo di un disco/share di rete, e per trasformare l'estrazione -"Distinta Base" del gestionale (file `.xls`/`.xml`) in un CSV con il percorso -CAD di ogni componente. +App Windows Forms (.NET 10, progetto `CadSearchGui`) per indicizzare, cercare e +recuperare i file CAD Pro-ENGINEER/Creo di un disco/share di rete, e per trasformare +l'estrazione "Distinta Base" del gestionale (file `.xls`/`.xml`) in un CSV con il +percorso CAD di ogni componente, fino a raccogliere in `raw/` tutto il necessario per +l'esportazione STEP con **Creo Distributed Batch**: è un pre-processo per quel +passaggio, non lo sostituisce. ## Funzionalità diff --git a/docs/architettura.md b/docs/architettura.md index 949a874..c3025c1 100644 --- a/docs/architettura.md +++ b/docs/architettura.md @@ -1,8 +1,11 @@ -# Architettura di CadSearchGui +# Architettura di CadSearchGui (Cevolani StepPrep) -Panoramica di tutti i file sorgente e di come collaborano. Per il "come si usa" vedi il -`README.md` in root; per il formato binario `.asm` vedi `docs/formato-asm.md`; per la -parallelizzazione della copia in `raw/` vedi `docs/copia-raw-parallela.md`. +Panoramica di tutti i file sorgente e di come collaborano. `CadSearchGui` è il nome +tecnico del progetto; **Cevolani StepPrep** è il nome del programma per l'utente +finale (titolo finestra, icona, versione — vedi ``/`` in +`CadSearchGui.csproj`). Per il "come si usa" vedi il `README.md` in root; per il +formato binario `.asm` vedi `docs/formato-asm.md`; per la parallelizzazione della +copia in `raw/` vedi `docs/copia-raw-parallela.md`. ## Vista d'insieme @@ -96,6 +99,21 @@ Distinta (.xls/.xml) → CSV (componente;descrizione) → raw/ (CAD copiati salvato nel DB). - **ProgressoComponentiForm.cs** — dialog minimale (etichetta + barra) durante `RisolviAlberoComponenti` in fase 4. + +## Stile UI condiviso + +- **UiStile.cs** — `Primario`/`Secondario`: stile piatto per i bottoni (bordo sottile + per i secondari, blu pieno per l'azione principale di ogni fase), entrambi con + `AutoSize`+`Padding`+`MinimumSize` invece di una `Size` fissa in pixel indovinata a + mano (altrimenti il testo va a capo e si taglia in verticale se non ci sta nella + larghezza scelta). `Arrotonda` applica angoli arrotondati via `Region` calcolata su + `SizeChanged` (non una volta sola: con `AutoSize` la dimensione finale del bottone si + conosce solo a layout avvenuto), usata sui bottoni "Avanti"/"Indietro" del wizard. +- **app.ico** — icona dell'app, referenziata da `` nel csproj (icona + dell'exe in Esplora risorse/taskbar) e riletta esplicitamente in `Form1.BuildUi()` + con `Icon.ExtractAssociatedIcon(Application.ExecutablePath)` per la titlebar, senza + copiare il file `.ico` nell'output. Sfondo trasparente (nessuna card bianca), 7 + risoluzioni da 16 a 256px. - **PrtMancantiForm.cs** — esito della risoluzione ricorsiva dell'albero componenti: PRT e sotto-assiemi trovati e copiati in `raw/`, più i codici referenziati che non corrispondono a nessun file indicizzato (possono essere disegni, componenti davvero mancanti, o falsi