Il Bar dell'Ingegneria

Verifiche sezioni complesse in c.a. agli SLE ed SLU

« Older   Newer »
 
  Share  
.
  1. afazio
        +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,163
    Reputation
    +294

    Status
    Offline
    Ok.

    Ho tradotto tutte le definizioni di struttura/tipo e li riporto in unica volta, cosi mi tolgo il pensiero:

    CODICE
    Option Explicit
    Public Const NMAXPOLI As Integer = 6   ' Numero massimo di poligoni che possono comporre la sezione */
    Public Const NMAXVRT As Integer = 100  ' Numero massimo di vertici che possono comporre il singolo poligono della sezione */
    Public Const NMAXARM As Integer = 200  ' Numero massimo di armature che possono essere inserite nella sezione */
    Public Const NMAXCOMB As Integer = 50  ' Numero massimo di combinazioni di carico cui assoggettare la sezione */
    Public Const ULT    As Integer = 0
    Public Const SNERV  As Integer = 1
    Public Const curv   As Integer = 2
    ' definizione dei tipi (strutture delle variabili)
    ' -------------------------------------------------------------------------- */
    ' Struttura dati in cui sono definiti i dati dei singoli poligoni che com-   */
    ' pongono la sezione                                                         */
    ' -------------------------------------------------------------------------- */
    Public Type poligono_sezione
       x(0 To NMAXVRT - 1) As Double  ' coordinata x del vertice */
       y(0 To NMAXVRT - 1) As Double    ' coordinata y del vertice */
       numv As Integer            ' numero di vertici del poligono */
       omog As Double  ' coefficiente di omogeneizzazione (per verifiche SLE) */
       traz As Integer            ' 0=non reagente a trazione; 1=reagente a trazione */
       classe As String       ' Classe di resistenza del cls */
       fd As Double            ' Resistenza massima di calcolo (per verifiche SLU) */
       automfd As Integer         ' Rende automatico il calcolo di fd in funzione della classe del cls */
       dominio As Integer          ' 0=parabola-rettangolo (cls) 1=bilatera (acciaio) */
       fase As Integer            ' A futura memoria per gestire fasi di realizzazione */
       epsc0 As Double         ' Deformazione in corrispondenza della fine della parte parabola/lineare del dominio */
       epscu As Double         ' Deformazione ultima del dominio */
       automeps As Integer        ' Rende automatico il calcolo di epsc0 e epscu in funzione della classe del cls */
       selez(0 To NMAXVRT - 1) As Integer  ' 1=vertice selezionato 0=vertice non selezionato */
       bloc(0 To NMAXVRT - 1) As Integer   ' Link rigido con altro vertice. Nessun link=-1 */
    End Type
    ' -------------------------------------------------------------------------- */
    ' Struttura dati in cui sono definiti i dati delle singole barre di armatura */
    ' presenti nella sezione                                                     */
    ' -------------------------------------------------------------------------- */
    Public Type armature_sezione
       af(0 To NMAXARM - 1) As Double     ' area della barra di armatura */
       diam(0 To NMAXARM - 1) As Double ' diametro della barra */
       x(0 To NMAXARM - 1) As Double     ' coordinata x della barra */
       y(0 To NMAXARM - 1) As Double     ' coordinata y della barra */
       numarm As Integer          ' numero di barre per l'intera sezione */
       omogarm As Double       ' coefficiente di omogeneizzazione (per verifiche SLE) */
       selez(0 To NMAXARM - 1) As Integer  ' 1=armatura selezionata 0=armatura non selezionata */
       cong(0 To NMAXARM - 1) As Integer  ' 0=non congelato 1=congelato */
    End Type
    ' -------------------------------------------------------------------------- */
    ' Struttura dati dove vengono definite le caratteristiche geometriche della  */
    ' sezione intera o di porzioni della sezione stessa                          */
    ' -------------------------------------------------------------------------- */
    Public Type geometria_sezione
       area As Double   ' Area della sezione */
       scx As Double   ' Momento statico rispetto ad asse x baricentrico */
       scy As Double   ' Momento statico rispetto ad asse y baricentrico */
       ix As Double   ' Momento d'inerzia rispetto ad asse x baricentrico */
       iy As Double   ' Momento d'inerzia rispetto ad asse y baricentrico */
       ixy As Double   ' Momento d'inerzia polare rispetto ad assi x,y baricentrici */
       alfa As Double   ' Inclinazione (rad) degli assi principali d'inerzia */
       ia As Double   ' Momenti principali di inerzia */
       ib As Double   '
    End Type
    ' -------------------------------------------------------------------------- */
    ' Struttura dati utilizzata nelle verifiche SLE. In essa vengono definiti i  */
    ' parametri deformativi u,fx,fy della sezione parzializzata (o no) che       */
    ' creano equilibrio con le sollecitazioni esterne                            */
    ' -------------------------------------------------------------------------- */
    Public Type deform
       u(0 To 2) As Double         ' u[0]=deformazione lineare in corrispondenza baricentro sezione */
                                   ' positivo se "comprime" la sezione */
                                   ' u[1]=rotazione sezione attorno all'asse X: positivo se "comprime" Y+ */
                                   ' u[2]=rotazione sezione attorno all'asse Y: positivo se "comprime" X+ */
    End Type
    ' -------------------------------------------------------------------------- */
    ' Struttura dati dove sono definite le sollecitazioni di sforzo normale e di */
    ' momenti flettenti agenti nella sezione. Punto di applicazione dei carichi: */
    ' baricentro sezione omogeneizzata senza tenere in conto le armature         */
    ' -------------------------------------------------------------------------- */
    Public Type soll_esterne
       n As doube              ' Sforzo normale: positovo se di compressione */
       mx As doube             ' Momento flettente asse momento X: positivo se comprime fibra Y+ */
       my As doube             ' Momento flettente asse momento Y: positivo se comprime fibra X+ */
       tipo As Integer         ' 0=SLE 1=SLU */
    End Type
    ' -------------------------------------------------------------------------- */
    ' Struttura dati dove viene definita la lunghezza di ogni singola fibra e la */
    ' posizione del "baricentro" della stessa. Utilizzata nelle verifiche SLU, a */
    ' seguito della suddivisione in striscie della parte compressa della sezione */
    ' -------------------------------------------------------------------------- */
    Public Type lungh_fibra
       lungh As Double          ' Lunghezza della fibra */
       xb As Double             ' Baricentro della fibra */
    End Type
    ' -------------------------------------------------------------------------- */
    ' Struttura dati dove viene definita la configurazione deformata a rottura   */
    ' della sezione, semplicemente con la deformazione nel punto più alto della  */
    ' sezione compressa e la deformazione della armatura posta più in basso      */
    ' -------------------------------------------------------------------------- */
    Public Type deform_sezione
       epsa As Double         ' Deformazione della fibra (compressa) più alta della sezione */
       epsb As Double          ' Deformazione della armatura più bassa della sezione */
    End Type
    ' -------------------------------------------------------------------------- */
    ' Struttura dati per definire lo sforzo normale della parte compressa o tesa */
    ' della sezione, in configurazione di rottura, con coordinate del relativo   */
    ' punto di applicazione                                                      */
    ' -------------------------------------------------------------------------- */
    Public Type risultante_n
       n As Double             ' Sforzo normale risultante */
       x As Double             ' Coordinate punto di applicazione risultante */
       y As Double
    End Type
    ' -------------------------------------------------------------------------- */
    ' Struttura dati che incapsula insieme le risultanti di compressione e di    */
    ' trazione della sezione, in configurazione di rottura, con posizione effet- */
    ' tiva dell'asse neutro e relative deformazioni limite della sezione         */
    ' -------------------------------------------------------------------------- */
    Public Type risultante_n_finale
       ncf As risultante_n   ' Risultante di compressione della sezione */
       ntf As risultante_n   ' Risultante di trazione della sezione */
       yn As Double
       epsc As Double
       epss As Double
    End Type
    ' -------------------------------------------------------------------------- */
    ' Struttura dati che contiene i valore dei momenti di rottura della sezione  */
    ' -------------------------------------------------------------------------- */
    Public Type momenti_rottura
       mrx As Double '           Momento di rottura con asse momento x */
       mry As Double '            Momento di rottura con asse momento y */
    End Type
    ' -------------------------------------------------------------------------- */
    ' Struttura dati in cui vengono memorizzati tutti i punti del dominio della  */
    ' sezione, per dato sforzo normale, con tutti i dati intermedi perchè si     */
    ' possano visualizzare e/o manipolare                                        */
    ' -------------------------------------------------------------------------- */
    Public Type dominio_rottura
       nd As Double '            /* Sforzo normale con cui si determinano i vari momenti di rottura */
       mrx(0 To 23) As Double '       /* vettore con i valori dei momenti Mrx del dominio */
       mry(0 To 23) As Double '      /* vettore con i valori dei momenti Mry del dominio */
       nrc(0 To 23) As Double '       /* vettore con valori dello sfozo normale nella parte compressa della sezione a rottura */
       nrt(0 To 23) As Double '       /* vettore con valori dello sforzo normale nella parte in trazione della sezione a rottura */
       xrc(0 To 23) As Double '       /* posizione della risultante dello sforzo di compressione */
       yrc(0 To 23) As Double '       /* (nel sistema di riferimento cartesiano della sezione) */
       xrt(0 To 23) As Double '       /* posizione della risultante dello sforzo di trazione */
       yrt(0 To 23) As Double '       /* (nel sistema di riferimento cartesiano della sezione) */
       epsc(0 To 23) As Double '      /* vettore con le deformazioni limite della fibra più compressa */
       epss(0 To 23) As Double '      /* vettore con le deformazioni limite della barra di armatura più distante dall'asse neutro */
       yn(0 To 23) As Double '        /* posizione asse neutro (nel sistema ruotato di ogni singola verifica) */
       curv(0 To 23) As Double '      /* Curvatura della deformazione della sezione per diagrammi momenti-curvatura */
    End Type
    ' -------------------------------------------------------------------------- */
    ' Struttura dati in cui vengono memorizzati tutti i punti del dominio 3D     */
    ' dei momenti-curvatura della sezione, per dato sforzo normale               */
    ' -------------------------------------------------------------------------- */
    Public Type dom_momenti_curv
       mcurv(0 To 11) As dominio_rottura
    End Type
    ' -------------------------------------------------------------------------- */
    ' Struttura dati in cui vengono memorizzati i valori limite SLU di massimo   */
    ' sforzo normale possibile per la sezione, sia a compressione che a trazione */
    ' con relativi valori dei momenti flettenti associati                        */
    ' -------------------------------------------------------------------------- */
    Public Type n_limite
       ncompr As Double '        /* Massimo sforzo normale di compressione */
       mrxcompr As Double '       /* Momento di rottura con asse x associato al massimo sforzo di compressione */
       mrycompr As Double '       /* Momento di rottura con asse y associato al massimo sforzo di compressione */
       ntraz As Double '          /* Massimo sforzo normale di trazione */
       mrxtraz As Double '        /* Momento di rottura con asse x associato al massimo sforzo di trazione */
       mrytraz As Double '        /* Momento di rottura con asse y associato al massimo sforzo di trazione */
    End Type
    ' -------------------------------------------------------------------------- */
    ' Struttura dati in cui vengono memorizzati tutti i punti del dominio 2D     */
    ' dei momenti-curvatura della sezione, per dato sforzo normale               */
    ' -------------------------------------------------------------------------- */
    Public Type d_curv
       mx(0 To 11) As Double
       my(0 To 11) As Double
       nc(0 To 11) As Double
       nt(0 To 11) As Double
       xc(0 To 11) As Double
       yc(0 To 11) As Double
       xt(0 To 11) As Double
       yt(0 To 11) As Double
       epsc(0 To 11) As Double
       epss(0 To 11) As Double
       yn(0 To 11) As Double
       ang(0 To 11) As Double
       m(0 To 11) As Double
       crv(0 To 11) As Double
    End Type
    ' -------------------------------------------------------------------------- */
    ' Struttura dati in cui vengono memorizzati i valori di conversione da coor- */
    ' dinate tridimensionali (x,y,z) a coordinate piane (x,y) in un piano di     */
    ' proiezione                                                                 */
    ' -------------------------------------------------------------------------- */
    Public Type coord_proiez
       x As Double
       y1 As Double
       y As Double
    End Type
    ' -------------------------------------------------------------------------- */
    ' Struttura dati in cui vengono memorizzati i valori di conversione da coor- */
    ' dinate tridimensionali (x,y,z) a coordinate piane (x,y) in un piano di     */
    ' proiezione                                                                 */
    ' -------------------------------------------------------------------------- */
    Public Type quadrangolo
       x3D(0 To 3) As Double
       y3D(0 To 3) As Double
       z3D(0 To 3) As Double
       x2D(0 To 3) As Double
       y2D(0 To 3) As Double
       y1D As Double
    End Type
    ' -------------------------------------------------------------------------- */


    Adesso ci sarebbero le dichiarazioni dei metodi che poi saranno sviluppati nel programma principale. Questo in C
    Penso che in VBA queste dichiarazioni dei metodi non sia necessaria (ricorso invece che lo era in delphi). per questo chiedo a Francesco di illustrarmi cosa significa una dichiarazione simile alla seguente:

    struct geometria_sezione calcola_caratt_geometriche (struct poligono_sezione *);

    Io la intendo cosi:

    "sarà utilizzata una procedura, chiamata calcola_caratt_geometriche che agirà su una variabile avente la struttura poligono_sezione e di cui daremo l'indirizzo di memoria. Sbaglio nell'interpretare?

    Aggiungo: ed il risultato ottenuto sarà una variabile avente struttura geometria_sezione?

    Edited by afazio - 27/9/2012, 12:14
     
    Top
    .
390 replies since 26/9/2012, 10:47   29394 views
  Share  
.