Panoramica generale del software

 

1. Panoramica generale 

Il software (Freeware) realizzato da Antonio Surdo è un’applicazione desktop per la progettazione e visualizzazione di meridiane verticali (muro declinante).
Scritto in Python con interfaccia Tkinter, utilizza matplotlib per i disegni e librerie scientifiche (numpyskyfield opzionale).
Supporta calcoli astronomici, disegno in scala, simulazioni, esportazione di report e file per la produzione.


2. Interfaccia principale e gestione progetti

  • Finestra principale ridimensionabile, con barra dei menu e due pagine principali:

    • InputPage: inserimento parametri e calcoli.

    • DrawingPage: visualizzazione dei disegni e strumenti di esportazione.

  • Gestione progetti (salvataggio/caricamento su file JSON):

    • Nuovo progetto, apri progetto, salva, salva con nome.

    • Memorizza tutti i parametri e le opzioni selezionate.

  • Menu Info:

    • Informazioni sull’autore, licenza/disclaimer completo, elenco librerie utilizzate con versioni.

    • Calcolatore autonomo della posizione del sole.

    • Link per donazione PayPal.


3. Pagina di input – Inserimento parametri

3.1 Parametri geometrici e astronomici

ParametroDescrizioneIntervallo/Note
LatitudineGradi decimali (N +, S -)Default: Roma (41.9028)
LongitudineGradi decimali (E +, W -)Default: 12.4964
Declinazione muroAngolo del muro rispetto al Sud geografico (+ verso Ovest, - verso Est)Max ±89°
Stile fuori muro (L)Lunghezza dello gnomone sporgente dal muro (cm)Default 15 cm
Infissione (P)Lunghezza dello gnomone dentro il muro (cm)Default 5 cm
  • Tooltip informativi su ogni campo.

  • Pulsante “Assistente declinazione muro” → apre una finestra con 5 metodi per misurare la declinazione (vedi sezione 8).

3.2 Correzione oraria (linee orarie)

Due modalità esclusive:

  • Calcolo automatico (basato su longitudine, fuso orario e ora legale):

    • Inserimento fuso UTC (combobox da -12 a +12).

    • Checkbox “Ora legale attiva” (DST).

    • L’offset in minuti viene calcolato come:
      offset = (longitudine/15 - fuso) * 60 - (60 se DST attiva)

    • Mostra l’offset calcolato in tempo reale.

  • Correzione manuale (minuti da aggiungere/sottrarre all’ora civile).

    • Il campo manuale è disabilitato se l’auto‑calcolo è attivo.

  • Checkbox “Applica correzione oraria” : se selezionata, le linee orarie vengono traslate dell’offset calcolato.

3.3 Opzioni di visualizzazione della meridiana

OpzioneEffetto
Includi linee mezza oraDisegna anche le linee per le ore .5 (es. 8:30)
Usa numeri romaniEtichette ore in numeri romani (I‑XII)
Mostra linee dei solstiziTraccia le curve per solstizio d’estate, d’inverno ed equinozio
Mostra ore italicheLinee curve per le ore contate dal tramonto (12‑23)
Mostra ore francesiLinee curve per le ore contate dall’alba (1‑18)

3.4 Pulsanti di azione

  • CALCOLA RISULTATI → esegue i calcoli gnomonici, abilita il pulsante “VAI AL DISEGNO”.

  • VAI AL DISEGNO → passa alla pagina di visualizzazione grafica.

  • Salva progetto / Carica progetto → gestione file JSON.

  • ❤️ Dona all’autore → apre la pagina PayPal.

3.5 Pannello dei risultati (in tempo reale)

RisultatoDescrizione
Inclinazione gnomone (β)Angolo dello stile rispetto al piano del muro
Declinazione gnomone (α)Angolo del sub‑stile rispetto alla verticale
Orientamento effettivo del muroEs. “150° S‑E”
Lunghezza totale ferroL + P
Profondità foro (perp. al muro)P * sin(β)
Spostamento vert. punto foroverso l’alto o il basso in base all’orientamento
Larghezza quadrante (ore 8‑16)Larghezza stimata del quadrante per le ore 8‑16 (cm)
Altezza quadrante (ore 8‑16)Altezza stimata (cm)
OrtostiloDistanza punta‑muro = L * sin(β)

4. Pagina di disegno – Visualizzazioni e strumenti

4.1 Tre pannelli grafici (matplotlib)

  1. Meridiana – Vista del muro

    • Quadrante con linee orarie curve (attraversano tutti i giorni dell’anno).

    • Griglia leggera, assi verticale/orizzontale, sub‑stile con angolo α.

    • Linee dei solstizi (estate/inverno/equinozio) con legenda.

    • Etichette ore con tratti perpendicolari all’estremità.

    • Barra scala in centimetri, rosa dei venti, indicazione dell’orientamento del muro.

    • Punto di inserzione dello stilo evidenziato.

  2. Sezione laterale – Montaggio

    • Rappresentazione in sezione del muro, dello stilo (assostilo), del sub‑stilo e dell’infissione.

    • Quote: sub‑stilo, ortostilo, profondità perpendicolare, spostamento verticale.

    • Indicazione “fuori muro” / “dentro”.

  3. Vista frontale – Gnomone

    • Proiezione ortogonale dello stilo sul piano del muro.

    • Mostra l’angolo α (declinazione gnomone), la punta, il foro di infissione.

    • Box riassuntivo con β, L, sub‑stilo, ortostilo.

4.2 Barra degli strumenti (due righe)

Prima riga

  • Torna ai parametri

  • Salva Meridiana (singolo pannello)

  • Salva Montaggio

  • Salva Frontale

  • Salva tutti (i tre pannelli insieme)

  • Esporta DXF (linee orarie per CAD)

Seconda riga

  • Report PDF (documento tecnico completo)

  • Simula ombra (finestra interattiva)

  • Esporta CSV CNC (coordinate dei punti estremi delle linee orarie)

  • Dati Simulatore Analemma (esporta tabella per tracciamento laser)

  • Grafico analemma (mostra curva dell’equazione del tempo)

  • Zoom + / Zoom - / Reset Zoom (solo per il pannello meridiana)

  • Salva PDF Meridiana (1:1) – esporta in scala reale (1 cm = 1 cm) l’area corrente o l’intero quadrante.

4.3 Pulsanti interattivi sui disegni

Sotto ogni pannello è presente un pulsante “Ingrandisci …” che apre una finestra separata con il disegno ingrandito, dotata di barra degli strumenti di matplotlib (zoom, pan, home) e pulsanti aggiuntivi di zoom personalizzati.


5. Calcoli gnomonici e astronomici

5.1 Modulo utils/calculations.py

  • calcola_gnomone(lat, dec_muro) → restituisce β, α, azimuth del muro.

  • get_shadow_3d(H, δ, φ, dm) → coordinate (x, y) dell’ombra sulla meridiana (in unità Lout).

  • sun_position() :

    • Tenta di usare skyfield (effemeridi DE421) per alta precisione.

    • Fallback con algoritmo basato su formule astronomiche classiche (senza skyfield).

  • solar_declination(day_of_year) e equation_of_time_noaa(day) → algoritmi NOAA.

  • sunrise_time, sunset_time, solar_time_from_italian_hour, solar_time_from_french_hour → supporto per ore storiche.

  • export_dxf → genera file DXF (formato AutoCAD) con linee orarie e assi.

5.2 Curve delle linee orarie

A differenza di una meridiana tradizionale a linee rette, questo software traccia linee orarie curve calcolando l’ombra per una gamma di declinazioni solari (da -23.44° a +23.44°) e unendo i punti. Ciò permette di rappresentare correttamente il percorso dell’ombra durante l’anno e di includere le ore italiche/francesi.


6. Strumenti aggiuntivi (finestre indipendenti)

6.1 Calcolatore posizione del sole

  • Ingressi: latitudine, longitudine, data, ora locale, fuso orario.

  • Risultati:

    • Azimut e altezza del sole.

    • Declinazione solare.

    • Equazione del tempo.

    • Ora solare vera.

    • Angolo orario.

6.2 Simulatore interattivo dell’ombra

  • Slider per giorno dell’anno (1‑365) e ora (0‑24).

  • Visualizzazione della posizione dell’ombra sul quadrante (in tempo reale).

  • Mostra dati istantanei: azimut, altezza, declinazione, coordinate ombra.

  • Sfondo con le linee orarie di riferimento (equinozio).

6.3 Assistente declinazione muro (5 metodi)

Finestra con notebook a schede:

  1. Tavoletta orizzontale (multipla)

    • Inserire data, ora, angolo ombra α (dalla verticale).

    • Aggiunge misurazioni in tabella e calcola la declinazione media del muro.

  2. Filo verticale (manuale)

    • Inserire azimut e altezza del sole (ottenibili dal calcolatore) e l’angolo α misurato.

    • Calcola δ = Az – arcsin(tan(α)·tan(alt)) – 180°.

  3. Due misurazioni (verticale)

    • Due coppie (ora, angolo α) nella stessa giornata.

    • Il programma calcola automaticamente la posizione del sole per ogni misura e restituisce la declinazione media.

  4. Guida pratica

    • Testo descrittivo dei metodi.

  5. Smartphone (bussola)

    • Inserire azimut magnetico letto dallo smartphone, lat/lon, anno e declinazione magnetica (manuale o stimata).

    • Calcola δ = azimut_geografico – 180° (dopo aver applicato la declinazione magnetica).

Ogni metodo permette di importare il valore calcolato direttamente nel campo “Declinazione muro” della pagina principale.


7. Esportazioni e report

TipoFormatoContenuto
Disegni singoliPNG, PDF, SVGPannello selezionato (meridiana, montaggio, frontale)
Tutti i disegniPNG, PDF, SVGI tre pannelli insieme
Report tecnicoPDFCopertina con parametri e risultati + i tre disegni a pagina intera
DXF.dxfLinee orarie per CAD (base sul solstizio d’inverno)
CSV CNC.csvCoordinate (X, Y in cm) dei punti estremi delle linee orarie (ore intere e mezze)
Dati analemma.txt / .csvTabella con declinazione e scostamento orario per ogni giorno (per tracciatura laser)
  • Salva PDF Meridiana in scala 1:1
    Calcola le dimensioni in cm del quadrante (in base allo zoom o all’intero quadrante) e genera un PDF con le stesse dimensioni reali, utile per stampare in scala e trasferire sul muro.


8. Aspetti tecnici e dipendenze

  • Python con librerie standard + numpymatplotlibskyfield (opzionale).

  • Tkinter per GUI, ttk per widget moderni.

  • Gestione percorsi per PyInstaller (risorse incorporate).

  • Tema scuro professionale (colori definiti in config.py).

  • Tooltip personalizzati (utils/tooltip.py).

  • Rilevazione automatica della presenza di skyfield e fallback graceful.

  • Compatibile con Windows, Linux, macOS.


9. Limitazioni e note di responsabilità

  • L’utente è l’unico responsabile della verifica dei risultati prima della realizzazione fisica.

  • Il software è fornito “così com’è”, senza garanzie di precisione assoluta.

  • Per calcoli astronomici ad alta precisione si consiglia di installare skyfield (il programma scarica automaticamente il file de421.bsp).

  • La declinazione del muro deve essere compresa tra -89° e +89° (valori pari a ±90° renderebbero il muro parallelo all’asse terrestre).

Commenti