Pressoflessione deviata

E' qui riportato un programma che determina i domini a pressoflessione deviata Mx-My-N per una sezione  rettangolare con armatura simmetrica o non simmetrica.
Il programma  scritto in Visual Basic 2005 Express Edition (linguaggio di programmazione che pu essere scaricato liberamente dal sito della Microsoft).
La versione attuale del programma non ha maschere di input e di output; per utilizzarlo occorre quindi fornire i dati seguendo le indicazioni riportate nel listato del programma (e richiamate qui sotto).
I risultati forniti possono essere diagrammati mediante Excel. Nella cartella "esempio"  riportato un esempio di output del programma e di file Excel che utilizza tale output. Si faccia riferimento al foglio "Istruzioni" di tale file. 


Le seguenti indicazioni sono estratte dal file PD-2009\main.vb


    '                  PD-2009
    '
    ' Programma per la pressoflessione deviata              rev. 05.09
    '
    ' Programma scritto con Visual Basic 2005 Express Edition
    '
    ' Nota
    ' il programma attualmente non ha maschere di input e di output
    ' deve quindi essere usato seguendo le indicazioni qui riportate
    '
    ' Costanti
    ' sono definiti qui sotto come costanti alcuni parametri,
    ' che non dovrebbe essere necessario modificare
    ' (epsilon limite, modulo elastico, numero di elementi o di punti)
    '
    ' Dati di input
    ' sono assegnati all'interno del programma, all'inizio della Sub Main
    '
    ' Output
    ' i risultati vengono messi in pi file, con nome base assegnato all'interno
    ' del programma, all'inizio della Sub Main. Sono previsti:
    ' File ____x.txt    dominio Mx, N per My=0
    ' File ____y.txt    dominio My, N per Mx=0
    ' File ____mm1.txt  dominio Mx, My per un primo valore di N
    ' File ____mm2.txt  dominio Mx, My per un secondo valore di N
    ' File ____mm3.txt  dominio Mx, My per un terzo valore di N
    ' In uscita i valori di N sono espressi in N (dividere per 1000 per avere kN)
    ' quelli di M in Nmm (dividere per 1000000 per avere kNm)

    ' ------------------------------- dati da definire -------------------------------
    ' Dati relativi al materiale
    Dim fcd As Single = 14.14   ' fcd [MPa]
    Dim fyd As Single = 391.3   ' fyd [MPa]
    ' Dati relativi alla sezione
    ' i dati sotto riportati definiscono una sezione 30x70
    Dim b As Short = 300    ' base della sezione [mm]
    Dim h As Short = 700    ' altezza della sezione [mm]
    Dim c As Short = 40     ' copriferro della sezione [mm]
    ' Dati relativi all'armatura
    Dim Armatura As DatiArmatura
    Armatura.DbSpiSup = 20      ' diametro barre di spigolo superiori [mm] (qui: fi 20)
    Armatura.NbSup = 3      ' numero di barre lato superiore, oltre spigolo (qui: 3)
    Armatura.DbSup = 20     ' diametro barre lato superiore [mm] (qui: fi 20)
    Armatura.DbSpiInf = Armatura.DbSpiSup   ' diametro barre di spigolo inferiori [mm] (qui: = sup)
    Armatura.NbInf = Armatura.NbSup     ' numero di barre lato inferiore, oltre spigolo (qui: = sup)
    Armatura.DbInf = Armatura.DbSup     ' diametro barre lato inferiore [mm] (qui: = sup)
    Armatura.NbPar = 2      ' numero di barre di parete, oltre spigolo, per lato (qui: 2)
    Armatura.DbPar = 20     ' diametro barre di parete [mm] (qui: fi 20)
    ' Dati relativi all'output
    Dim Fout As String = "c:\ProvaPD09"     ' percorso e nome dei file di output (senza estensione)
    Dim Nass(3) As Single       ' sforzi normali per cui calcolare il dominio Mx,My
    Nass(1) = 0         ' valori di N [kN] (positivi se compressione)
    Nass(2) = 500
    Nass(3) = 1000
