|
@@ -10,6 +10,30 @@ import math
|
|
|
import numpy as np
|
|
import numpy as np
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+# Print iterations progress
|
|
|
|
|
+def printProgressBar (iteration, total, prefix = '', suffix = '', decimals = 1, length = 100, fill = '█', printEnd = "\r"):
|
|
|
|
|
+ """
|
|
|
|
|
+ Call in a loop to create terminal progress bar
|
|
|
|
|
+ @params:
|
|
|
|
|
+ iteration - Required : current iteration (Int)
|
|
|
|
|
+ total - Required : total iterations (Int)
|
|
|
|
|
+ prefix - Optional : prefix string (Str)
|
|
|
|
|
+ suffix - Optional : suffix string (Str)
|
|
|
|
|
+ decimals - Optional : positive number of decimals in percent complete (Int)
|
|
|
|
|
+ length - Optional : character length of bar (Int)
|
|
|
|
|
+ fill - Optional : bar fill character (Str)
|
|
|
|
|
+ printEnd - Optional : end character (e.g. "\r", "\r\n") (Str)
|
|
|
|
|
+ """
|
|
|
|
|
+ percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total)))
|
|
|
|
|
+ filledLength = int(length * iteration // total)
|
|
|
|
|
+ bar = fill * filledLength + '-' * (length - filledLength)
|
|
|
|
|
+ print(f'\r{prefix} |{bar}| {percent}% {suffix}', end = printEnd)
|
|
|
|
|
+ # Print New Line on Complete
|
|
|
|
|
+ if iteration == total:
|
|
|
|
|
+ print()
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
#diccionario donde se encuentran todos los coef de comb acciones de las normas
|
|
#diccionario donde se encuentran todos los coef de comb acciones de las normas
|
|
|
normas = {
|
|
normas = {
|
|
|
"IAPF" : {
|
|
"IAPF" : {
|
|
@@ -145,14 +169,14 @@ def borrar_combos_existentes():
|
|
|
if comboNames[0] > 0:
|
|
if comboNames[0] > 0:
|
|
|
for name in comboNames[1]:
|
|
for name in comboNames[1]:
|
|
|
ret = SapModel.RespCombo.Delete(name)
|
|
ret = SapModel.RespCombo.Delete(name)
|
|
|
- print(f"Se han eliminado {comboNames[0]} combinaciones de respuesta.")
|
|
|
|
|
|
|
+ printProgressBar(comboNames[1].index(name)+1, comboNames[0], prefix = 'Borrando combinaciones existentes:', suffix = 'Completado', length = 50)
|
|
|
|
|
|
|
|
def borrar_load_cases():
|
|
def borrar_load_cases():
|
|
|
case_names = SapModel.LoadCases.GetNameList()
|
|
case_names = SapModel.LoadCases.GetNameList()
|
|
|
if case_names[0] > 0:
|
|
if case_names[0] > 0:
|
|
|
for name in case_names[1]:
|
|
for name in case_names[1]:
|
|
|
ret = SapModel.LoadCases.Delete(name)
|
|
ret = SapModel.LoadCases.Delete(name)
|
|
|
- print(f"Se han eliminado {case_names[0]} casos de carga.")
|
|
|
|
|
|
|
+ printProgressBar(case_names[1].index(name)+1, case_names[0], prefix = 'Borrando casos de carga existentes:', suffix = 'Completado', length = 50)
|
|
|
|
|
|
|
|
|
|
|
|
|
def borrar_patrones_carga():
|
|
def borrar_patrones_carga():
|
|
@@ -160,7 +184,7 @@ def borrar_patrones_carga():
|
|
|
if patternNames[0] > 0:
|
|
if patternNames[0] > 0:
|
|
|
for name in patternNames[1]:
|
|
for name in patternNames[1]:
|
|
|
ret = SapModel.LoadPatterns.Delete(name)
|
|
ret = SapModel.LoadPatterns.Delete(name)
|
|
|
- print(f"Se han eliminado {patternNames[0]} patrones de carga.")
|
|
|
|
|
|
|
+ printProgressBar(patternNames[1].index(name)+1, patternNames[0], prefix = 'Borrando patrones de carga existentes:', suffix = 'Completado', length = 50)
|
|
|
|
|
|
|
|
|
|
|
|
|
respuesta = input("¿Deseas borrar todos las combinaciones existentes? (Y/n): ")
|
|
respuesta = input("¿Deseas borrar todos las combinaciones existentes? (Y/n): ")
|
|
@@ -182,6 +206,7 @@ if respuesta.lower() == 'y' or len(respuesta) == 0:
|
|
|
else: "IAP"
|
|
else: "IAP"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
#Extraccion de datos del excel
|
|
#Extraccion de datos del excel
|
|
|
|
|
|
|
|
|
|
|
|
@@ -278,9 +303,8 @@ def validar_combinacion(comb, patrones, compatibilidad_df, restricciones_df):
|
|
|
restriccion = restricciones_df.loc[:,"Si y solo si"]
|
|
restriccion = restricciones_df.loc[:,"Si y solo si"]
|
|
|
for iter, res in enumerate(restriccion):
|
|
for iter, res in enumerate(restriccion):
|
|
|
if res:
|
|
if res:
|
|
|
- if comb[iter]:
|
|
|
|
|
- idx = patrones.index(res)
|
|
|
|
|
- if not(comb[idx]):
|
|
|
|
|
|
|
+ idx = patrones.index(res)
|
|
|
|
|
+ if comb[iter] and not comb[idx]:
|
|
|
return False
|
|
return False
|
|
|
#comprueba que las cargas especificadas como permanentes se encuentran en este caso de carga
|
|
#comprueba que las cargas especificadas como permanentes se encuentran en este caso de carga
|
|
|
permanentes = restricciones_df.loc[:,"Permanentes"]
|
|
permanentes = restricciones_df.loc[:,"Permanentes"]
|
|
@@ -303,7 +327,7 @@ def validar_combinacion(comb, patrones, compatibilidad_df, restricciones_df):
|
|
|
for iter, sis in enumerate(sismo):
|
|
for iter, sis in enumerate(sismo):
|
|
|
if sis == "Sismo":
|
|
if sis == "Sismo":
|
|
|
if comb[iter]:
|
|
if comb[iter]:
|
|
|
- for jter in comb:
|
|
|
|
|
|
|
+ for jter, _ in enumerate(comb):
|
|
|
if restricciones_df.loc[jter,"Tipo"] == "Variable":
|
|
if restricciones_df.loc[jter,"Tipo"] == "Variable":
|
|
|
num_var += 1
|
|
num_var += 1
|
|
|
if num_var > 1:
|
|
if num_var > 1:
|
|
@@ -420,7 +444,7 @@ for combo in combinaciones_validas:
|
|
|
coeficientes_ELSF[i] = normas["IAPF"]["ELS"]["Favorable"]["Persistente"]["NoCte"]
|
|
coeficientes_ELSF[i] = normas["IAPF"]["ELS"]["Favorable"]["Persistente"]["NoCte"]
|
|
|
coeficientes_ELSCP[i] = normas["IAPF"]["ELS"]["Favorable"]["Persistente"]["NoCte"]
|
|
coeficientes_ELSCP[i] = normas["IAPF"]["ELS"]["Favorable"]["Persistente"]["NoCte"]
|
|
|
elif restricciones_df.loc[i,"Tipo"] == "Accidental":
|
|
elif restricciones_df.loc[i,"Tipo"] == "Accidental":
|
|
|
- if combo[i] == 1: n_acc += 1
|
|
|
|
|
|
|
+ if combo[i] != 0: n_acc += 1
|
|
|
if restricciones_df.loc[i,"Direccion"] == "Desfavorable":
|
|
if restricciones_df.loc[i,"Direccion"] == "Desfavorable":
|
|
|
#ELU
|
|
#ELU
|
|
|
coeficientes_ELUP[i] = 0
|
|
coeficientes_ELUP[i] = 0
|
|
@@ -440,7 +464,7 @@ for combo in combinaciones_validas:
|
|
|
coeficientes_ELSF[i] = 0
|
|
coeficientes_ELSF[i] = 0
|
|
|
coeficientes_ELSCP[i] = 0
|
|
coeficientes_ELSCP[i] = 0
|
|
|
elif restricciones_df.loc[i,"Tipo"] == "Variable":
|
|
elif restricciones_df.loc[i,"Tipo"] == "Variable":
|
|
|
- if combo[i] == 1: n_var += 1
|
|
|
|
|
|
|
+ if combo[i] != 0: n_var += 1
|
|
|
if restricciones_df.loc[i,"Direccion"] == "Desfavorable":
|
|
if restricciones_df.loc[i,"Direccion"] == "Desfavorable":
|
|
|
#ELU
|
|
#ELU
|
|
|
coeficientes_ELUP[i] = normas["IAPF"]["ELU"]["Desfavorable"]["Persistente"]["Variable"]
|
|
coeficientes_ELUP[i] = normas["IAPF"]["ELU"]["Desfavorable"]["Persistente"]["Variable"]
|
|
@@ -470,55 +494,82 @@ for combo in combinaciones_validas:
|
|
|
minorados_ELSF.clear()
|
|
minorados_ELSF.clear()
|
|
|
minorados_ELSCP.clear()
|
|
minorados_ELSCP.clear()
|
|
|
|
|
|
|
|
- if n_var == 1:
|
|
|
|
|
- coef_var_ELSF = np.ones(len(patrones))
|
|
|
|
|
- coef_var_ELSCP = np.ones(len(patrones))
|
|
|
|
|
- for i in range(len(combo)):
|
|
|
|
|
- if restricciones_df.loc[i,"Tipo"] == "Variable":
|
|
|
|
|
- if restricciones_df.loc[i,"Accion IAPF"] == "Trafico":
|
|
|
|
|
- coef_var_ELSF[i] = normas["IAPF"]["CoefVar"]["Trafico"]["psi1"][vias_cargadas if int(vias_cargadas) < 4 else "3"]
|
|
|
|
|
- coef_var_ELSCP[i] = normas["IAPF"]["CoefVar"]["Trafico"]["psi2"]
|
|
|
|
|
- else:
|
|
|
|
|
- coef_var_ELSF[i] = normas["IAPF"]["CoefVar"]["Resto"]["psi1"]
|
|
|
|
|
- coef_var_ELSCP[i] = normas["IAPF"]["CoefVar"]["Resto"]["psi2"]
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- while n_var > 1:
|
|
|
|
|
- minorados_ELUP.clear()
|
|
|
|
|
- minorados_ELSC.clear()
|
|
|
|
|
- minorados_ELSF.clear()
|
|
|
|
|
- minorados_ELSCP.clear()
|
|
|
|
|
- n_var -= 1
|
|
|
|
|
- #se busca la primera variable en el combo y se asigna el coeficiente
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if n_acc:
|
|
|
|
|
+ coef_var_ELUS = np.ones(len(patrones))
|
|
|
|
|
+ coef_var_ELUA = np.ones(len(patrones))
|
|
|
for i in range(len(combo)):
|
|
for i in range(len(combo)):
|
|
|
- coef_var_ELUP = np.ones(len(patrones))
|
|
|
|
|
- coef_var_ELSC = np.ones(len(patrones))
|
|
|
|
|
- coef_var_ELSF = np.ones(len(patrones))
|
|
|
|
|
- coef_var_ELSCP = np.ones(len(patrones))
|
|
|
|
|
- if restricciones_df.loc[i,"Tipo"] == "Variable":
|
|
|
|
|
- if restricciones_df.loc[i,"Accion IAPF"] == "Trafico":
|
|
|
|
|
- coef_var_ELSF[i] = normas["IAPF"]["CoefVar"]["Trafico"]["psi1"][vias_cargadas if int(vias_cargadas) < 4 else "3"]
|
|
|
|
|
- coef_var_ELSCP[i] = normas["IAPF"]["CoefVar"]["Trafico"]["psi2"]
|
|
|
|
|
- else:
|
|
|
|
|
- coef_var_ELSF[i] = normas["IAPF"]["CoefVar"]["Resto"]["psi1"]
|
|
|
|
|
- coef_var_ELSCP[i] = normas["IAPF"]["CoefVar"]["Resto"]["psi2"]
|
|
|
|
|
|
|
+ if (restricciones_df.loc[i,"Accion IAPF"] == "Sismo") and combo[i] != 0:
|
|
|
for j in range(len(combo)):
|
|
for j in range(len(combo)):
|
|
|
- if (restricciones_df.loc[j,"Tipo"] == "Variable") and (j != i):
|
|
|
|
|
- #se asigna el coeficiente de la variable al resto de variables
|
|
|
|
|
|
|
+ if (restricciones_df.loc[j,"Tipo"] == "Variable") and j:
|
|
|
if restricciones_df.loc[j,"Accion IAPF"] == "Trafico":
|
|
if restricciones_df.loc[j,"Accion IAPF"] == "Trafico":
|
|
|
- coef_var_ELUP[j] = normas["IAPF"]["CoefVar"]["Trafico"]["psi0"]
|
|
|
|
|
- coef_var_ELSC[j] = normas["IAPF"]["CoefVar"]["Trafico"]["psi0"]
|
|
|
|
|
- coef_var_ELSF[j] = normas["IAPF"]["CoefVar"]["Trafico"]["psi2"]
|
|
|
|
|
- coef_var_ELSCP[j] = normas["IAPF"]["CoefVar"]["Trafico"]["psi2"]
|
|
|
|
|
|
|
+ coef_var_ELUS[j] = normas["IAPF"]["CoefVar"]["Trafico"]["psi2"]
|
|
|
|
|
+ if restricciones_df.loc[j,"Accion IAPF"] == "Resto":
|
|
|
|
|
+ coef_var_ELUS[j] = normas["IAPF"]["CoefVar"]["Resto"]["psi2"]
|
|
|
|
|
+ minorados_ELUS.append(coef_var_ELUS)
|
|
|
|
|
+ if (restricciones_df.loc[i,"Accion IAPF"] != "Sismo") and (restricciones_df.loc[i,"Tipo"] == "Accidental") and combo[i] != 0:
|
|
|
|
|
+ for k in range(len(combo)):
|
|
|
|
|
+ coef_var_ELUA = np.ones(len(patrones))
|
|
|
|
|
+ if restricciones_df.loc[k,"Tipo"] == "Variable":
|
|
|
|
|
+ if restricciones_df.loc[k,"Accion IAPF"] == "Trafico":
|
|
|
|
|
+ coef_var_ELUA[k] = normas["IAPF"]["CoefVar"]["Trafico"]["psi1"][vias_cargadas if int(vias_cargadas) < 4 else "3"]
|
|
|
else:
|
|
else:
|
|
|
- coef_var_ELUP[j] = normas["IAPF"]["CoefVar"]["Resto"]["psi0"]
|
|
|
|
|
- coef_var_ELSC[j] = normas["IAPF"]["CoefVar"]["Resto"]["psi0"]
|
|
|
|
|
- coef_var_ELSF[j] = normas["IAPF"]["CoefVar"]["Resto"]["psi2"]
|
|
|
|
|
- coef_var_ELSCP[j] = normas["IAPF"]["CoefVar"]["Resto"]["psi2"]
|
|
|
|
|
- minorados_ELUP.append(coef_var_ELUP)
|
|
|
|
|
- minorados_ELSC.append(coef_var_ELSC)
|
|
|
|
|
- minorados_ELSF.append(coef_var_ELSF)
|
|
|
|
|
- minorados_ELSCP.append(coef_var_ELSCP)
|
|
|
|
|
|
|
+ coef_var_ELUA[k] = normas["IAPF"]["CoefVar"]["Resto"]["psi1"]
|
|
|
|
|
+ for j in range(len(combo)):
|
|
|
|
|
+ if (restricciones_df.loc[j,"Tipo"] == "Variable") and (j != k):
|
|
|
|
|
+ #se asigna el coeficiente de la variable al resto de variables
|
|
|
|
|
+ if restricciones_df.loc[j,"Accion IAPF"] == "Trafico":
|
|
|
|
|
+ coef_var_ELUA[j] = normas["IAPF"]["CoefVar"]["Trafico"]["psi2"]
|
|
|
|
|
+ else:
|
|
|
|
|
+ coef_var_ELUA[j] = normas["IAPF"]["CoefVar"]["Resto"]["psi2"]
|
|
|
|
|
+ minorados_ELUP.append(coef_var_ELUA)
|
|
|
|
|
+
|
|
|
|
|
+ else:
|
|
|
|
|
+ if n_var == 1:
|
|
|
|
|
+ coef_var_ELSF = np.ones(len(patrones))
|
|
|
|
|
+ coef_var_ELSCP = np.ones(len(patrones))
|
|
|
|
|
+ for i in range(len(combo)):
|
|
|
|
|
+ if (restricciones_df.loc[i,"Tipo"] == "Variable") and combo[i] != 0:
|
|
|
|
|
+ if restricciones_df.loc[i,"Accion IAPF"] == "Trafico":
|
|
|
|
|
+ coef_var_ELSF[i] = normas["IAPF"]["CoefVar"]["Trafico"]["psi1"][vias_cargadas if int(vias_cargadas) < 4 else "3"]
|
|
|
|
|
+ coef_var_ELSCP[i] = normas["IAPF"]["CoefVar"]["Trafico"]["psi2"]
|
|
|
|
|
+ else:
|
|
|
|
|
+ coef_var_ELSF[i] = normas["IAPF"]["CoefVar"]["Resto"]["psi1"]
|
|
|
|
|
+ coef_var_ELSCP[i] = normas["IAPF"]["CoefVar"]["Resto"]["psi2"]
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ while n_var > 1:
|
|
|
|
|
+ n_var -= 1
|
|
|
|
|
+ #se busca la primera variable en el combo y se asigna el coeficiente
|
|
|
|
|
+ for i in range(len(combo)):
|
|
|
|
|
+ coef_var_ELUP = np.ones(len(patrones))
|
|
|
|
|
+ coef_var_ELSC = np.ones(len(patrones))
|
|
|
|
|
+ coef_var_ELSF = np.ones(len(patrones))
|
|
|
|
|
+ coef_var_ELSCP = np.ones(len(patrones))
|
|
|
|
|
+ if (restricciones_df.loc[i,"Tipo"] == "Variable") and combo[i] != 0:
|
|
|
|
|
+ if restricciones_df.loc[i,"Accion IAPF"] == "Trafico":
|
|
|
|
|
+ coef_var_ELSF[i] = normas["IAPF"]["CoefVar"]["Trafico"]["psi1"][vias_cargadas if int(vias_cargadas) < 4 else "3"]
|
|
|
|
|
+ coef_var_ELSCP[i] = normas["IAPF"]["CoefVar"]["Trafico"]["psi2"]
|
|
|
|
|
+ else:
|
|
|
|
|
+ coef_var_ELSF[i] = normas["IAPF"]["CoefVar"]["Resto"]["psi1"]
|
|
|
|
|
+ coef_var_ELSCP[i] = normas["IAPF"]["CoefVar"]["Resto"]["psi2"]
|
|
|
|
|
+ for j in range(len(combo)):
|
|
|
|
|
+ if (restricciones_df.loc[j,"Tipo"] == "Variable") and (j != i):
|
|
|
|
|
+ #se asigna el coeficiente de la variable al resto de variables
|
|
|
|
|
+ if restricciones_df.loc[j,"Accion IAPF"] == "Trafico":
|
|
|
|
|
+ coef_var_ELUP[j] = normas["IAPF"]["CoefVar"]["Trafico"]["psi0"]
|
|
|
|
|
+ coef_var_ELSC[j] = normas["IAPF"]["CoefVar"]["Trafico"]["psi0"]
|
|
|
|
|
+ coef_var_ELSF[j] = normas["IAPF"]["CoefVar"]["Trafico"]["psi2"]
|
|
|
|
|
+ coef_var_ELSCP[j] = normas["IAPF"]["CoefVar"]["Trafico"]["psi2"]
|
|
|
|
|
+ else:
|
|
|
|
|
+ coef_var_ELUP[j] = normas["IAPF"]["CoefVar"]["Resto"]["psi0"]
|
|
|
|
|
+ coef_var_ELSC[j] = normas["IAPF"]["CoefVar"]["Resto"]["psi0"]
|
|
|
|
|
+ coef_var_ELSF[j] = normas["IAPF"]["CoefVar"]["Resto"]["psi2"]
|
|
|
|
|
+ coef_var_ELSCP[j] = normas["IAPF"]["CoefVar"]["Resto"]["psi2"]
|
|
|
|
|
+ minorados_ELUP.append(coef_var_ELUP)
|
|
|
|
|
+ minorados_ELSC.append(coef_var_ELSC)
|
|
|
|
|
+ minorados_ELSF.append(coef_var_ELSF)
|
|
|
|
|
+ minorados_ELSCP.append(coef_var_ELSCP)
|
|
|
|
|
|
|
|
|
|
|
|
|
if minorados_ELUP:
|
|
if minorados_ELUP:
|
|
@@ -535,23 +586,42 @@ for combo in combinaciones_validas:
|
|
|
combos_ELSC.append(np.multiply(coeficientes_ELSC, combo))
|
|
combos_ELSC.append(np.multiply(coeficientes_ELSC, combo))
|
|
|
combos_ELSF.append(np.multiply(coeficientes_ELSF, combo))if not n_var else combos_ELSF.append(np.multiply(np.multiply(coeficientes_ELSF, combo),coef_var_ELSF))
|
|
combos_ELSF.append(np.multiply(coeficientes_ELSF, combo))if not n_var else combos_ELSF.append(np.multiply(np.multiply(coeficientes_ELSF, combo),coef_var_ELSF))
|
|
|
combos_ELSCP.append(np.multiply(coeficientes_ELSCP, combo)) if not n_var else combos_ELSCP.append(np.multiply(np.multiply(coeficientes_ELSCP, combo),coef_var_ELSCP))
|
|
combos_ELSCP.append(np.multiply(coeficientes_ELSCP, combo)) if not n_var else combos_ELSCP.append(np.multiply(np.multiply(coeficientes_ELSCP, combo),coef_var_ELSCP))
|
|
|
|
|
+ if minorados_ELUS:
|
|
|
|
|
+ for minorado in minorados_ELUS:
|
|
|
|
|
+ combos_ELUS.append(np.multiply(np.multiply(coeficientes_ELUS, combo),minorado))
|
|
|
|
|
+ if minorados_ELUA:
|
|
|
|
|
+ for minorado in minorados_ELUA:
|
|
|
|
|
+ combos_ELUA.append(np.multiply(np.multiply(coeficientes_ELUA, combo),minorado))
|
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|
combos_ELUP = np.unique(np.array(combos_ELUP), axis=0)
|
|
combos_ELUP = np.unique(np.array(combos_ELUP), axis=0)
|
|
|
|
|
+combos_ELUA = np.unique(np.array(combos_ELUA), axis=0)
|
|
|
|
|
+combos_ELUS = np.unique(np.array(combos_ELUS), axis=0)
|
|
|
combos_ELSC = np.unique(np.array(combos_ELSC), axis=0)
|
|
combos_ELSC = np.unique(np.array(combos_ELSC), axis=0)
|
|
|
combos_ELSF = np.unique(np.array(combos_ELSF), axis=0)
|
|
combos_ELSF = np.unique(np.array(combos_ELSF), axis=0)
|
|
|
combos_ELSCP = np.unique(np.array(combos_ELSCP), axis=0)
|
|
combos_ELSCP = np.unique(np.array(combos_ELSCP), axis=0)
|
|
|
|
|
|
|
|
print("------------------------------------------------")
|
|
print("------------------------------------------------")
|
|
|
print(combos_ELUP)
|
|
print(combos_ELUP)
|
|
|
|
|
+print(len(combos_ELUP))
|
|
|
|
|
+print("------------------------------------------------")
|
|
|
|
|
+print(combos_ELUA)
|
|
|
|
|
+print(len(combos_ELUA))
|
|
|
|
|
+print("------------------------------------------------")
|
|
|
|
|
+print(combos_ELUS)
|
|
|
|
|
+print(len(combos_ELUS))
|
|
|
print("------------------------------------------------")
|
|
print("------------------------------------------------")
|
|
|
print(combos_ELSC)
|
|
print(combos_ELSC)
|
|
|
|
|
+print(len(combos_ELSC))
|
|
|
print("------------------------------------------------")
|
|
print("------------------------------------------------")
|
|
|
print(combos_ELSF)
|
|
print(combos_ELSF)
|
|
|
|
|
+print(len(combos_ELSF))
|
|
|
print("------------------------------------------------")
|
|
print("------------------------------------------------")
|
|
|
print(combos_ELSCP)
|
|
print(combos_ELSCP)
|
|
|
|
|
+print(len(combos_ELSCP))
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
+total_combos = len(combos_ELUP) + len(combos_ELSC) + len(combos_ELSF) + len(combos_ELSCP) + len(combos_ELUA) + len(combos_ELUS)
|
|
|
#creacion de los combos en SAP2000
|
|
#creacion de los combos en SAP2000
|
|
|
|
|
|
|
|
#creacion de los combos ELU Permantentes
|
|
#creacion de los combos ELU Permantentes
|
|
@@ -565,10 +635,38 @@ for combo in combos_ELUP:
|
|
|
coeficiente = combo[idx]
|
|
coeficiente = combo[idx]
|
|
|
if coeficiente != 0:
|
|
if coeficiente != 0:
|
|
|
ret = SapModel.RespCombo.SetCaseList(combo_name, 0, patron, coeficiente)
|
|
ret = SapModel.RespCombo.SetCaseList(combo_name, 0, patron, coeficiente)
|
|
|
|
|
+ printProgressBar(combo_num, total_combos, prefix = 'Creando combos ELU Persistente:', suffix = 'Completado', length = 50)
|
|
|
combo_num += 1
|
|
combo_num += 1
|
|
|
|
|
|
|
|
-#creacion de los combos ELS Caracteristico
|
|
|
|
|
|
|
+#creacion de los combos ELU Accidentales
|
|
|
|
|
+tot = combo_num
|
|
|
|
|
+combo_num = 0
|
|
|
|
|
+
|
|
|
|
|
+for combo in combos_ELUA:
|
|
|
|
|
+ combo_name = "ELU_ACC_{:03d}".format(combo_num)
|
|
|
|
|
+ ret = SapModel.RespCombo.Add(combo_name, 0)
|
|
|
|
|
+ for idx, patron in enumerate(patrones):
|
|
|
|
|
+ coeficiente = combo[idx]
|
|
|
|
|
+ if coeficiente != 0:
|
|
|
|
|
+ ret = SapModel.RespCombo.SetCaseList(combo_name, 0, patron, coeficiente)
|
|
|
|
|
+ printProgressBar(combo_num, total_combos, prefix = 'Creando combos ELU Accidental:', suffix = 'Completado', length = 50)
|
|
|
|
|
+ combo_num += 1
|
|
|
|
|
|
|
|
|
|
+#creacion de los combos ELU Sismo
|
|
|
|
|
+tot += combo_num
|
|
|
|
|
+combo_num = 0
|
|
|
|
|
+for combo in combos_ELUS:
|
|
|
|
|
+ combo_name = "ELU_SIS_{:03d}".format(combo_num)
|
|
|
|
|
+ ret = SapModel.RespCombo.Add(combo_name, 0)
|
|
|
|
|
+ for idx, patron in enumerate(patrones):
|
|
|
|
|
+ coeficiente = combo[idx]
|
|
|
|
|
+ if coeficiente != 0:
|
|
|
|
|
+ ret = SapModel.RespCombo.SetCaseList(combo_name, 0, patron, coeficiente)
|
|
|
|
|
+ printProgressBar(tot+combo_num, total_combos, prefix = 'Creando combos ELU Sismo:', suffix = 'Completado', length = 50)
|
|
|
|
|
+ combo_num += 1
|
|
|
|
|
+
|
|
|
|
|
+#creacion de los combos ELS Caracteristico
|
|
|
|
|
+tot += combo_num
|
|
|
combo_num = 0
|
|
combo_num = 0
|
|
|
|
|
|
|
|
for combo in combos_ELSC:
|
|
for combo in combos_ELSC:
|
|
@@ -578,10 +676,11 @@ for combo in combos_ELSC:
|
|
|
coeficiente = combo[idx]
|
|
coeficiente = combo[idx]
|
|
|
if coeficiente != 0:
|
|
if coeficiente != 0:
|
|
|
ret = SapModel.RespCombo.SetCaseList(combo_name, 0, patron, coeficiente)
|
|
ret = SapModel.RespCombo.SetCaseList(combo_name, 0, patron, coeficiente)
|
|
|
|
|
+ printProgressBar(tot+combo_num, total_combos, prefix = 'Creando combos ELS Caracteristico:', suffix = 'Completado', length = 50)
|
|
|
combo_num += 1
|
|
combo_num += 1
|
|
|
|
|
|
|
|
#creacion de los combos ELS Frecuente
|
|
#creacion de los combos ELS Frecuente
|
|
|
-
|
|
|
|
|
|
|
+tot += combo_num
|
|
|
combo_num = 0
|
|
combo_num = 0
|
|
|
|
|
|
|
|
for combo in combos_ELSF:
|
|
for combo in combos_ELSF:
|
|
@@ -591,10 +690,11 @@ for combo in combos_ELSF:
|
|
|
coeficiente = combo[idx]
|
|
coeficiente = combo[idx]
|
|
|
if coeficiente != 0:
|
|
if coeficiente != 0:
|
|
|
ret = SapModel.RespCombo.SetCaseList(combo_name, 0, patron, coeficiente)
|
|
ret = SapModel.RespCombo.SetCaseList(combo_name, 0, patron, coeficiente)
|
|
|
|
|
+ printProgressBar(tot+combo_num, total_combos, prefix = 'Creando combos ELS Frecuente:', suffix = 'Completado', length = 50)
|
|
|
combo_num += 1
|
|
combo_num += 1
|
|
|
|
|
|
|
|
#creacion de los combos ELS Cuasi Permanente
|
|
#creacion de los combos ELS Cuasi Permanente
|
|
|
-
|
|
|
|
|
|
|
+tot += combo_num
|
|
|
combo_num = 0
|
|
combo_num = 0
|
|
|
|
|
|
|
|
for combo in combos_ELSCP:
|
|
for combo in combos_ELSCP:
|
|
@@ -604,9 +704,11 @@ for combo in combos_ELSCP:
|
|
|
coeficiente = combo[idx]
|
|
coeficiente = combo[idx]
|
|
|
if coeficiente != 0:
|
|
if coeficiente != 0:
|
|
|
ret = SapModel.RespCombo.SetCaseList(combo_name, 0, patron, coeficiente)
|
|
ret = SapModel.RespCombo.SetCaseList(combo_name, 0, patron, coeficiente)
|
|
|
|
|
+ printProgressBar(tot+combo_num, total_combos, prefix = 'Creando combos ELS Cuasipermanente:', suffix = 'Completado', length = 50)
|
|
|
combo_num += 1
|
|
combo_num += 1
|
|
|
-
|
|
|
|
|
|
|
+printProgressBar(total_combos, total_combos, prefix = 'Creando combos ELS Cuasipermanente:', suffix = 'Completado', length = 50)
|
|
|
#creacion del combo envolvente
|
|
#creacion del combo envolvente
|
|
|
|
|
+print()
|
|
|
|
|
|
|
|
|
|
|
|
|
combo_name = "1. ENV ELU P"
|
|
combo_name = "1. ENV ELU P"
|
|
@@ -615,34 +717,67 @@ comboNames = SapModel.RespCombo.GetNameList()
|
|
|
patron = []
|
|
patron = []
|
|
|
for i in range(comboNames[0]):
|
|
for i in range(comboNames[0]):
|
|
|
if "ELU_P" in comboNames[1][i]: patron.append(comboNames[1][i])
|
|
if "ELU_P" in comboNames[1][i]: patron.append(comboNames[1][i])
|
|
|
-for name in patron:
|
|
|
|
|
|
|
+for i, name in enumerate(patron):
|
|
|
ret = SapModel.RespCombo.SetCaseList(combo_name, 1, name, 1)
|
|
ret = SapModel.RespCombo.SetCaseList(combo_name, 1, name, 1)
|
|
|
|
|
+ printProgressBar(i+1, comboNames[0], prefix = 'Creando combo envolvente ELU P:', suffix = 'Completado', length = 50)
|
|
|
|
|
+n=i
|
|
|
|
|
|
|
|
-combo_name = "2. ENV ELS C"
|
|
|
|
|
|
|
+combo_name = "2. ENV ELU ACC"
|
|
|
|
|
+ret = SapModel.RespCombo.Add(combo_name, 1)
|
|
|
|
|
+comboNames = SapModel.RespCombo.GetNameList()
|
|
|
|
|
+patron = []
|
|
|
|
|
+for i in range(comboNames[0]):
|
|
|
|
|
+ if "ELU_ACC" in comboNames[1][i]: patron.append(comboNames[1][i])
|
|
|
|
|
+for i, name in enumerate(patron):
|
|
|
|
|
+ ret = SapModel.RespCombo.SetCaseList(combo_name, 1, name, 1)
|
|
|
|
|
+ printProgressBar(i+1, comboNames[0], prefix = 'Creando combo envolvente ELU ACC:', suffix = 'Completado', length = 50)
|
|
|
|
|
+n=i
|
|
|
|
|
+
|
|
|
|
|
+combo_name = "3. ENV ELU SIS"
|
|
|
|
|
+ret = SapModel.RespCombo.Add(combo_name, 1)
|
|
|
|
|
+comboNames = SapModel.RespCombo.GetNameList()
|
|
|
|
|
+patron = []
|
|
|
|
|
+for i in range(comboNames[0]):
|
|
|
|
|
+ if "ELU_SIS" in comboNames[1][i]: patron.append(comboNames[1][i])
|
|
|
|
|
+for i, name in enumerate(patron):
|
|
|
|
|
+ ret = SapModel.RespCombo.SetCaseList(combo_name, 1, name, 1)
|
|
|
|
|
+ printProgressBar(i+1, comboNames[0], prefix = 'Creando combo envolvente ELU ACC:', suffix = 'Completado', length = 50)
|
|
|
|
|
+n=i
|
|
|
|
|
+
|
|
|
|
|
+combo_name = "4. ENV ELS C"
|
|
|
ret = SapModel.RespCombo.Add(combo_name, 1)
|
|
ret = SapModel.RespCombo.Add(combo_name, 1)
|
|
|
comboNames = SapModel.RespCombo.GetNameList()
|
|
comboNames = SapModel.RespCombo.GetNameList()
|
|
|
patron = []
|
|
patron = []
|
|
|
for i in range(comboNames[0]):
|
|
for i in range(comboNames[0]):
|
|
|
if "ELS_C_" in comboNames[1][i]: patron.append(comboNames[1][i])
|
|
if "ELS_C_" in comboNames[1][i]: patron.append(comboNames[1][i])
|
|
|
-for name in patron:
|
|
|
|
|
|
|
+for i, name in enumerate(patron):
|
|
|
ret = SapModel.RespCombo.SetCaseList(combo_name, 1, name, 1)
|
|
ret = SapModel.RespCombo.SetCaseList(combo_name, 1, name, 1)
|
|
|
|
|
+ printProgressBar(n+i+1, comboNames[0], prefix = 'Creando combo envolvente ELS C:', suffix = 'Completado', length = 50)
|
|
|
|
|
+n+=i
|
|
|
|
|
|
|
|
|
|
|
|
|
-combo_name = "3. ENV ELS F"
|
|
|
|
|
|
|
+combo_name = "5. ENV ELS F"
|
|
|
ret = SapModel.RespCombo.Add(combo_name, 1)
|
|
ret = SapModel.RespCombo.Add(combo_name, 1)
|
|
|
comboNames = SapModel.RespCombo.GetNameList()
|
|
comboNames = SapModel.RespCombo.GetNameList()
|
|
|
patron = []
|
|
patron = []
|
|
|
for i in range(comboNames[0]):
|
|
for i in range(comboNames[0]):
|
|
|
if "ELS_F_" in comboNames[1][i]: patron.append(comboNames[1][i])
|
|
if "ELS_F_" in comboNames[1][i]: patron.append(comboNames[1][i])
|
|
|
-for name in patron:
|
|
|
|
|
|
|
+for i, name in enumerate(patron):
|
|
|
ret = SapModel.RespCombo.SetCaseList(combo_name, 1, name, 1)
|
|
ret = SapModel.RespCombo.SetCaseList(combo_name, 1, name, 1)
|
|
|
|
|
+ printProgressBar(n+i+1, comboNames[0], prefix = 'Creando combo envolvente ELS F:', suffix = 'Completado', length = 50)
|
|
|
|
|
+n+=i
|
|
|
|
|
+
|
|
|
|
|
|
|
|
-combo_name = "4. ENV ELS CP"
|
|
|
|
|
|
|
+combo_name = "6. ENV ELS CP"
|
|
|
ret = SapModel.RespCombo.Add(combo_name, 1)
|
|
ret = SapModel.RespCombo.Add(combo_name, 1)
|
|
|
comboNames = SapModel.RespCombo.GetNameList()
|
|
comboNames = SapModel.RespCombo.GetNameList()
|
|
|
patron = []
|
|
patron = []
|
|
|
for i in range(comboNames[0]):
|
|
for i in range(comboNames[0]):
|
|
|
if "ELS_CP" in comboNames[1][i]: patron.append(comboNames[1][i])
|
|
if "ELS_CP" in comboNames[1][i]: patron.append(comboNames[1][i])
|
|
|
-for name in patron:
|
|
|
|
|
|
|
+for i, name in enumerate(patron):
|
|
|
ret = SapModel.RespCombo.SetCaseList(combo_name, 1, name, 1)
|
|
ret = SapModel.RespCombo.SetCaseList(combo_name, 1, name, 1)
|
|
|
|
|
+ printProgressBar(n+i+1, comboNames[0], prefix = 'Creando combo envolvente ELS CP:', suffix = 'Completado', length = 50)
|
|
|
|
|
+printProgressBar(comboNames[0], comboNames[0], prefix = 'Creando combo envolvente ELS CP:', suffix = 'Completado', length = 50)
|
|
|
|
|
|
|
|
|
|
+print()
|
|
|
|
|
+print("Combinaciones de acciones creadas con éxito.")
|