Add app icon, product name/version, and document them

- New app.ico (from the Cevolani favicon, background made transparent and
  cropped tighter to the logo so it stays legible at 16/24px), wired up via
  ApplicationIcon in the csproj and re-read at runtime for the window icon.
- Named the product "Cevolani StepPrep" and set Version=0.1.0 in the csproj;
  shown in the window title. The CadSearchGui folder/namespace/csproj keep
  their technical name, only the product-facing name changed.
- Updated CLAUDE.md, README.md and docs/architettura.md to reflect the
  product name/version, UiStile.cs, app.ico, and that this app is a
  pre-process step ahead of Creo Distributed Batch.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
davideandClaude Sonnet 5 committed 2026-09-21 11:00:01 +02:00
1 parent ba18d682f3
commit 6726dd2216
6 files changed
+62 -12

No files matched your search

+15 -2
View File
@@ -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 `<Version>` 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 `<ApplicationIcon>` 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`)
+5
View File
@@ -7,6 +7,11 @@
<UseWindowsForms>true</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings>
<ApplicationHighDpiMode>PerMonitorV2</ApplicationHighDpiMode>
<ApplicationIcon>app.ico</ApplicationIcon>
<AssemblyTitle>Cevolani StepPrep</AssemblyTitle>
<Product>Cevolani StepPrep</Product>
<Company>Cevolani</Company>
<Version>0.1.0</Version>
</PropertyGroup>
<ItemGroup>
+13 -1
View File
@@ -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 (<Version> 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;
Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

+7 -5
View File
@@ -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à
+22 -4
View File
@@ -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 `<Version>`/`<Product>` 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 `<ApplicationIcon>` 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