Está en la página 1de 3

Mdulo1 - 1 Option Explicit Sub Comprobacion() ' ' Iteracin para calcular el axil segn el EC4 ' 'Variables

Dim Itest As Integer 'ndice que recorre los tests verticalmente Dim Row0 As Integer 'Posicin de la fila cero Dim Nay, Nby, Ncy, Ndy, May, Mby, Mcy, Mdy As Double 'Puntos en el diagrama de interaccin en el ej e Y Dim Naz, Nbz, Ncz, Ndz, Maz, Mbz, Mcz, Mdz As Double 'Puntos en el diagrama de interaccin en el ej e Z Dim Nsd As Double 'Axil que va a ser iterado Dim Mmaxy, Mmaxz, Msdy, Msdz As Double 'Momentos debidos a la excentricidad, los efectos de 2 ord en y las imperfecciones Dim ey, ez As Double 'Excentricidades en ambos ejes Dim ky, kz, k0y, k0z As Double 'Amplificador de efectos de segundo orden Dim Ncr2y, Ncr2z As Double 'Axil de Euler de 2 orden Dim IncrNsd As Double 'Incremento de axil de clculo Dim Muy, Muz, Muyz As Double 'Factor de aprovechamiento en los ejes y, z y combinado par a biaxial Dim betay, betaz As Double 'Coeficiente de momentos en los extremos del elemento (CM) Dim e0y, e0z As Double 'Excentricidad debida a imperfecciones Dim alfaM As Double 'Coeficiente 'Inicializacin de variables Row0 = 4 Itest = 1 IncrNsd = 0.1 'Bucle que recorre los tests Do While Sheets("Hoja1").Cells(Row0 + Itest, 3) <> "" 'Hacer mientras en la columna C haya algn da to Nsd = 0 'Capturamos los puntos de la curva de interaccin 'Valores correspondientes a la flexin en el eje fuerte (Y) Nay May Ncy Mcy Ndy Mdy Nby Mby = = = = = = = = Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 + + + + + + + + Itest, Itest, Itest, Itest, Itest, Itest, Itest, Itest, 102) 103) 104) 105) 106) 107) 108) 109)

ez = Sheets("Hoja1").Cells(Row0 + Itest, 28) betay = Sheets("Hoja1").Cells(Row0 + Itest, 124) e0y = Sheets("Hoja1").Cells(Row0 + Itest, 129) Ncr2y = Sheets("Hoja1").Cells(Row0 + Itest, 121) 'Valores correspondientes a la flexin en el eje dbil (Z) Naz Maz Ncz Mcz Ndz Mdz Nbz Mbz = = = = = = = = Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 + + + + + + + + Itest, Itest, Itest, Itest, Itest, Itest, Itest, Itest, 111) 112) 113) 114) 115) 116) 117) 118)

ey = Sheets("Hoja1").Cells(Row0 + Itest, 29) betaz = Sheets("Hoja1").Cells(Row0 + Itest, 127) e0z = Sheets("Hoja1").Cells(Row0 + Itest, 131) Ncr2z = Sheets("Hoja1").Cells(Row0 + Itest, 122) 'Otros valores

Mdulo1 - 2 alfaM = Sheets("Hoja1").Cells(Row0 + Itest, 133) 'Bucle para calcular iterativamente el axil en cada fila Do Nsd = Nsd + IncrNsd 'Estudio del eje Y If (Nsd <= Nay) And (Nsd > Ncy) Then Mmaxy = (Nay * Mcy - Ncy * May) / (Nay - Ncy) + (May - Mcy) / (Nay - Ncy) * Nsd ElseIf (Nsd <= Ncy) And (Nsd > Ndy) Then Mmaxy = (Ncy * Mdy - Ndy * Mcy) / (Ncy - Ndy) + (Mcy - Mdy) / (Ncy - Ndy) * Nsd Else Mmaxy = (Ndy * Mby - Nby * Mdy) / (Ndy - Nby) + (Mdy - Mby) / (Ndy - Nby) * Nsd End If ky = WorksheetFunction.Max(1, betay / (1 - Nsd / Ncr2y)) k0y = WorksheetFunction.Max(1, 1 / (1 - Nsd / Ncr2y)) Msdy = Nsd * (ez * ky + e0y * k0y) * 0.001 Muy = Msdy / (Mmaxy * alfaM) 'Estudio del eje Z If (Nsd <= Naz) And (Nsd > Ncz) Then Mmaxz = (Naz * Mcz - Ncz * Maz) / (Naz - Ncz) + (Maz - Mcz) / (Naz - Ncz) * Nsd ElseIf (Nsd <= Ncz) And (Nsd > Ndz) Then Mmaxz = (Ncz * Mdz - Ndz * Mcz) / (Ncz - Ndz) + (Mcz - Mdz) / (Ncz - Ndz) * Nsd Else Mmaxz = (Ndz * Mbz - Nbz * Mdz) / (Ndz - Nbz) + (Mdz - Mbz) / (Ndz - Nbz) * Nsd End If kz = WorksheetFunction.Max(1, betaz / (1 - Nsd / Ncr2z)) k0z = WorksheetFunction.Max(1, 1 / (1 - Nsd / Ncr2z)) Msdz = Nsd * (ey * kz + e0z * k0z) * 0.001 Muz = Msdz / (Mmaxz * alfaM) Muyz = Msdy / Mmaxy + Msdz / Mmaxz Loop While Muy < 0.99 And Muz < 0.99 'Volcamos los resultados calculados a sus celdas de la hoja excel Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Sheets("Hoja1").Cells(Row0 Itest = Itest + 1 + + + + + + + + + + + + Itest, Itest, Itest, Itest, Itest, Itest, Itest, Itest, Itest, Itest, Itest, Itest, 125) 128) 130) 132) 134) 135) 136) 137) 138) 139) 140) 141) = = = = = = = = = = = = ky kz k0y k0z Mmaxy Mmaxz Nsd Msdy Msdz Muy Muz Muyz

Mdulo1 - 3 Loop

End Sub

También podría gustarte