miércoles, 27 de abril de 2022

Interfaz Gráfica - Presión de Burbuja

Dando continuidad a la temática de la interfaz procedo a compartir la interfaz gráfica de las correlaciones de la presión de burbuja. En este código se hace uso de Combobox, en la siguiente imagen se observa como es un Combobox.


 Se aprecia un Combobox en su forma contraída.

 


 

En esta segunda imagen se observa el Combobox  cuando ha sido desplegado.

 

 

Ahora se muestra el código del Combobox, este contiene muchos atributos que ya se han revisado, por lo que en esta ocasión se hablará sólo de los nuevos atributos.

 

 

Valores = ['Standing, M.B','Lasater.', 'Vázquez, M.E. y Beggs, H.D.', 'Glaso, O.', 'Total', 'Al-Marhoun, M.', 'Dokla, M.E. y Osman, M.E.', 'Petrosky, G.E. Jr. y Farshad, F.F.', 'Kartoatmodjo, T. y Schmidt, Z.']

 

Variable = tk.StringVar()

Visor_correlaciones = ttk.Combobox(Novena_Ventana)

Visor_correlaciones.place(relx=0.01, rely=0.01, relheight=0.11, relwidth=0.750, bordermode='ignore')

Visor_correlaciones.configure(takefocus="",state="readonly",textvariable = Variable, justify = "center",values = Valores)

Visor_correlaciones.current(0)

 

Como se aprecia los atributos que han sido agregados son:

·         takefocus="", determina si la ventana acepta el foco durante el recorrido del teclado.

·         state="readonly", determina el estado de la lista, en este caso solo se puede leer.

·         textvariable = Variable, recibe el contenido de la lista.

·         justify = "center", justifica el texto, en esta ocasión se justifica al centro del recuadro.

 

En seguida se muestra el código completo.

 

import math as math

from tkinter import *

import tkinter as tk

from tkinter import ttk

import numpy as np

from tkinter import messagebox

 

Novena_Ventana = Tk()

Novena_Ventana.geometry("450x200")

Novena_Ventana.maxsize(450,200)

Novena_Ventana.minsize(450,200)

Novena_Ventana.title("Presión de burbuja")

Novena_Ventana.configure(background="gray80",highlightbackground="gray80",highlightcolor="black")

 

Valores = ['Standing, M.B','Lasater.', 'Vázquez, M.E. y Beggs, H.D.', 'Glaso, O.', 'Total', 'Al-Marhoun, M.', 'Dokla, M.E. y Osman, M.E.', 'Petrosky, G.E. Jr. y Farshad, F.F.', 'Kartoatmodjo, T. y Schmidt, Z.']

 

print(len(Valores))

 

Variable = tk.StringVar()

Visor_correlaciones = ttk.Combobox(Novena_Ventana)

Visor_correlaciones.place(relx=0.01, rely=0.01, relheight=0.11, relwidth=0.750, bordermode='ignore')

Visor_correlaciones.configure(takefocus="",state="readonly",textvariable = Variable, justify = "center",values = Valores)

Visor_correlaciones.current(0)

 

def Correlaciones_Pb(event):

 

            try:      

 

                        Presion_Separador = float(Entrada_1.get()) #PSI

                        Temperatura_Separador = float(Entrada_2.get()) #°F

                        Rsb = float(Entrada_3.get()) #PCN/BN

                        API = float(Entrada_4.get()) #°API

                        Yg = float(Entrada_5.get())

                        T = float(Entrada_6.get()) #°F

                        YN2 = float(Entrada_7.get()) # % molar

                        YCO2 = float(Entrada_8.get()) # % molar

                        YH2S = float(Entrada_9.get()) # % molar

 

                        """#GASTO = 700

                        #ESTRANGULADOR = 1/8

                        Rsb = 675 #PCN/BN

                        Presion_Separador = 100 #PSI

                        Temperatura_Separador = 85 #°F

                        API = 31 #°API

                        Yg = 0.95

                        T = 180 #°F

                        YCO2 = 20/100 # % molar

                        YH2S = 10/100 # % molar

                        """

 

                        if Presion_Separador <= 0:

 

                                   messagebox.showwarning("Advertencia!","La Presión del separador es incorrecta")

 

                        elif Temperatura_Separador <= 0:

 

                                   messagebox.showwarning("Advertencia!","La Temperatura del separador es incorrecta")

 

                        elif Rsb <= 0:

 

                                   messagebox.showwarning("Advertencia!","La Razón gas-petróleo es incorrecta")

 

                        elif API <= 0:

 

                                   messagebox.showwarning("Advertencia!","La Graveda del petroleo es incorrecta")

 

                        elif Yg <= 0:

 

                                   messagebox.showwarning("Advertencia!","La Densidad especifica es incorrecta")

 

                        elif T <= 0:

 

                                   messagebox.showwarning("Advertencia!","La Temperatura es incorrecta")

 

                        elif YN2 <= 0:

 

                                   messagebox.showwarning("Advertencia!","El Porcentaje contenido de N2 es incorrecto")

 

                        elif YCO2 <= 0:

 

                                   messagebox.showwarning("Advertencia!","El Porcentaje contenido de CO2 es incorrecto")

 

                        elif YH2S <= 0:

 

                                   messagebox.showwarning("Advertencia!","El Porcentaje contenido de H2S es incorrecto")

 

                        else:

 

                                   YCO2 = YCO2/100 # % molar

                                   YH2S = YH2S/100 # % molar

                                   YN2 = YN2/100 # % molar

 

                                   Yo = 141.5/(API+131.5)

 

                                   CN2 = 1+((-2.65*(10**-4)*API+5.5*(10**-3))*T+(0.031*API-0.8259))*YN2+((1.954*(10**-11)*API**4.699)*T+(0.027*API-2.366))*YN2

 

                                   CCO2 = 1-693.8*YCO2*(T**-1.553)

 

                                   CH2S = 1-(0.9035+0.0015*API)*YH2S+0.019*(45-API)*(YH2S**2)

 

                                   if str(Variable.get()) == Valores[0]:

 

                                               # Standing, M.B

 

                                               CCO2 = 1-693.8*YCO2*(T**-1.553)

 

                                               CH2S = 1-((0.9035+0.0015*API)*YH2S)+(0.019*(45-API)*(YH2S**2))

 

                                               F = ((Rsb/Yg)**0.83)*10**(0.00091*T-0.0125*API)

 

                                               Pb = 18.2*(F-1.4)

 

                                               PbC1 = Pb*CCO2*CH2S

 

                                               Salida_1.delete(0,tk.END);Salida_1.insert(tk.END,round(PbC1,4))

 

                                   elif str(Variable.get()) == Valores[1]:

 

                                               # Lasater.

 

                                               if API <= 40:

 

                                                           Mo = 630-10*API

 

                                               elif API > 40:

 

                                                           Mo = 73110*APi**-1.562

 

                                               else:

 

                                                           pass

 

                                               Yo = 141.5/(API+131.5)

 

                                               Ygg = ((Rsb/379.3)/((Rsb/379.3)+((350*Yo)/Mo)))

 

                                               if Ygg <= 0.60:

 

                                                           G = 0.679*np.exp(2.786*Ygg)-0.323

 

                                               elif Ygg >= 0.60:

 

                                                           G = 8.26*(Ygg**3.56)+1.95

 

                                               else:

 

                                                           pass

 

                                               Pb = G*((T+460)/Yg)

 

                                               PbC2 = Pb*CCO2*CH2S

 

                                               Salida_1.delete(0,tk.END);Salida_1.insert(tk.END,round(PbC2,4))

 

                                   elif str(Variable.get()) == Valores[2]:

 

                                               # Vázquez, M.E. y Beggs, H.D.

 

                                               if API <= 30:

 

                                                           C1 = 0.0362; C2 = 1.0937; C3 = 25.724

 

                                               elif API > 30:

 

                                                           C1 = 0.0178; C2 = 1.1870; C3 = 23.931

 

                                               else:

 

                                                           pass

 

                                               Ygc = Yg*(1+5.912*(10**-5)*API*Temperatura_Separador*np.log(Presion_Separador/114.7))

 

                                               Pb = (Rsb/(C1*Ygc*np.exp((C3*API)/(T+460))))**(1/C2)

 

                                               PbC3 = Pb*CCO2*CH2S

 

                                               Salida_1.delete(0,tk.END);Salida_1.insert(tk.END,round(PbC3,4))

 

                                   elif str(Variable.get()) == Valores[3]:

 

                                               # Glaso, O.

 

                                               F = ((Rsb/Yg)**0.816)*((T**0.172)/(API**0.989))

 

                                               Pb = 10**(1.7669+1.7447*np.log10(F)-0.30218*(np.log10(F)**2))

 

                                               PbC4 = Pb*CCO2*CH2S

 

                                               Salida_1.delete(0,tk.END);Salida_1.insert(tk.END,round(PbC4,4))

 

                                    elif str(Variable.get()) == Valores[4]:

 

                                               # Total

 

                                               if API <= 10:

                                                          

                                                           C1 = 12.847 ; C2 = 0.9636 ; C3 = 0.000993 ; C4 = 0.034170

 

                                               elif 10 < API and API <= 35:

                                                          

                                                           C1 = 25.2755 ; C2 = 0.7617 ; C3 = 0.000835 ; C4 = 0.011292

 

                                               elif 35 < API and API <= 45:

                                                          

                                                           C1 = 216.4711 ; C2 = 0.6922 ; C3 = -0.000427 ; C4 = 0.023140

 

                                               else:

 

                                                           pass

 

                                               Pb = C1*((Rsb/Yg)**C2)*(10**(C3*T-C4*API))

 

                                               PbC5 = Pb*CCO2*CH2S

 

                                               Salida_1.delete(0,tk.END);Salida_1.insert(tk.END,round(PbC5,4))

 

                                   elif str(Variable.get()) == Valores[5]:

 

                                               # Al-Marhoun, M.

 

                                               Pb = (5.38088*(10**-3))*(Rsb**0.715082)*(Yg**-1.87784)*(Yo**3.1437)*((T+460)**1.32657)

 

                                               PbC6 = Pb*CCO2*CH2S

 

                                               Salida_1.delete(0,tk.END);Salida_1.insert(tk.END,round(PbC6,4))

 

                                   elif str(Variable.get()) == Valores[6]:

 

                                               # Dokla, M.E. y Osman, M.E.

 

                                               Pb = 0.836386*(10**4)*(Rsb**0.724047)*(Yg**-1.01049)*(Yo**0.107991)*((T+460)**-0.952584)

 

                                               PbC7 = Pb*CCO2*CH2S

 

                                               Salida_1.delete(0,tk.END);Salida_1.insert(tk.END,round(PbC7,4))

 

                                   elif str(Variable.get()) == Valores[7]:

 

                                               # Petrosky, G.E. Jr. y Farshad, F.F.

 

                                               F = ((Rsb**0.5774)/(Yg**0.8439))*(10**(4.561*(10**-5)*(T**1.3911)-7.916*(10**-4)*(API**1.541)))

 

                                               Pb = 112.727*(F-12.34)

 

                                               PbC8 = Pb*CCO2*CH2S

 

                                               Salida_1.delete(0,tk.END);Salida_1.insert(tk.END,round(PbC8,4))

 

                                   elif str(Variable.get()) == Valores[8]:

 

                                               # Kartoatmodjo, T. y Schmidt, Z.

 

                                               if API <= 30:

                                   

                                                           C1 = 0.05958; C2 = 0.7972; C3 = 13.1405; C4 = 0.9986

 

                                               elif API > 30:

                                   

                                                           C1 = 0.03150; C2 = 0.7587; C3 = 11.2895; C4 = 0.9143

 

                                               else:

 

                                                           pass

 

                                               Ygc = Yg*(1+(5.912*10**-5)*API*Temperatura_Separador*np.log10(Presion_Separador/114.7))

 

                                               Pb = (Rsb/(C1*(Ygc**C2)*(10**((C3*API)/(T+460)))))**C4

 

                                               PbC9 = Pb*CCO2*CH2S

 

                                               Salida_1.delete(0,tk.END);Salida_1.insert(tk.END,round(PbC9,4))

                                  

                                   else:

 

                                               messagebox.showwarning("Advertencia!","La opción seleccionada rompio la realidad")

 

            except ZeroDivisionError:

 

                        messagebox.showwarning("Advertencia!","Los datos ingresados son incorrectos, por favor revisalos")

 

            except SyntaxError:

 

                        messagebox.showwarning("Advertencia!","Los datos ingresados son incorrectos, por favor revisalos")

 

            except ValueError:

 

                        messagebox.showwarning("Advertencia!","Los datos ingresados son incorrectos, por favor revisalos")

 

            finally:

 

                        pass

 

            return

 

Visor_correlaciones.bind('<<ComboboxSelected>>', Correlaciones_Pb)

 

Recuadro_Entradas = tk.LabelFrame(Novena_Ventana)

Recuadro_Entradas.place(relx=0.01, rely=0.13, relheight=0.850, relwidth=0.980)

Recuadro_Entradas.configure(relief='groove',foreground="black",text='''Entradas''',background="gray80",highlightbackground="gray80",highlightcolor="black",width=330)

 

Mensaje_1 = tk.Message(Recuadro_Entradas)

Mensaje_1.place(relx=0.02, rely=0.01, height=25, width=80)

Mensaje_1.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''PS''')

Mensaje_2 = tk.Message(Recuadro_Entradas)

Mensaje_2.place(relx=0.02, rely=0.30, height=25, width=80)

Mensaje_2.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''TS''')

 

Mensaje_3 = tk.Message(Recuadro_Entradas)

Mensaje_3.place(relx=0.21, rely=0.01, height=25, width=80)

Mensaje_3.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''Rsb''')

Mensaje_4 = tk.Message(Recuadro_Entradas)

Mensaje_4.place(relx=0.21, rely=0.30, height=25, width=80)

Mensaje_4.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''°API''')

 

Mensaje_5 = tk.Message(Recuadro_Entradas)

Mensaje_5.place(relx=0.40, rely=0.00, height=25, width=80)

Mensaje_5.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''Yg''')

Mensaje_6 = tk.Message(Recuadro_Entradas)

Mensaje_6.place(relx=0.40, rely=0.30, height=25, width=80)

Mensaje_6.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''T''')

 

Mensaje_7 = tk.Message(Recuadro_Entradas)

Mensaje_7.place(relx=0.60, rely=0.00, height=25, width=80)

Mensaje_7.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''YN2''')

Mensaje_8 = tk.Message(Recuadro_Entradas)

Mensaje_8.place(relx=0.60, rely=0.30, height=25, width=80)

Mensaje_8.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''YCO''')

Mensaje_9 = tk.Message(Recuadro_Entradas)

Mensaje_9.place(relx=0.80, rely=0.00, height=25, width=80)

Mensaje_9.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''YH2S''')

 

Mensaje_10 = tk.Label(Recuadro_Entradas)

Mensaje_10.place(relx=0.21, rely=0.62, height=25, width=140)

Mensaje_10.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''Resultado:''')

 

Entrada_1 = tk.Entry(Recuadro_Entradas)

Entrada_1.place(relx=0.02, rely=0.18, height=20, width=80)

Entrada_1.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

Entrada_2 = tk.Entry(Recuadro_Entradas)

Entrada_2.place(relx=0.02, rely=0.46, height=20, width=80)

Entrada_2.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

 

Entrada_3 = tk.Entry(Recuadro_Entradas)

Entrada_3.place(relx=0.21, rely=0.18, height=20, width=80)

Entrada_3.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

Entrada_4 = tk.Entry(Recuadro_Entradas)

Entrada_4.place(relx=0.21, rely=0.46, height=20, width=80)

Entrada_4.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

 

Entrada_5 = tk.Entry(Recuadro_Entradas)

Entrada_5.place(relx=0.40, rely=0.18, height=20, width=80)

Entrada_5.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

Entrada_6 = tk.Entry(Recuadro_Entradas)

Entrada_6.place(relx=0.40, rely=0.46, height=20, width=80)

Entrada_6.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

 

Entrada_7 = tk.Entry(Recuadro_Entradas)

Entrada_7.place(relx=0.60, rely=0.18, height=20, width=80)

Entrada_7.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

Entrada_8 = tk.Entry(Recuadro_Entradas)

Entrada_8.place(relx=0.60, rely=0.46, height=20, width=80)

Entrada_8.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

 

Entrada_9 = tk.Entry(Recuadro_Entradas)

Entrada_9.place(relx=0.80, rely=0.18, height=20, width=80)

Entrada_9.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

 

Salida_1 = tk.Entry(Recuadro_Entradas)

Salida_1.place(relx=0.50, rely=0.64, height=20, width=140)

Salida_1.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

 

Entrada_1.delete(0,tk.END);Entrada_1.insert(tk.END,"");Entrada_1.insert(tk.END,0.00)

Entrada_2.delete(0,tk.END);Entrada_2.insert(tk.END,"");Entrada_2.insert(tk.END,0.00)

Entrada_3.delete(0,tk.END);Entrada_3.insert(tk.END,"");Entrada_3.insert(tk.END,0.00)

Entrada_4.delete(0,tk.END);Entrada_4.insert(tk.END,"");Entrada_4.insert(tk.END,0.00)

Entrada_5.delete(0,tk.END);Entrada_5.insert(tk.END,"");Entrada_5.insert(tk.END,0.00)

Entrada_6.delete(0,tk.END);Entrada_6.insert(tk.END,"");Entrada_6.insert(tk.END,0.00)

Entrada_7.delete(0,tk.END);Entrada_7.insert(tk.END,"");Entrada_7.insert(tk.END,0.00)

Entrada_8.delete(0,tk.END);Entrada_8.insert(tk.END,"");Entrada_8.insert(tk.END,0.00)

Entrada_9.delete(0,tk.END);Entrada_9.insert(tk.END,"");Entrada_9.insert(tk.END,0.00)

Salida_1.delete(0,tk.END);Salida_1.insert(tk.END,"");Salida_1.insert(tk.END,0.00)

 

def Limpiando():

 

            Entrada_1.delete(0,tk.END);Entrada_1.insert(tk.END,"");Entrada_1.insert(tk.END,0.00)

            Entrada_2.delete(0,tk.END);Entrada_2.insert(tk.END,"");Entrada_2.insert(tk.END,0.00)

            Entrada_3.delete(0,tk.END);Entrada_3.insert(tk.END,"");Entrada_3.insert(tk.END,0.00)

            Entrada_4.delete(0,tk.END);Entrada_4.insert(tk.END,"");Entrada_4.insert(tk.END,0.00)

            Entrada_5.delete(0,tk.END);Entrada_5.insert(tk.END,"");Entrada_5.insert(tk.END,0.00)

            Entrada_6.delete(0,tk.END);Entrada_6.insert(tk.END,"");Entrada_6.insert(tk.END,0.00)

            Entrada_7.delete(0,tk.END);Entrada_7.insert(tk.END,"");Entrada_7.insert(tk.END,0.00)

            Entrada_8.delete(0,tk.END);Entrada_8.insert(tk.END,"");Entrada_8.insert(tk.END,0.00)

            Entrada_9.delete(0,tk.END);Entrada_9.insert(tk.END,"");Entrada_9.insert(tk.END,0.00)

            Salida_1.delete(0,tk.END);Salida_1.insert(tk.END,"");Salida_1.insert(tk.END,0.00)

 

            return

 

Limpieza = Button(Recuadro_Entradas,activebackground="OliveDrab4",activeforeground="black",background="gray80",disabledforeground="#a3a3a3",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",pady="0",text='''Limpieza''', command = Limpiando).place(relx = 0.23, rely = 0.80, height=25, width=217)

 

Novena_Ventana.mainloop()

 

El código devuelve lo siguiente:


viernes, 22 de abril de 2022

Interfaz Gráfica - Viscosidad

Continuando con la interfaz gráfica de las correlación de la viscosidad del gas. En este código se hace uso de los checkbuttons, en la siguiente imagen se observa como es un checkbuttons.

 


Ahora se muestra el código del checkbuttons, este contiene muchos atributos que ya se han revisado, por lo que en esta ocasión se hablará sólo de los nuevos atributos.

Radiobutton1 = tk.Checkbutton(Octava_Ventana,text='''Correlación de Lee, A.L. González, M.H. y Eakin, B.E.''',onvalue =1,variable= var,background="gray80",command = Viscosidad.Viscosidad_Lee).place(relx=0.01, rely=0.03, relheight=0.091, relwidth=0.750, bordermode='ignore')

 

Como se aprecia los atributos que han sido agregados son:

 

·         onvalue - Asigna un valor al checkbuttons en este caso recibe el valor 1

 

En seguida se muestra el código completo.

 

import math as math

from tkinter import *

import tkinter as tk

import numpy as np

from tkinter import messagebox

 

Octava_Ventana = Tk()

Octava_Ventana.geometry("450x200")

Octava_Ventana.maxsize(450,200)

Octava_Ventana.minsize(450,200)

Octava_Ventana.title("Viscosidad del Gas")

Octava_Ventana.configure(background="gray80",highlightbackground="gray80",highlightcolor="black")

 

# P = 3810

# T = 194+460

# Yg = 1.242

# YN2 = 0.0051

# YCO2 = 0.1101

# YH2S = 0.0491

# Ppr = 5.60

# Tpr = 1.35

# z = 0.78

# M = 35.969

 

class Viscosidad():

 

            def Viscosidad_Lee():

 

                        # Correlación de Lee, A.L. González, M.H. y Eakin, B.E.

 

                        try:      

 

                                   P = float(Entrada_1.get())

                                   T = float(Entrada_2.get())

                                   z = float(Entrada_3.get())

                                   M = float(Entrada_4.get())

                                   Ppr = float(Entrada_5.get())

                                   Tpr = float(Entrada_6.get())

                                   Yg = float(Entrada_7.get())

                                   YN2 = float(Entrada_8.get())

                                   YCO2 = float(Entrada_9.get())

                                   YH2S = float(Entrada_10.get())

 

                                    if P <= 0:

 

                                               messagebox.showwarning("Advertencia!","La presión es incorrecta")

 

                                   elif T <= 0:

 

                                               messagebox.showwarning("Advertencia!","La Temperatura es incorrecta")

 

                                   elif z <= 0:

 

                                               messagebox.showwarning("Advertencia!","El Factor de compresibilidad es incorrecto")

 

                                   elif M <= 0:

 

                                               messagebox.showwarning("Advertencia!","El Peso molecular es incorrecto")

 

                                   if Ppr <= 0:

 

                                               messagebox.showwarning("Advertencia!","La Presión pseudoreducida es incorrecta")

 

                                   elif Tpr <= 0:

 

                                               messagebox.showwarning("Advertencia!","La Temperatura pseudoreducida es incorrecta")

 

                                   elif Yg <= 0:

 

                                               messagebox.showwarning("Advertencia!","La Densidad es incorrecta")

 

                                   elif YN2 <= 0:

 

                                               messagebox.showwarning("Advertencia!","El Porcentaje contenido de N2 es incorrecto")

 

                                   elif YCO2 <= 0:

 

                                               messagebox.showwarning("Advertencia!","El Porcentaje contenido de CO2 es incorrecto")

 

                                   elif YH2S <= 0:

 

                                               messagebox.showwarning("Advertencia!","El Porcentaje contenido de H2S es incorrecto")

 

                                    else:

 

                                               T = T+460

 

                                               Pg = (1.4935*(10**-3))*((P*M)/(z*T))

 

                                               X = 3.5 + (986/T)+0.01*M

 

                                               K = ((9.4+0.02*M)*T**1.5)/(209+19*M+T)

 

                                               Y = 2.4-0.2*X

 

                                               Mg = (K*np.exp(X*Pg**Y))/10**4

 

                                               Salida_1.delete(0,tk.END);Salida_1.insert(tk.END,Mg)

 

                        except ZeroDivisionError:

 

                                   messagebox.showwarning("Advertencia!","Los datos ingresados son incorrectos, por favor revisalos")

 

                        except SyntaxError:

 

                                   messagebox.showwarning("Advertencia!","Los datos ingresados son incorrectos, por favor revisalos")

 

                        except ValueError:

 

                                   messagebox.showwarning("Advertencia!","Los datos ingresados son incorrectos, por favor revisalos")

 

                        finally:

 

                                   pass

 

                        return

 

var = StringVar(Octava_Ventana,"0")

 

Radiobutton1 = tk.Checkbutton(Octava_Ventana,text='''Correlación de Lee, A.L. González, M.H. y Eakin, B.E.''',onvalue =1,variable= var,background="gray80",command = Viscosidad.Viscosidad_Lee).place(relx=0.01, rely=0.03, relheight=0.091, relwidth=0.750, bordermode='ignore')

 

Recuadro_Entradas = tk.LabelFrame(Octava_Ventana)

Recuadro_Entradas.place(relx=0.01, rely=0.13, relheight=0.850, relwidth=0.980)

Recuadro_Entradas.configure(relief='groove',foreground="black",text='''Entradas''',background="gray80",highlightbackground="gray80",highlightcolor="black",width=330)

 

Mensaje_1 = tk.Message(Recuadro_Entradas)

Mensaje_1.place(relx=0.02, rely=0.01, height=25, width=80)

Mensaje_1.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''P''')

Mensaje_2 = tk.Message(Recuadro_Entradas)

Mensaje_2.place(relx=0.02, rely=0.30, height=25, width=80)

Mensaje_2.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''T''')

 

Mensaje_3 = tk.Message(Recuadro_Entradas)

Mensaje_3.place(relx=0.21, rely=0.01, height=25, width=80)

Mensaje_3.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''Z''')

Mensaje_4 = tk.Message(Recuadro_Entradas)

Mensaje_4.place(relx=0.21, rely=0.30, height=25, width=80)

Mensaje_4.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''M''')

 

Mensaje_5 = tk.Message(Recuadro_Entradas)

Mensaje_5.place(relx=0.40, rely=0.00, height=25, width=80)

Mensaje_5.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''Ppr''')

Mensaje_6 = tk.Message(Recuadro_Entradas)

Mensaje_6.place(relx=0.40, rely=0.30, height=25, width=80)

Mensaje_6.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''Tpr''')

 

Mensaje_7 = tk.Message(Recuadro_Entradas)

Mensaje_7.place(relx=0.60, rely=0.00, height=25, width=80)

Mensaje_7.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''Yg''')

Mensaje_8 = tk.Message(Recuadro_Entradas)

Mensaje_8.place(relx=0.60, rely=0.30, height=25, width=80)

Mensaje_8.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''YN2''')

 

Mensaje_9 = tk.Message(Recuadro_Entradas)

Mensaje_9.place(relx=0.80, rely=0.00, height=25, width=80)

Mensaje_9.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''YCO2''')

Mensaje_10 = tk.Message(Recuadro_Entradas)

Mensaje_10.place(relx=0.80, rely=0.30, height=25, width=80)

Mensaje_10.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''YH2S''')

 

Mensaje_11 = tk.Label(Recuadro_Entradas)

Mensaje_11.place(relx=0.21, rely=0.62, height=25, width=140)

Mensaje_11.configure(background="gray80",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center',text='''Resultado:''')

 

Entrada_1 = tk.Entry(Recuadro_Entradas)

Entrada_1.place(relx=0.02, rely=0.18, height=20, width=80)

Entrada_1.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

Entrada_2 = tk.Entry(Recuadro_Entradas)

Entrada_2.place(relx=0.02, rely=0.46, height=20, width=80)

Entrada_2.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

 

Entrada_3 = tk.Entry(Recuadro_Entradas)

Entrada_3.place(relx=0.21, rely=0.18, height=20, width=80)

Entrada_3.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

Entrada_4 = tk.Entry(Recuadro_Entradas)

Entrada_4.place(relx=0.21, rely=0.46, height=20, width=80)

Entrada_4.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

 

Entrada_5 = tk.Entry(Recuadro_Entradas)

Entrada_5.place(relx=0.40, rely=0.18, height=20, width=80)

Entrada_5.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

Entrada_6 = tk.Entry(Recuadro_Entradas)

Entrada_6.place(relx=0.40, rely=0.46, height=20, width=80)

Entrada_6.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

 

Entrada_7 = tk.Entry(Recuadro_Entradas)

Entrada_7.place(relx=0.60, rely=0.18, height=20, width=80)

Entrada_7.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

Entrada_8 = tk.Entry(Recuadro_Entradas)

Entrada_8.place(relx=0.60, rely=0.46, height=20, width=80)

Entrada_8.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

 

Entrada_9 = tk.Entry(Recuadro_Entradas)

Entrada_9.place(relx=0.80, rely=0.18, height=20, width=80)

Entrada_9.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

Entrada_10 = tk.Entry(Recuadro_Entradas)

Entrada_10.place(relx=0.80, rely=0.46, height=20, width=80)

Entrada_10.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

 

Salida_1 = tk.Entry(Recuadro_Entradas)

Salida_1.place(relx=0.50, rely=0.64, height=20, width=140)

Salida_1.configure(background="white",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",justify='center')

 

Entrada_1.delete(0,tk.END);Entrada_1.insert(tk.END,"");Entrada_1.insert(tk.END,0.00)

Entrada_2.delete(0,tk.END);Entrada_2.insert(tk.END,"");Entrada_2.insert(tk.END,0.00)

Entrada_3.delete(0,tk.END);Entrada_3.insert(tk.END,"");Entrada_3.insert(tk.END,0.00)

Entrada_4.delete(0,tk.END);Entrada_4.insert(tk.END,"");Entrada_4.insert(tk.END,0.00)

Entrada_5.delete(0,tk.END);Entrada_5.insert(tk.END,"");Entrada_5.insert(tk.END,0.00)

Entrada_6.delete(0,tk.END);Entrada_6.insert(tk.END,"");Entrada_6.insert(tk.END,0.00)

Entrada_7.delete(0,tk.END);Entrada_7.insert(tk.END,"");Entrada_7.insert(tk.END,0.00)

Entrada_8.delete(0,tk.END);Entrada_8.insert(tk.END,"");Entrada_8.insert(tk.END,0.00)

Entrada_9.delete(0,tk.END);Entrada_9.insert(tk.END,"");Entrada_9.insert(tk.END,0.00)

Entrada_10.delete(0,tk.END);Entrada_10.insert(tk.END,"");Entrada_10.insert(tk.END,0.00)

Salida_1.delete(0,tk.END);Salida_1.insert(tk.END,"");Salida_1.insert(tk.END,0.00)

 

def Limpiando():

 

            Entrada_1.delete(0,tk.END);Entrada_1.insert(tk.END,"");Entrada_1.insert(tk.END,0.00)

            Entrada_2.delete(0,tk.END);Entrada_2.insert(tk.END,"");Entrada_2.insert(tk.END,0.00)

            Entrada_3.delete(0,tk.END);Entrada_3.insert(tk.END,"");Entrada_3.insert(tk.END,0.00)

            Entrada_4.delete(0,tk.END);Entrada_4.insert(tk.END,"");Entrada_4.insert(tk.END,0.00)

            Entrada_5.delete(0,tk.END);Entrada_5.insert(tk.END,"");Entrada_5.insert(tk.END,0.00)

            Entrada_6.delete(0,tk.END);Entrada_6.insert(tk.END,"");Entrada_6.insert(tk.END,0.00)

            Entrada_7.delete(0,tk.END);Entrada_7.insert(tk.END,"");Entrada_7.insert(tk.END,0.00)

            Entrada_8.delete(0,tk.END);Entrada_8.insert(tk.END,"");Entrada_8.insert(tk.END,0.00)

            Entrada_9.delete(0,tk.END);Entrada_9.insert(tk.END,"");Entrada_9.insert(tk.END,0.00)

            Entrada_10.delete(0,tk.END);Entrada_10.insert(tk.END,"");Entrada_10.insert(tk.END,0.00)

            Salida_1.delete(0,tk.END);Salida_1.insert(tk.END,"");Salida_1.insert(tk.END,0.00)

 

            return

 

Limpieza = Button(Recuadro_Entradas,activebackground="OliveDrab4",activeforeground="black",background="gray80",disabledforeground="#a3a3a3",foreground="#000000",highlightbackground="#d9d9d9",highlightcolor="black",pady="0",text='''Limpieza''', command = Limpiando).place(relx = 0.23, rely = 0.80, height=25, width=217)

 

Octava_Ventana.mainloop()

 

El código devuelve lo siguiente: