|
|
@@ -630,7 +630,7 @@ def generar_combinaciones_norma_IAPF(combinaciones_validas, restricciones_df, no
|
|
|
|
|
|
restricciones_array = restricciones_df.loc[:,"Tipo"]
|
|
|
|
|
|
- mascara = np.multiply(np.ones(len(restricciones_array)), (restricciones_array == "Variable").astype(int))
|
|
|
+ #mascara = np.multiply(np.ones(len(restricciones_array)), (restricciones_array == "Variable").astype(int))
|
|
|
|
|
|
|
|
|
#combos_ELUP = limpiar_combos(combos_ELUP, mascara, 1.5, restricciones_df)
|
|
|
@@ -663,7 +663,7 @@ def crear_combo_envolvente(combo_name = "", busca = "", total_envolventes = 0, a
|
|
|
if busca in comboNames[1][j]: patron.append(comboNames[1][j])
|
|
|
if len(patron):
|
|
|
ret = SapModel.RespCombo.Add(combo_name, 1)
|
|
|
- for i, name in enumerate(patron):
|
|
|
+ for _, name in enumerate(patron):
|
|
|
ret = SapModel.RespCombo.SetCaseList(combo_name, 1, name, 1)
|
|
|
contador_envolvente += 1
|
|
|
printProgressBar(contador_envolvente + acumulador, total_envolventes, prefix = f'Creando {combo_name} envolvente:', suffix = 'Completado', length = 50)
|
|
|
@@ -872,6 +872,7 @@ def crear_ventana_materiales(parent):
|
|
|
confirmacion.config(text="Error al establecer las unidades.", fg="red")
|
|
|
return
|
|
|
ret_get, _, _, _, _ = SapModel.PropMaterial.GetMaterial(var_material.get())
|
|
|
+ print(ret_get)
|
|
|
if ret_get == 0:
|
|
|
ret = SapModel.PropMaterial.AddMaterial(var_material.get(),
|
|
|
2,
|
|
|
@@ -879,9 +880,8 @@ def crear_ventana_materiales(parent):
|
|
|
Standard = "EN 1992-1-1 per EN 206-1",
|
|
|
Grade = var_material.get())
|
|
|
print(ret)
|
|
|
- if (ret[0] != var_material.get()) or (ret != 0):
|
|
|
- confirmacion.config(text="Error al añadir el material.", fg="red")
|
|
|
- return
|
|
|
+ #if (ret[0] != var_material.get()):
|
|
|
+ # confirmacion.config(text="Error al añadir el material.", fg="red")
|
|
|
ret = SapModel.PropFrame.SetRectangle(var_nombre.get(),
|
|
|
var_material.get(),
|
|
|
float(var_canto.get()),
|
|
|
@@ -889,6 +889,7 @@ def crear_ventana_materiales(parent):
|
|
|
if ret != 0:
|
|
|
confirmacion.config(text="Error al añadir la sección.", fg="red")
|
|
|
return
|
|
|
+ #aqui se puede añadir la cuantia de armado que se quiera
|
|
|
ret = SapModel.PropFrame.SetRebarBeam(var_nombre.get(),
|
|
|
"B500 SD",
|
|
|
"B500 SD",
|
|
|
@@ -963,7 +964,7 @@ def crear_ventana_geometria(parent):
|
|
|
"""Crea una ventana gráfica para definición de la geometría"""
|
|
|
ventana_geo = tk.Toplevel(parent)
|
|
|
ventana_geo.title("Definición de Geometría")
|
|
|
- ventana_geo.geometry("500x400")
|
|
|
+ ventana_geo.geometry("550x400")
|
|
|
ventana_geo.attributes('-topmost', True)
|
|
|
ventana_geo.attributes('-topmost', False)
|
|
|
script_dir = os.path.dirname(os.path.abspath(__file__))
|
|
|
@@ -974,16 +975,122 @@ def crear_ventana_geometria(parent):
|
|
|
titulo = tk.Label(ventana_geo, text="Definición de Geometría", font=("Arial", 14, "bold"))
|
|
|
titulo.pack(pady=20)
|
|
|
|
|
|
+ frame_geometria =tk.Frame(ventana_geo)
|
|
|
+ frame_geometria.pack(anchor=tk.W, padx=0, pady=10, fill = tk.X)
|
|
|
+ label_geometria = tk.Label(frame_geometria, text="LI\t LS\t HI\t HD", font=("Arial", 10))
|
|
|
+ label_geometria.pack(side=tk.LEFT, padx=120)
|
|
|
+ frame_seccion = tk.Frame(ventana_geo)
|
|
|
+ frame_seccion.pack(anchor=tk.W, padx=10, pady=10)
|
|
|
+ label_seccion = tk.Label(frame_seccion, text="Sección:", font=("Arial", 10))
|
|
|
+ label_seccion.pack(side=tk.LEFT, padx=5)
|
|
|
+ # utilizar los valores de ret para hacer un desplegable con las secciones disponibles
|
|
|
ret = SapModel.PropFrame.GetNameList()
|
|
|
+ var_seccion_LI = tk.StringVar(value=ret[1][0])
|
|
|
+ var_seccion_LD = tk.StringVar(value=ret[1][0])
|
|
|
+ var_seccion_HI = tk.StringVar(value=ret[1][0])
|
|
|
+ var_seccion_HD = tk.StringVar(value=ret[1][0])
|
|
|
+ combo_seccion_LI = tk.ttk.Combobox(frame_seccion, textvariable=var_seccion_LI,
|
|
|
+ values=ret[1],
|
|
|
+ state="readonly", width=10)
|
|
|
+ combo_seccion_LI.pack(side=tk.LEFT, padx=5)
|
|
|
+ combo_seccion_LD = tk.ttk.Combobox(frame_seccion, textvariable=var_seccion_LD,
|
|
|
+ values=ret[1],
|
|
|
+ state="readonly", width=10)
|
|
|
+ combo_seccion_LD.pack(side=tk.LEFT, padx=5)
|
|
|
+ combo_seccion_HI = tk.ttk.Combobox(frame_seccion, textvariable=var_seccion_HI,
|
|
|
+ values=ret[1],
|
|
|
+ state="readonly", width=10)
|
|
|
+ combo_seccion_HI.pack(side=tk.LEFT, padx=5)
|
|
|
+ combo_seccion_HD = tk.ttk.Combobox(frame_seccion, textvariable=var_seccion_HD,
|
|
|
+ values=ret[1],
|
|
|
+ state="readonly", width=10)
|
|
|
+ combo_seccion_HD.pack(side=tk.LEFT, padx=5)
|
|
|
+
|
|
|
+ frame_ancho = tk.Frame(ventana_geo)
|
|
|
+ frame_ancho.pack(anchor=tk.W, padx=10, pady=10)
|
|
|
+ label_ancho = tk.Label(frame_ancho, text="Ancho modelo (m):", font=("Arial", 10))
|
|
|
+ label_ancho.pack(side=tk.LEFT, padx=5)
|
|
|
+ var_ancho = tk.StringVar(value="1.0")
|
|
|
+ entry_ancho = tk.Entry(frame_ancho, textvariable=var_ancho, width=10)
|
|
|
+ entry_ancho.pack(side=tk.LEFT, padx=5)
|
|
|
+
|
|
|
+ frame_alto = tk.Frame(ventana_geo)
|
|
|
+ frame_alto.pack(anchor=tk.W, padx=10, pady=10)
|
|
|
+ label_alto = tk.Label(frame_alto, text="Alto modelo (m):", font=("Arial", 10))
|
|
|
+ label_alto.pack(side=tk.LEFT, padx=5)
|
|
|
+ var_alto = tk.StringVar(value="1.0")
|
|
|
+ entry_alto = tk.Entry(frame_alto, textvariable=var_alto, width=10)
|
|
|
+ entry_alto.pack(side=tk.LEFT, padx=5)
|
|
|
+
|
|
|
+ def on_geometria():
|
|
|
+ SapModel.SetPresentUnits(6)
|
|
|
+ ancho = float(var_ancho.get())
|
|
|
+ alto = float(var_alto.get())
|
|
|
+ FrameName1 = ""
|
|
|
+ FrameName2 = ""
|
|
|
+ FrameName3 = ""
|
|
|
+ FrameName4 = ""
|
|
|
+ [FrameName1, ret] = SapModel.FrameObj.AddByCoord(0, 0, 0, ancho, 0, 0, FrameName1, var_seccion_LI.get(), "LI", "Global")
|
|
|
+ [FrameName2, ret] = SapModel.FrameObj.AddByCoord(0, 0, 0, 0, 0, alto, FrameName2, var_seccion_HI.get(), "HI", "Global")
|
|
|
+ [FrameName3, ret] = SapModel.FrameObj.AddByCoord(0, 0, alto, ancho, 0, alto, FrameName3, var_seccion_LD.get(), "LD", "Global")
|
|
|
+ [FrameName4, ret] = SapModel.FrameObj.AddByCoord(ancho, 0, 0, ancho, 0, alto, FrameName4, var_seccion_HD.get(), "HD", "Global")
|
|
|
+ SapModel.View.RefreshView(0, False)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ boton_geometria = tk.Button(ventana_geo, text="Definir geometría", command=on_geometria, font=("Arial", 11), bg="#2196F3", fg="white", padx=10, pady=5)
|
|
|
+ boton_geometria.pack(pady=20)
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
ventana_geo.grab_set()
|
|
|
|
|
|
+def crear_ventana_cargas(parent):
|
|
|
+ """Crea una ventana gráfica para definición de cargas"""
|
|
|
+ ventana_cargas = tk.Toplevel(parent)
|
|
|
+ ventana_cargas.title("Definición de Cargas")
|
|
|
+ ventana_cargas.geometry("500x400")
|
|
|
+ ventana_cargas.attributes('-topmost', True)
|
|
|
+ ventana_cargas.attributes('-topmost', False)
|
|
|
+ script_dir = os.path.dirname(os.path.abspath(__file__))
|
|
|
+ icon_path = os.path.join(script_dir, 'AYRE.ico')
|
|
|
+ ventana_cargas.iconbitmap(icon_path)
|
|
|
+ ventana_cargas.protocol("WM_DELETE_WINDOW", lambda: ventana_cargas.destroy() and ventana_cargas.grab_release())
|
|
|
+ # Título
|
|
|
+ titulo = tk.Label(ventana_cargas, text="Definición de Cargas", font=("Arial", 14, "bold"))
|
|
|
+ titulo.pack(pady=20)
|
|
|
+
|
|
|
+ frame = tk.Frame(ventana_cargas)
|
|
|
+ scrollbar = tk.Scrollbar(frame, orient=tk.VERTICAL)
|
|
|
+ hscrollbar = tk.Scrollbar(frame, orient=tk.HORIZONTAL)
|
|
|
+ label_lista_cargas = tk.Listbox(frame, font=("Arial", 10), bg="white", selectbackground="#2196F3",
|
|
|
+ selectforeground="black", yscrollcommand = scrollbar.set,
|
|
|
+ xscrollcommand = hscrollbar.set, width=20, height=15)
|
|
|
+ scrollbar.config(command=label_lista_cargas.yview)
|
|
|
+ hscrollbar.config(command=label_lista_cargas.xview)
|
|
|
+ scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
|
|
|
+ hscrollbar.pack(side=tk.BOTTOM, fill=tk.X)
|
|
|
+ label_lista_cargas.pack(side =tk.LEFT, padx=5, pady=5)
|
|
|
+ frame.pack()
|
|
|
+
|
|
|
+ ruta_excel = "C:/Users/Daniel.p/Documents/2. Petrucco/114. A 1472 R1 Campo de Criptana/3. Calculo/2. Cajon/SAP/Comb_acciones.xlsx"
|
|
|
+ compatibilidades_df, restricciones_df =extraer_datos_excel(ruta_excel)
|
|
|
+ label_lista_cargas.insert(tk.END, *restricciones_df.loc[:, "Definición de 'Load Cases'"])
|
|
|
+
|
|
|
+ def on_double_click(event):
|
|
|
+ print("hola")
|
|
|
+
|
|
|
+ label_lista_cargas.bind('<Double-Button-1>', on_double_click)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ ventana_cargas.grab_set()
|
|
|
|
|
|
def crear_ventana_ppal():
|
|
|
ventana_ppal = tk.Tk()
|
|
|
ventana_ppal.title("AYRE")
|
|
|
- ventana_ppal.geometry("400x300")
|
|
|
+ ventana_ppal.geometry("400x600")
|
|
|
ventana_ppal.attributes('-topmost', True)
|
|
|
ventana_ppal.attributes('-topmost', False)
|
|
|
script_dir = os.path.dirname(os.path.abspath(__file__))
|
|
|
@@ -1003,7 +1110,10 @@ def crear_ventana_ppal():
|
|
|
|
|
|
# Boton para abrir la ventana de definicion de la geometria
|
|
|
def abrir_geometria():
|
|
|
- crear_ventana_geometria(ventana_ppal)
|
|
|
+ if not SapModel.PropFrame.GetNameList()[1] :
|
|
|
+ tk.messagebox.showerror("Error", "No hay secciones definidas")
|
|
|
+ else:
|
|
|
+ crear_ventana_geometria(ventana_ppal)
|
|
|
|
|
|
boton_geometria = tk.Button(ventana_ppal, text="Definición de Geometría", command=abrir_geometria, font=("Arial", 11), bg="#673AB7", fg="white", padx=10, pady=5)
|
|
|
boton_geometria.pack(pady=20)
|
|
|
@@ -1016,6 +1126,13 @@ def crear_ventana_ppal():
|
|
|
boton_config = tk.Button(ventana_ppal, text="Configuración Combinaciones", command=abrir_configuracion, font=("Arial", 11), bg="#4CAF50", fg="white", padx=10, pady=5)
|
|
|
boton_config.pack(pady=20)
|
|
|
|
|
|
+ # Botón para abrir ventana de cargas
|
|
|
+ def abrir_cargas():
|
|
|
+ crear_ventana_cargas(ventana_ppal)
|
|
|
+
|
|
|
+ boton_cargas = tk.Button(ventana_ppal, text="Definición de Cargas", command=abrir_cargas, font=("Arial", 11), bg="#FF9800", fg="white", padx=10, pady=5)
|
|
|
+ boton_cargas.pack(pady=20)
|
|
|
+
|
|
|
|
|
|
|
|
|
ventana_ppal.mainloop()
|