Il Bar dell'Ingegneria

La foroflangia

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

    Advanced Member

    Group
    Member
    Posts
    2,942
    Reputation
    +187

    Status
    Offline
    Ma perchè non approfittare della presenza e della voglia di intervenire in questo topic di Paolo Rugarli?

    Come avrai potuto capire stiamo qui cercando di utilizzare strumenti 'classici' per affrontare un problema complesso.
    L'ipotesi di partenza è che la sezione della flangia sia sufficientemente irrigidita da poter considerarla con la classica ipotesi di deformazione piana della sezione stessa sotto le sollecitazioni.

    Ovviamente la realtà potrà presentare i casi e le complessità delle più varie.

    Oppure potrebbe anche darsi, nella mia ignoranza della questione, che anche per una flangia rigidissima quanto stiamo provando ad implementare non funzioni affatto.

    Ma voglio approfittare di Paolo per discutere della pretensione dei bulloni.

    Rimaniamo al momento in ambito SLE.

    Con una stretta analogia con quanto si fa generalmente in ambito c.a.p., io semplicemente determinerei, conoscendo la pretensione di ogni singolo bullone, le caratteristiche di sollecitazione 'risultanti', intese come N_pret e M_pret, agenti globalmente sulla sezione.
    Sollecitazioni queste che andranno a sommarsi algebricamente alle sollecitazioni esterne.

    Nell'algoritmo già proposto per decidere la compressione o meno del singolo bullone, le tensioni determinate nelle coordinate del singolo bullone vanno anch'esse sommate algebricamente alla tensione di trazione già presente nel bullone per effetto della pretensione.

    A questo punto però, se il risultato fosse che un bullone è compresso, e quindi di fatto non considerato nell'algoritmo stesso, anche N_pret ed M_pret dovrebbero variare. Quindi le varie iterazioni vanno fatte di volta in volta non soltanto con una geometria che va variando iterazione per iterazione, ma anche con sollecitazioni che si modificano (o possono modificarsi) ad ogni iterazione.
    E prevedo loop infiniti........
     
    Top
    .
  2.     +1   -1
     
    .
    Avatar

    Member

    Group
    Member
    Posts
    766
    Reputation
    +23

    Status
    Offline
    CITAZIONE (zax2013 @ 30/7/2015, 18:54) 
    Ma perchè non approfittare della presenza e della voglia di intervenire in questo topic di Paolo Rugarli?
    .....
    .....
    .....
    Rimaniamo al momento in ambito SLE.

    Con una stretta analogia con quanto si fa generalmente in ambito c.a.p., io semplicemente determinerei, conoscendo la pretensione di ogni singolo bullone, le caratteristiche di sollecitazione 'risultanti', intese come N_pret e M_pret, agenti globalmente sulla sezione.
    Sollecitazioni queste che andranno a sommarsi algebricamente alle sollecitazioni esterne.

    Nell'algoritmo già proposto per decidere la compressione o meno del singolo bullone, le tensioni determinate nelle coordinate del singolo bullone vanno anch'esse sommate algebricamente alla tensione di trazione già presente nel bullone per effetto della pretensione.

    A questo punto però, se il risultato fosse che un bullone è compresso, e quindi di fatto non considerato nell'algoritmo stesso, anche N_pret ed M_pret dovrebbero variare. Quindi le varie iterazioni vanno fatte di volta in volta non soltanto con una geometria che va variando iterazione per iterazione, ma anche con sollecitazioni che si modificano (o possono modificarsi) ad ogni iterazione.
    E prevedo loop infiniti........

    Secondo me riprendendo quanto detto a suo tempo da Francesco Coppola per i trefoli nel cap, sarebbe da prendere la deformazione dei bulloni derivata dalla pretensione, e non un N_pret equivalente come fosse una forza esterna da addizionare alle altre.
     
    Top
    .
  3. Paolo Rugarli
        +1   -1
     
    .

    User deleted


    A causa di un guasto la mia connessione e' ancora morta. Dal cellulare scrivere mi è penoso.
    Appena riesco dirò qualcosa su quanto mi avete chiesto
    Bye
     
    Top
    .
  4.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    2,942
    Reputation
    +187

    Status
    Offline
    Tex non sono d'accordo.
    Francesco ti aveva risposto a suo tempo riguardo alle verifiche a rottura SLU. Ed effettivamente lì la situazione è differente (anche se, per assurdo, a me pare più semplice e lineare la questione).

    Io avevo precisato: limitiamoci al momento agli SLE.

    Nel programma che stavi illustrando sul c.a.p., la determinazione delle tensioni di esercizio agli SLE come vengono svolte? Considerando che i trefoli pre-tesi generano uno sforzo normale ed un momento (di precompressione) aggiuntivo alle sollecitazioni (momenti flettenti) esterne? Io penso di si.
     
    Top
    .
  5. Paolo Rugarli
        +1   -1
     
    .

    User deleted


    CITAZIONE (reversi @ 29/7/2015, 19:09) 
    e dai, dai, voglio proprio vedere: https://bar-ingegneria.forumfree.it/?t=71173777
    :lol: :lol:

    Sembra che la mia connessione in ufficio ora funzioni.
    Allora, la "provocazione" tra il faceto ed il serio di reversi andava raccolta. Il suo ghirigoro però richiede troppe coordinate per un divertissment di fine Luglio, quindi spero che si accontenti di questo

    ghirigoro0

    Ulteriori immagini si possono trovare su you tube, dove non ho mancato di riutilizzare la "provocazione".

    https://youtu.be/fKSxZmqVn6s

    Leggevo sulla New York Review of Books (un modo utile per esercitare l'inglese, che consiglio), un articolo sui fratelli Wright. Solo quando a Parigi una vasta folla li vide materialmente volare con il loro "aeroplano" il trattamento loro riservato cessò: un trattamento a metà tra l'incredulità e il sospetto di essere dei truffatori. Nemo propheta in patria.

    Ora, non è che io mi voglia paragonare a loro. Però, se dico che studio questa materia da solo dal 2000 e che il software che ho messo a punto è davvero generale, capisco che ci sia molta incredulità. Già riscontrata peraltro. Ma io ci lavoro da 15 anni.... non continuativamente.

    Allora, non è che possa fare "tutto". Ma certamente uno o due ordini di grandezza di più di quello che si vede in giro, e lo dico senza spocchia, con assoluta tranquillità. Il più grande problema che io vedo consiste nel vincere la incredulità, da un lato, e dall'altro vecchi abiti mentali che entrano in palese conflitto con la realtà dei fatti.

    Siccome sono orgoglioso del mio lavoro voglio anche che la sua paternità sia certa. Quindi sto scrivendo un libro (in inglese) di cui Vi sottopongo il primo capitolo introduttivo.
    www.castaliaweb.com/posta/SteelConnectionAnalysis.pdf
    In questo primo capitolo trovate le motivazioni che mi hanno spinto a dedicare così tanto tempo al problema delle connessioni metalliche, e trovate anche spiegati (almeno in fase di draft) i motivi per cui a me pare che molta della discussione e della ricerca oggi sia male indirizzata.

    Ma in altri Paesi hanno ben capito quale debba essere la tendenza e stanno già lavorando a idee simili. E' in specie sempre qui in Italia che si resta ancorati al "buon vecchio" tempo andato, forzando sempre e comunque le formule semplificate anche quando è temerario o impossibile.

    Di recente, i green books dello SCI (Steel Construction Institute) hanno scoperto che le "travi" hanno anche l'azione assiale e chiamano "robust design" un progetto che ne tenga conto ("must satisfy certain structural integrity requirements", ovvero ''un si deoono sfascià'). Ma, abbiano pazienza: non è che questo sia "robust" è che l'altro è sbagliato.
     
    Top
    .
  6. Paolo Rugarli
        +1   -1
     
    .

    User deleted


    CITAZIONE (zax2013 @ 30/7/2015, 18:54) 
    Ma voglio approfittare di Paolo per discutere della pretensione dei bulloni.

    Mah, l'argomento si presta a confusioni e cattive interpretazioni, ed è veramente complicato: anche io ho avuto molto da chiedermi sul tema e sul modo in cui trattarlo. La seguente immagine può far capire le ragioni per cui secondo me è discutibile asserire che le connessioni metalliche con bulloni pretesi debbano essere assimilate a travi in cap.

    prestressconnection

    Nelle travi in cap ciò che rileva ai fini delle verifiche è la sx. Ma questo non è vero per i collegamenti flangiati trave-trave o trave-colonna. Resta vero nei collegamenti con muri o plinti di fondazione, per i muri medesimi e per i plinti (o travi rovesce).

    La sx di compressione nelle piastre affacciate mobilitata dalla pre-trazione dei bulloni, non entra direttamente nelle verifiche delle piastre stesse. Se si esclude il punzonamento delle piastre, a carichi esterni nulli di fatto lo stato di sforzo usato ai fini delle verifiche per le piastre affacciate mi pare non muti che la pretrazione sia N o 2N (vedi figura b).

    Se si applica una trazione agli elementi che succede? Come si comunica la trazione applicata ai tubi ai bulloni? Non si comunica forse tramite una flessione delle flange, nonostante il pretiro dei bulloni? E il carico netto agente fuori piano sulla piastra in corrispondenza ai bulloni non è forse quello che calcolerei senza il pretiro? A me pare sia così.

    Le verifiche delle flange dipendono dalle sy ed sz che sono associate a una curvatura del piano medio (parallelo a YZ nella immagine in figura) delle piastre stesse.

    Le pressioni di contatto dovute alla pretrazione dei bulloni, che potrebbero caricare le flange fuori piano sono immediatamente contro bilanciate dalle contro-pressioni agenti sul piatto collegato e quindi non entrano nel carico neppure indirettamente.

    Diversa è invece la verifica dei bulloni dove però il tiro netto si può evincere con una somma algebrica, e così il taglio limite per attrito.

    Un caso a sé la modellazione "pure fem" (per la terminologia qui c'è una mia lezione all'ordine di Milano:
    www.castaliaweb.com/ita/P/CSE/CSE_PRESENTATION_SLIDES.pdf, se poi uno vuole c'è anche un video su you tube di quella lezione).

    Qui, nel pure fem, il pretiro dei bulloni "saturati" (ovvero modellati esplicitamente con elementi nel modello pure fem) dovrà essere tenuto in conto in qualche modo? Ai fini delle verifiche dei bulloni stessi certamente. Ai fini di un calcolo fem tale pretiro genererebbe delle deformazioni "da punzonamento" (perché le piastre si deformano sotto i carichi concentrati, pur se contrastati, a causa delle sz di punzonamento) e solo una analisi con non linearità di contatto potrebbe dare risultati di una qualche attendibilità. Credo.

    Dico credo perché sul pure fem di nodi con pretiro non ho ancora lavorato a sufficienza (nonostante i 15 anni, passati a risolvere tanti altri problemi). Qui, come ha ben intravisto zax, c'è comunque ancora da lavorare.
     
    Top
    .
  7.     +1   -1
     
    .
    Avatar

    Member

    Group
    Member
    Posts
    766
    Reputation
    +23

    Status
    Offline
    Il foglio di calcolo per la verifica del giunto flangiato ULS potrebbe essere sviluppato utilizzando lo zaxcode. Io non vedo grosse difficoltà per la stesura. I legami costitutivi degli acciai utilizzati sono due, uno per i bulloni ed uno per la flangia. Definiamo un legame elasto-plastico con il ramo solo a trazione per i bulloni, mentre per la flangia un legame elasto-plastico con il solo ramo a compressione. Per tener conto della forza di serraggio dei bulloni si potrebbe prevedere un campo che contiene la deformazione del bullone a seguito del serraggio, in pratica basterebbe misurare l'allungamento della vite a seguito del serraggio. Questo dato sarà facoltativo qualora si ritenesse ininfluente od inopportuno al calcolo. La condizione di termine del calcolo sarà il raggiungimento dell'1% della deformazione dell'acciaio costituente il bullone oppure della flangia. Il calcolo sarà valido solo nel caso di flange sufficientemente rigide in cui sia applicabile il principio di conservazione delle superfici piane.
     
    Top
    .
  8.     +1   -1
     
    .
    Avatar

    Member

    Group
    Member
    Posts
    766
    Reputation
    +23

    Status
    Offline
    Una prima bozza per comporre il foglio potrebbe essere quella sottostante, che permette un input sia manuale che parametrizzato.
    Ho pensato utile inserire i bulloni in due forme non esclusive, con discretizzazione poligonale oppure puntuali come avviene per le classiche barre di armatura ordinaria.
    Attached Image
    input

     
    Top
    .
  9.     +1   -1
     
    .
    Avatar

    Member

    Group
    Member
    Posts
    766
    Reputation
    +23

    Status
    Offline
    Primi interventi al vecchio codice

    CODICE
    ' -------------------------------------------------------------------------- '
    ' Struttura dati in cui sono definiti i dati dei singoli poligoni che com-   '
    ' pongono la sezione                                                         '
    ' -------------------------------------------------------------------------- '
    Public Type poligono_sezione
      id As Integer                        ' 0=Flangia 1=Bullone
      X() As Double                        ' coordinata x del vertice (1 To NMaxVrt)
      Y() As Double                        ' coordinata y del vertice (1 To NMaxVrt)
      numv As Integer                      ' numero di vertici del poligono
      omog As Double                       ' 1=pieno -1=foro altri casi valore tra 0 e 1
      traz As Integer                      ' 0=non reagente a trazione; 1=reagente a trazione
      sigma() As Double                    ' (1 To NMaxVrt)
    End Type
    ' -------------------------------------------------------------------------- '

    'FLANGIA
    Public fyk As Double                    'fyk tensione di snervamento
    Public ftk As Double                    'ftk tensione ultima
    Public gammaf As Double                 'coefficiente di sicurezza della flangia
    Public E_Flangia As Double              'Modulo elastico flangia
    Public eps0Fla As Double                'deformazione della flangia dove inizia il tratto plastico
    Public epsuFla As Double                'deformazione ultima della flangia

    'BULLONI PUNTUALI
    Public n_bul As Integer                 'Numero bulloni
    Public bx() As Double                   'Vettore (n_bul_sez) coordinate x  bulloni [mm]
    Public by() As Double                   'Vettore (n_bul_sez) coordinate y  bulloni [mm]
    Public Asp() As Double                  'Vettore (n_bul_sez) aree nominali bulloni [cm²]
    Public nsbf As Double                   'coefficiente di omogeneizzazione bulloni alla flangia
    Public fyb As Double                    'fyb tensione di snervamento
    Public ftb As Double                    'ftb tensione ultima
    Public gammab As Double                 'coefficiente di sicurezza dei bulloni
    Public E_Bul As Double                  'Modulo elastico bulloni
    Public eps0Bul As Double                'deformazione dei bulloni dove inizia il tratto plastico
    Public epsuBul As Double                'deformazione ultima dei bulloni

    'BULLONI POLIGONALI
    Public n_bulp As Integer                 'Numero bulloni
    Public nsbfp As Double                   'coefficiente di omogeneizzazione bulloni alla flangia
    Public fybp As Double                    'fyb tensione di snervamento
    Public ftbp As Double                    'ftb tensione ultima
    Public gammabp As Double                 'coefficiente di sicurezza dei bulloni
    Public E_Bulp As Double                  'Modulo elastico bulloni
    Public eps0Bulp As Double                'deformazione dei bulloni dove inizia il tratto plastico
    Public epsuBulp As Double                'deformazione ultima dei bulloni
    Attached Image
    input1

     
    Top
    .
  10.     +1   -1
     
    .
    Avatar

    Member

    Group
    Member
    Posts
    766
    Reputation
    +23

    Status
    Offline
    Produce la geometria della flangia circolare parametricamente

    CODICE
    Public Sub GeneraGeometria()
       Dim i As Integer
       Dim j As Integer
       Dim k As Integer
       Dim dalfa As Double
       Dim D As Double
       Dim R As Double
       Dim dalfab As Double
       Dim Db As Double
       Dim Rb As Double
       Dim dalfaf As Double
       Dim Df As Double
       Dim Rf As Double
       
       Range("tutto_input").ClearContents
       Range("ArmaturaPuntuale").ClearContents
       
       Dim ndiv As Integer
       ndiv = Range("X57")
       
       'flangia con almeno 3 vertici
       If ndiv < 3 Then Exit Sub
       dalfa = 2 * pi / ndiv
       
       D = Range("R57")
       R = D / 2
       For i = 0 To ndiv
           Cells(10 + i, 1) = i
           Cells(10 + i, 2) = R * Sin(i * dalfa)
           Cells(10 + i, 3) = R * Cos(i * dalfa)
       Next i
       
       D = Range("S57")
       R = D / 2
       For i = 0 To ndiv
           Cells(10 + i, 4) = i
           Cells(10 + i, 5) = R * Sin(i * dalfa)
           Cells(10 + i, 6) = R * Cos(i * dalfa)
       Next i
       
       'almeno 1 bullone
       Dim nb As Integer
       nb = Range("U57")
       If nb < 1 Then Exit Sub
       dalfab = 2 * pi / nb
       D = Range("T57")
       R = D / 2
       If Range("W58") = "Bulloni puntuali" Then
           For i = 1 To nb
               Cells(10 + i - 1, 10) = i
               Cells(10 + i - 1, 11) = R * Sin(i * dalfab)
               Cells(10 + i - 1, 12) = R * Cos(i * dalfab)
               Cells(10 + i - 1, 13) = Range("W57")
           Next i
       Else
           Db = Range("W57")
           Rb = Db / 2
           k = 0
           For i = 1 To nb
               For j = 0 To ndiv
                   Cells(10 + j + k, 7) = j
                   Cells(10 + j + k, 8) = R * Sin(i * dalfab) + Rb * Sin(j * dalfa)
                   Cells(10 + j + k, 9) = R * Cos(i * dalfab) + Rb * Cos(j * dalfa)
               Next j
               k = k + ndiv + 2
           Next i
       End If

       'almeno 1 foro
       Dim nf As Integer
       nf = Range("U57")
       If nf < 1 Then Exit Sub
       dalfaf = 2 * pi / nb
       D = Range("T57")
       R = D / 2
       Df = Range("V57")
       Rf = Df / 2
       k = ndiv + 2
       For i = 1 To nb
           For j = 0 To ndiv
               Cells(10 + j + k, 4) = j
               Cells(10 + j + k, 5) = R * Sin(i * dalfaf) + Rf * Sin(j * dalfa)
               Cells(10 + j + k, 6) = R * Cos(i * dalfaf) + Rf * Cos(j * dalfa)
           Next j
           k = k + ndiv + 2
       Next i
       
    End Sub



    Caricamento dati dal foglio, lasciando la libertà alla customizzazione manuale da parte dell'utente degli stessi.

    CODICE
    Public Sub Carica_dati()
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer

    'MATERIALE FLANGIA
    'ricopia materiali
    Dim t As Double
    t = Range("B8")         'spessore nominale del piatto flangia
    gammaf = Range("B7")    'coefficiente di sicurezza della flangia
    E_Flangia = Range("B3") 'Modulo elastico flangia

    'LAMINATI A CALDO CON PROFILI A SEZIONE APERTA
    'UNI EN 10025-2
    Select Case Range("C2")
       Case "S235"
           If t <= 40 Then
               fyk = 235 'fyk tensione di snervamento
               ftk = 360 'ftk tensione ultima
           Else
               fyk = 215 'fyk tensione di snervamento
               ftk = 360 'ftk tensione ultima
           End If
       Case "S275"
           If t <= 40 Then
               fyk = 275 'fyk tensione di snervamento
               ftk = 430 'ftk tensione ultima
           Else
               fyk = 255 'fyk tensione di snervamento
               ftk = 410 'ftk tensione ultima
           End If
       Case "S355"
           If t <= 40 Then
               fyk = 355 'fyk tensione di snervamento
               ftk = 510 'ftk tensione ultima
           Else
               fyk = 335 'fyk tensione di snervamento
               ftk = 470 'ftk tensione ultima
           End If
       Case "S450"
            If t <= 40 Then
               fyk = 440 'fyk tensione di snervamento
               ftk = 550 'ftk tensione ultima
           Else
               fyk = 420 'fyk tensione di snervamento
               ftk = 550 'ftk tensione ultima
           End If
    End Select

    'riportiamo valori
    Range("B4") = 1#
    Range("B5") = fyk
    Range("B6") = ftk

    'calcolo valori derivati
    eps0Fla = fyk / E_Flangia   'deformazione della flangia dove inizia il tratto plastico
    epsuFla = 0.01              'deformazione ultima della flangia

    '--------------------------------------------------------------------------------------
    'MATERIALE BULLONI POLIGONALI
    gammabp = Range("H7")   'coefficiente di sicurezza dei bulloni
    E_Bulp = Range("H3")    'Modulo elastico bulloni

    'VITI
    'EN ISO 898-1:2001
    Select Case Range("I2")
       Case "4.6"
           fybp = 240 'fyb tensione di snervamento
           ftbp = 400 'ftb tensione ultima
        Case "5.6"
           fybp = 300 'fyb tensione di snervamento
           ftbp = 500 'ftb tensione ultima
       Case "6.8"
           fybp = 480 'fyb tensione di snervamento
           ftbp = 600 'ftb tensione ultima
       Case "8.8"
           fybp = 649 'fyb tensione di snervamento
           ftbp = 800 'ftb tensione ultima
       Case "10.9"
           fybp = 900  'fyb tensione di snervamento
           ftbp = 1000 'ftb tensione ultima
    End Select

    'riportiamo valori
    nsbfp = E_Flangia / E_Bulp 'coefficiente di omogeneizzazione bulloni alla flangia
    Range("H4") = nsbfp
    Range("H5") = fybp
    Range("H6") = ftbp

    'calcolo valori derivati
    eps0Bulp = fybp / E_Bulp   'deformazione dei bulloni dove inizia il tratto plastico
    epsuBulp = 0.01            'deformazione ultima dei bulloni
    'n_bulp = Range("U57")      'Numero bulloni
    n_bulp = 0      'Numero bulloni


    '--------------------------------------------------------------------------------------
    'MATERIALE BULLONI PUNTUALI
    gammab = Range("K7")   'coefficiente di sicurezza dei bulloni
    E_Bul = Range("K3")    'Modulo elastico bulloni

    'VITI
    'EN ISO 898-1:2001
    Select Case Range("L2")
       Case "4.6"
           fyb = 240 'fyb tensione di snervamento
           ftb = 400 'ftb tensione ultima
        Case "5.6"
           fyb = 300 'fyb tensione di snervamento
           ftb = 500 'ftb tensione ultima
       Case "6.8"
           fyb = 480 'fyb tensione di snervamento
           ftb = 600 'ftb tensione ultima
       Case "8.8"
           fyb = 649 'fyb tensione di snervamento
           ftb = 800 'ftb tensione ultima
       Case "10.9"
           fyb = 900  'fyb tensione di snervamento
           ftb = 1000 'ftb tensione ultima
    End Select

    'riportiamo valori
    nsbf = E_Flangia / E_Bul 'coefficiente di omogeneizzazione bulloni alla flangia
    Range("K4") = nsbf
    Range("K5") = fyb
    Range("K6") = ftb

    'calcolo valori derivati
    eps0Bul = fyb / E_Bul     'deformazione dei bulloni dove inizia il tratto plastico
    epsuBul = 0.01            'deformazione ultima dei bulloni
    'n_bul = Range("U57")      'Numero bulloni
    n_bul = 0      'Numero bulloni

    'carica poligono flangia
    ReDim Flangia(100) As poligono_sezione
    k = 1
    ReDim Flangia(k).X(32000)
    ReDim Flangia(k).Y(32000)
    j = 0
    For i = 10 To 32000
       j = j + 1
       If Cells(i, 1) <> "" Then
           Flangia(k).X(j) = Cells(i, 2)
           Flangia(k).Y(j) = Cells(i, 3)
       Else
           j = j - 1 'elimino ultimo vertice uguale al primo
           ReDim Preserve Flangia(k).X(j)
           ReDim Preserve Flangia(k).Y(j)
           ReDim Flangia(k).sigma(j)
           Flangia(k).id = 0     'flangia
           Flangia(k).numv = j
           Flangia(k).omog = 1#  'pieno
           Flangia(k).traz = 0   'non resistente a trazione
           k = k + 1
           ReDim Flangia(k).X(32000)
           ReDim Flangia(k).Y(32000)
           If Cells(i + 1, 1) = "" Then Exit For 'fine lista
           j = 0
       End If
    Next i


    'fori flangia
    For i = 10 To 32000
       j = j + 1
       If Cells(i, 4) <> "" Then
           Flangia(k).X(j) = Cells(i, 5)
           Flangia(k).Y(j) = Cells(i, 6)
       Else
           j = j - 1 'elimino ultimo vertice uguale al primo
           ReDim Preserve Flangia(k).X(j)
           ReDim Preserve Flangia(k).Y(j)
           ReDim Flangia(k).sigma(j)
           Flangia(k).id = 0    'flangia
           Flangia(k).numv = j
           Flangia(k).omog = 0# 'foro
           Flangia(k).traz = 0  'non resistente a trazione
           k = k + 1
           ReDim Flangia(k).X(32000)
           ReDim Flangia(k).Y(32000)
           If Cells(i + 1, 4) = "" Then Exit For 'fine lista
           j = 0
       End If
    Next i


    'bulloni poligonali
    For i = 10 To 32000
       j = j + 1
       If Cells(i, 7) <> "" Then
           Flangia(k).X(j) = Cells(i, 8)
           Flangia(k).Y(j) = Cells(i, 9)
       Else
           j = j - 1 'elimino ultimo vertice uguale al primo
           ReDim Preserve Flangia(k).X(j)
           ReDim Preserve Flangia(k).Y(j)
           ReDim Flangia(k).sigma(j)
           Flangia(k).id = 1    'bullone
           Flangia(k).numv = j
           Flangia(k).omog = 1# 'pieno
           Flangia(k).traz = 1  'resistente a trazione
           k = k + 1
           ReDim Flangia(k).X(32000)
           ReDim Flangia(k).Y(32000)
           nbulp = nbulp + 1 'numero bulloni poligonali
           If Cells(i + 1, 7) = "" Then Exit For 'fine lista
           j = 0
       End If
    Next i

    'ridimensiono
    k = k - 1
    ReDim Preserve Flangia(k) As poligono_sezione
    N_POLI = k
    NMaxPoli = k

    'bulloni puntuali
    j = 0
    For i = 10 To 109
       j = j + 1
       If Cells(i, 10) <> "" Then
           nbul = nbul + 1 'numero bulloni puntuali
           ReDim Preserve bx(nbul)
           ReDim Preserve by(nbul)
           ReDim Preserve Asp(nbul)
           bx(j) = Cells(i, 11)
           by(j) = Cells(i, 12)
           Asp(j) = Cells(i, 14)
       Else
           If Cells(i + 1, 10) = "" Then Exit For 'fine lista
           j = 0
       End If
    Next i

    'Parametri per l'integrazione
    SpMinFibre = Foglio3.Range("V6") ' spessore minimo delle fibre per l'integrazione in [mm]
    NMaxFibre = Foglio3.Range("W6")  ' numero massimo di fibre per l'integrazione

    'punti del dominio iniziali
    npt = Foglio3.Range("V2")
    NMaxDom = npt
    'numero massimo di infittimenti locali consentiti
    ninf = Foglio3.Range("W2")

    'assegna_valori_sollecitazioni
    Dim i As Integer
    ReDim soll(NMAXCOMB) As soll_esterne
    For i = 1 To NMAXCOMB / 2
       soll(i).n = Foglio2.Cells(3 + i, 2) * 1000
       soll(i).Mx = Foglio2.Cells(3 + i, 3) * 1000000
       soll(i).My = Foglio2.Cells(3 + i, 4) * 1000000
    Next i
    For i = NMAXCOMB / 2 + 1 To NMAXCOMB
       soll(i).n = Foglio3.Cells(-22 + i, 2) * 1000
       soll(i).Mx = Foglio3.Cells(-22 + i, 3) * 1000000
       soll(i).My = Foglio3.Cells(-22 + i, 4) * 1000000
    Next i

    End Sub
     
    Top
    .
24 replies since 24/7/2015, 21:54   4505 views
  Share  
.