Files

62 lines
1.6 KiB
Python
Raw Permalink Normal View History

# Punto di ingresso unico del progetto: seleziona da riga di comando quale
# azione eseguire.
#
# python main.py mesh # disegna la sola mesh a elementi shell
# python main.py fem # animazione 3D del campo FEM sulla mesh shell
# python main.py csv # esporta in CSV la serie temporale del FEM
#
# Senza argomenti stampa l'elenco delle azioni disponibili.
import argparse
import sys
def _azione_mesh() -> None:
import plot_mesh
plot_mesh.main()
def _azione_fem() -> None:
import plot_animazione_fem
plot_animazione_fem.main()
def _azione_csv() -> None:
import esporta_csv
esporta_csv.main()
# Chiave da riga di comando -> (funzione, descrizione mostrata nell'help).
AZIONI = {
"mesh": (_azione_mesh, "Disegna la mesh a elementi shell della fascetta"),
"fem": (_azione_fem, "Animazione 3D del campo FEM sulla mesh a elementi shell"),
"csv": (_azione_csv, "Esporta in CSV la temperatura simulata e la lettura del sensore"),
}
def main() -> None:
parser = argparse.ArgumentParser(
description="Analisi termica FEM della fascetta riscaldata a induzione.",
formatter_class=argparse.RawTextHelpFormatter,
)
parser.add_argument(
"azione",
nargs="?",
choices=list(AZIONI),
help="\n".join(f"{nome}: {descrizione}" for nome, (_, descrizione) in AZIONI.items()),
)
argomenti = parser.parse_args()
if argomenti.azione is None:
parser.print_help()
sys.exit(1)
AZIONI[argomenti.azione][0]()
if __name__ == "__main__":
main()