def coste(self): HP = abs(self.power.hp) if self.salida[0].P.psi >= 14.696: C = 0.31 * HP**0.81 * 1000 else: C = 0.69 * HP**0.81 * 1000 self.C_adq = Currency(C * self.kwargs["Current_index"] / self.kwargs["Base_index"]) self.C_inst = Currency(self.C_adq * self.kwargs["f_install"])
def readStatefromJSON(self, state): """Load instance parameter from saved file""" self.Pout = Pressure(state["Pout"]) self.Tout = Temperature(state["Tout"]) self.rendimientoCalculado = Dimensionless(state["rendimientoCalculado"]) # noqa self.power = Power(state["power"]) self.razonCalculada = Dimensionless(state["razonCalculada"]) self.razon = Dimensionless(state["razon"]) self.deltaT = DeltaT(state["deltaT"]) self.deltaP = DeltaP(state["deltaP"]) self.cp_cv = Dimensionless(state["cp_cv"]) self.Pin = Pressure(state["Pin"]) self.Tin = Temperature(state["Tin"]) self.cp_cv = Dimensionless(state["cp_cv"]) self.statusCoste = state["statusCoste"] if self.statusCoste: self.C_adq = Currency(state["C_adq"]) self.C_inst = Currency(state["C_inst"]) self.salida = [None]
def readStatefromJSON(self, state): """Load instance parameter from saved file""" self.deltaP = DeltaP(state["deltaP"]) self.rendimientoCalculado = Dimensionless( state["rendimientoCalculado"]) # noqa self.headCalculada = Length(state["headCalculada"]) self.power = Power(state["power"]) self.P_freno = Power(state["P_freno"]) self.Pin = Pressure(state["Pin"]) self.PoutCalculada = Pressure(state["PoutCalculada"]) self.volflow = VolFlow(state["volflow"]) self.cp_cv = Dimensionless(state["cp_cv"]) self.statusCoste = state["statusCoste"] if self.statusCoste: self.C_bomba = Currency(state["C_bomba"]) self.C_motor = Currency(state["C_motor"]) self.C_adq = Currency(state["C_adq"]) self.C_inst = Currency(state["C_inst"]) if self.kwargs["usarCurva"]: pass self.salida = [None]
def coste(self, *args, **kwargs): """ material: 0 - Carbon steel 1 - Stainless steel 316 2 - Stainless steel 304 3 - Stainless steel 347 4 - Nickel 5 - Monel 6 - Inconel 7 - Zirconium 8 - Titanium 9 - Brick and rubber or brick and polyester-lined steel 10 - Rubber or lead-lined steel 11 - Polyester, fiberglass-reinforced 12 - Aluminum 13 - Copper 14 - Concrete """ self._indicesCoste(*args) self.material = kwargs["material"] V = self.Volumen.galUS Fm = [ 1., 2.7, 2.4, 3.0, 3.5, 3.3, 3.8, 11.0, 11.0, 2.75, 1.9, 0.32, 2.7, 2.3, 0.55 ][self.material] if V <= 21000: C = Fm * exp(2.631 + 1.3673 * log(V) - 0.06309 * log(V)**2) else: C = Fm * exp(11.662 + 0.6104 * log(V) - 0.04536 * log(V)**2) self.C_adq = Currency(C * self.Current_index / self.Base_index) self.C_inst = Currency(self.C_adq * self.f_install)
def coste(self): HP = self.power.hp LnHP = log(self.power.hp) Q = self.kwargs["entrada"].Q.galUSmin CI = self.kwargs["Current_index"] BI = self.kwargs["Base_index"] # Coste Bomba if self.kwargs["tipo_bomba"] == 0: # Centrifugal pumps QH = log(Q * self.power.hp**0.5) Fm = [ 1., 1.35, 1.15, 2., 2., 3.5, 3.3, 4.95, 4.6, 9.7, 2.95, 1.15, 1.90 ] B1 = [0., 5.1029, 0.0632, 2.0290, 13.7321, 9.8849] B2 = [0., -1.2217, 0.2744, -0.2371, -2.8304, -1.6164] B3 = [0., 0.0771, -0.0253, 0.0102, 0.1542, 0.0834] fm = Fm[self.kwargs["material"]] b1 = B1[self.kwargs["tipo_centrifuga"]] b2 = B2[self.kwargs["tipo_centrifuga"]] b3 = B3[self.kwargs["tipo_centrifuga"]] Ft = exp(b1 + b2 * QH + b3 * QH**2) Cb = fm * Ft * 1.55 * exp(8.833 - 0.6019 * QH + 0.0519 * QH**2) elif self.kwargs["tipo_bomba"] == 1: # Reciprocating pumps if self.kwargs["material"] == 0: # Case iron Cb = 40. * Q**0.81 elif self.kwargs["material"] == 3: # 316 Staineless steel Cb = 410. * Q**0.52 elif self.kwargs["material"] == 12: # Bronze Cb = 410. * 1.4 * Q**0.52 elif self.kwargs["material"] == 5: # Nickel Cb = 410. * 1.86 * Q**0.52 elif self.kwargs["material"] == 6: # Monel Cb = 410. * 2.20 * Q**0.52 else: # Material not available. Assume case iron Cb = 40. * Q**0.81 elif self.kwargs["tipo_bomba"] == 2: # Gear pumps Cb = 1000 * exp(-0.0881 + 0.1986 * log(Q) + 0.0291 * log(Q)**2) elif self.kwargs["tipo_bomba"] == 3: # Vertical mixed flow Cb = 0.036 * Q**0.82 * 1000 elif self.kwargs["tipo_bomba"] == 4: # Vertical axial flow Cb = 0.02 * Q**0.78 * 1000 C_bomba = Cb * CI / BI # Coste motor if self.kwargs["motor"] == 0: # Open, drip-proof if self.kwargs["rpm"] == 0 and HP <= 7.5: a1, a2, a3 = 4.8314, 0.0966, 0.10960 elif self.kwargs["rpm"] == 0 and 7.5 < HP <= 250.: a1, a2, a3 = 4.1514, 0.5347, 0.05252 elif self.kwargs["rpm"] == 0 and HP > 250.: a1, a2, a3 = 4.2432, 1.03251, -0.03595 elif self.kwargs["rpm"] == 1 and HP <= 7.5: a1, a2, a3 = 4.7075, -0.01511, 0.22888 elif self.kwargs["rpm"] == 1 and 7.5 < HP <= 250: a1, a2, a3 = 4.5212, 0.47242, 0.04820 elif self.kwargs["rpm"] == 1 and HP > 250.: a1, a2, a3 = 7.4044, -0.06464, 0.05448 elif self.kwargs["rpm"] == 2 and HP <= 7.5: a1, a2, a3 = 4.9298, 0.30118, 0.12630 elif self.kwargs["rpm"] == 2 and 7.5 < HP <= 250: a1, a2, a3 = 5.0999, 0.35861, 0.06052 elif self.kwargs["rpm"] == 2 and HP > 250.: a1, a2, a3 = 4.6163, 0.88531, -0.02188 elif self.kwargs["motor"] == 1: # Totally enclosed, fan-cooled if self.kwargs["rpm"] == 0 and HP <= 7.5: a1, a2, a3 = 5.1058, 0.03316, 0.15374 elif self.kwargs["rpm"] == 0 and 7.5 < HP <= 250.: a1, a2, a3 = 3.8544, 0.83311, 0.02399 elif self.kwargs["rpm"] == 0 and HP > 250.: a1, a2, a3 = 5.3182, 1.08470, -0.05695 elif self.kwargs["rpm"] == 1 and HP <= 7.5: a1, a2, a3 = 4.9687, -0.00930, 0.22616 elif self.kwargs["rpm"] == 1 and HP > 7.5: a1, a2, a3 = 4.5347, 0.57065, 0.04609 elif self.kwargs["rpm"] == 2 and HP <= 7.5: a1, a2, a3 = 5.1532, 0.28931, 0.14357 elif self.kwargs["rpm"] == 2 and HP > 7.5: a1, a2, a3 = 5.3858, 0.31004, 0.07406 elif self.kwargs["motor"] == 2: # Explosion-proof if self.kwargs["rpm"] == 0 and HP <= 7.5: a1, a2, a3 = 5.3934, -0.00333, 0.15475 elif self.kwargs["rpm"] == 0 and HP > 7.5: a1, a2, a3 = 4.4442, 0.60820, 0.05202 elif self.kwargs["rpm"] == 1 and HP <= 7.5: a1, a2, a3 = 5.2851, 0.00048, 0.19949 elif self.kwargs["rpm"] == 1 and HP > 7.5: a1, a2, a3 = 4.8178, 0.51086, 0.05293 elif self.kwargs["rpm"] == 2 and HP <= 7.5: a1, a2, a3 = 5.4166, 0.31216, 0.10573 elif self.kwargs["rpm"] == 2 and HP > 7.5: a1, a2, a3 = 5.5655, 0.31284, 0.07212 CI = self.kwargs["Current_index"] BI = self.kwargs["Base_index"] C_motor = 1.2 * exp(a1 + a2 * LnHP + a3 * LnHP**2) * CI / BI self.C_bomba = Currency(C_bomba) self.C_motor = Currency(C_motor) self.C_adq = Currency(C_bomba + C_motor) self.C_inst = Currency(self.C_adq * self.kwargs["f_install"])
def coste(self): HP = self.power.hp/self.etapas CI = self.kwargs["Current_index"] BI = self.kwargs["Base_index"] if self.kwargs["compresor"] == 0: # Centrifugal compressor C = 6.49*HP**0.62*1000 elif self.kwargs["compresor"] == 1: # Reciprocating compressor C = 5.96*HP**0.61*1000 elif self.kwargs["compresor"] == 2: # Screw compressor C = 1.49*HP**0.71*1000 C_comp = self.etapas*C*CI/BI if self.kwargs["motor"] == 0: # Open, drip-proof if self.kwargs["rpm"] == 0 and HP <= 7.5: a1, a2, a3 = 4.8314, 0.0966, 0.10960 elif self.kwargs["rpm"] == 0 and HP <= 250. and HP > 7.5: a1, a2, a3 = 4.1514, 0.5347, 0.05252 elif self.kwargs["rpm"] == 0 and HP > 250.: a1, a2, a3 = 4.2432, 1.03251, -0.03595 elif self.kwargs["rpm"] == 1 and HP <= 7.5: a1, a2, a3 = 4.7075, -0.01511, 0.22888 elif self.kwargs["rpm"] == 1 and HP <= 250. and HP > 7.5: a1, a2, a3 = 4.5212, 0.47242, 0.04820 elif self.kwargs["rpm"] == 1 and HP > 250.: a1, a2, a3 = 7.4044, -0.06464, 0.05448 elif self.kwargs["rpm"] == 2 and HP <= 7.5: a1, a2, a3 = 4.9298, 0.30118, 0.12630 elif self.kwargs["rpm"] == 2 and HP <= 250. and HP > 7.5: a1, a2, a3 = 5.0999, 0.35861, 0.06052 elif self.kwargs["rpm"] == 2 and HP > 250.: a1, a2, a3 = 4.6163, 0.88531, -0.02188 elif self.kwargs["motor"] == 1: # Totally enclosed, fan-cooled if self.kwargs["rpm"] == 0 and HP <= 7.5: a1, a2, a3 = 5.1058, 0.03316, 0.15374 elif self.kwargs["rpm"] == 0 and HP <= 250. and HP > 7.5: a1, a2, a3 = 3.8544, 0.83311, 0.02399 elif self.kwargs["rpm"] == 0 and HP > 250.: a1, a2, a3 = 5.3182, 1.08470, -0.05695 elif self.kwargs["rpm"] == 1 and HP <= 7.5: a1, a2, a3 = 4.9687, -0.00930, 0.22616 elif self.kwargs["rpm"] == 1 and HP > 7.5: a1, a2, a3 = 4.5347, 0.57065, 0.04609 elif self.kwargs["rpm"] == 2 and HP <= 7.5: a1, a2, a3 = 5.1532, 0.28931, 0.14357 elif self.kwargs["rpm"] == 2 and HP > 7.5: a1, a2, a3 = 5.3858, 0.31004, 0.07406 elif self.kwargs["motor"] == 2: # Explosion-proof if self.kwargs["rpm"] == 0 and HP <= 7.5: a1, a2, a3 = 5.3934, -0.00333, 0.15475 elif self.kwargs["rpm"] == 0 and HP > 7.5: a1, a2, a3 = 4.4442, 0.60820, 0.05202 elif self.kwargs["rpm"] == 1 and HP <= 7.5: a1, a2, a3 = 5.2851, 0.00048, 0.19949 elif self.kwargs["rpm"] == 1 and HP > 7.5: a1, a2, a3 = 4.8178, 0.51086, 0.05293 elif self.kwargs["rpm"] == 2 and HP <= 7.5: a1, a2, a3 = 5.4166, 0.31216, 0.10573 elif self.kwargs["rpm"] == 2 and HP > 7.5: a1, a2, a3 = 5.5655, 0.31284, 0.07212 LnHP = log(HP) C_motor = self.etapas*1.2 * exp(a1 + a2 * LnHP + a3 * LnHP**2) if self.kwargs["compresor"] == 2: C_trans = 0 elif self.kwargs["transmision"] == 0: C_trans = 1.2*exp(3.689+0.8917*log(HP)) elif self.kwargs["transmision"] == 1: C_trans = 1.2*exp(5.329+0.5048*log(HP)) elif self.kwargs["transmision"] == 2: C_trans = 12000/(1.562+7.877/HP) C_trans = self.etapas*C_trans*CI/BI C_adq = C_comp+C_motor+C_trans C_inst = C_adq * self.kwargs["f_install"] self.C_comp = Currency(C_comp) self.C_motor = Currency(C_motor) self.C_trans = Currency(C_trans) self.C_adq = Currency(C_adq) self.C_inst = Currency(C_inst)
def __init__(self, equipment=None, parent=None): """ equipment: Initial equipment instance to model """ super(UI_equipment, self).__init__(ColumnFUG, entrada=False, parent=parent) # Calculate tab lyt = QtGui.QGridLayout(self.tabCalculo) lyt.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Feed tray")), 2, 0) self.feed = QtGui.QComboBox() for txt in self.Equipment.TEXT_FEED: self.feed.addItem(txt) self.feed.currentIndexChanged.connect( partial(self.changeParams, "feed")) lyt.addWidget(self.feed, 2, 1) lyt.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Condenser")), 3, 0) self.condenser = QtGui.QComboBox() for txt in self.Equipment.TEXT_CONDENSER: self.condenser.addItem(txt) self.condenser.currentIndexChanged.connect( partial(self.changeParams, "condenser")) lyt.addWidget(self.condenser, 3, 1) lyt.addItem( QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed), 4, 0, 1, 5) group = QtGui.QGroupBox( QtGui.QApplication.translate("pychemqt", "Key Components specification")) lyt.addWidget(group, 5, 0, 1, 5) layout = QtGui.QGridLayout(group) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Light")), 1, 1) self.LK = QtGui.QComboBox() layout.addWidget(self.LK, 1, 2) layout.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Split in destilate")), 1, 4) self.LKsplit = Entrada_con_unidades(float, spinbox=True, max=1.) self.LKsplit.valueChanged.connect(partial(self.changeParams, "LKsplit")) layout.addWidget(self.LKsplit, 1, 5) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Heavy")), 2, 1) self.HK = QtGui.QComboBox() layout.addWidget(self.HK, 2, 2) layout.addItem( QtGui.QSpacerItem(40, 10, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed), 2, 3) layout.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Spit in residue")), 2, 4) self.HKsplit = Entrada_con_unidades(float, spinbox=True, max=1.) self.HKsplit.valueChanged.connect(partial(self.changeParams, "HKsplit")) layout.addWidget(self.HKsplit, 2, 5) indices, nombres, M = getComponents() for i, nombre in enumerate(nombres): self.LK.addItem("%i - %s" % (i + 1, nombre)) self.HK.addItem("%i - %s" % (i + 1, nombre)) self.LK.setCurrentIndex(-1) self.HK.setCurrentIndex(-1) self.LK.currentIndexChanged.connect(partial(self.changeParams, "LK")) self.HK.currentIndexChanged.connect(partial(self.changeParams, "HK")) lyt.addItem( QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed), 6, 0, 1, 5) lyt.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Reflux ratio")), 7, 0) self.R = Entrada_con_unidades(float) self.R.valueChanged.connect(partial(self.changeParams, "R")) lyt.addWidget(self.R, 7, 1) lyt.addWidget(QtGui.QLabel("R/Rmin"), 8, 0) self.R_Rmin = Entrada_con_unidades(float) self.R_Rmin.valueChanged.connect(partial(self.changeParams, "R_Rmin")) lyt.addWidget(self.R_Rmin, 8, 1) lyt.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Design Pressure")), 7, 3) self.Pd = Entrada_con_unidades(Pressure) self.Pd.valueChanged.connect(partial(self.changeParams, "Pd")) lyt.addWidget(self.Pd, 7, 4) lyt.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Pressure loss")), 8, 3) self.DeltaP = Entrada_con_unidades(Pressure) self.DeltaP.valueChanged.connect(partial(self.changeParams, "DeltaP")) lyt.addWidget(self.DeltaP, 8, 4) lyt.addItem( QtGui.QSpacerItem(10, 10, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding), 9, 0, 1, 5) self.buttonMcCabe = QtGui.QPushButton( QtGui.QApplication.translate("pychemqt", "McCabe-Thiele")) self.buttonMcCabe.clicked.connect(self.mcCabe) lyt.addWidget(self.buttonMcCabe, 10, 0) groupBox_Calculo = QtGui.QGroupBox( QtGui.QApplication.translate("pychemqt", "Results")) lyt.addWidget(groupBox_Calculo, 11, 0, 1, 5) layout = QtGui.QGridLayout(groupBox_Calculo) layout.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Condenser Duty")), 0, 1) self.DutyCondenser = Entrada_con_unidades(Power, retornar=False) self.DutyCondenser.setReadOnly(True) layout.addWidget(self.DutyCondenser, 0, 2) layout.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Reboiler Duty")), 1, 1) self.DutyReboiler = Entrada_con_unidades(Power, retornar=False) self.DutyReboiler.setReadOnly(True) layout.addWidget(self.DutyReboiler, 1, 2) layout.addWidget(QtGui.QLabel("Rmin"), 2, 1) self.Rmin = Entrada_con_unidades(float, readOnly=True) layout.addWidget(self.Rmin, 2, 2) layout.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Reflux ratio")), 3, 1) self.RCalculada = Entrada_con_unidades(float, readOnly=True) layout.addWidget(self.RCalculada, 3, 2) layout.addWidget(QtGui.QLabel("Nmin"), 0, 4) self.Nmin = Entrada_con_unidades(float, readOnly=True) layout.addWidget(self.Nmin, 0, 5) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Stages")), 1, 4) self.NTray = Entrada_con_unidades(float, readOnly=True) layout.addWidget(self.NTray, 1, 5) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Feed stage")), 2, 4) self.N_feed = Entrada_con_unidades(float, readOnly=True) layout.addWidget(self.N_feed, 2, 5) # Cost tab lyt = QtGui.QGridLayout(self.tabCostos) lyt.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Process")), 1, 1) self.proceso = QtGui.QComboBox() for txt in self.Equipment.TEXT_PROCESS: self.proceso.addItem(txt) self.proceso.currentIndexChanged.connect( partial(self.changeParamsCoste, "proceso")) lyt.addWidget(self.proceso, 1, 2) lyt.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Column tipe")), 2, 1) self.tipo = QtGui.QComboBox() for txt in self.Equipment.TEXT_COLUMN: self.tipo.addItem(txt) self.tipo.currentIndexChanged.connect(self.mostrarSubclasificacion) lyt.addWidget(self.tipo, 2, 2) lyt.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Material")), 3, 1) self.material = QtGui.QComboBox() for txt in self.Equipment.TEXT_MATERIAL: self.material.addItem(txt) self.material.currentIndexChanged.connect( partial(self.changeParamsCoste, "material_columna")) lyt.addWidget(self.material, 3, 2) lyt.addItem( QtGui.QSpacerItem(30, 30, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed), 1, 3, 5, 1) self.groupBox_Pisos = QtGui.QGroupBox( QtGui.QApplication.translate("pychemqt", "Tray column")) lyt.addWidget(self.groupBox_Pisos, 1, 4, 4, 2) layout = QtGui.QGridLayout(self.groupBox_Pisos) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Tray type")), 1, 1) self.tipoPisos = QtGui.QComboBox() for txt in self.Equipment.TEXT_TRAY: self.tipoPisos.addItem(txt) self.tipoPisos.currentIndexChanged.connect( partial(self.changeParamsCoste, "tipo_pisos")) layout.addWidget(self.tipoPisos, 1, 2) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Material")), 2, 1) self.materialPisos = QtGui.QComboBox() for txt in self.Equipment.TEXT_MATERIAL: self.materialPisos.addItem(txt) self.materialPisos.currentIndexChanged.connect( partial(self.changeParamsCoste, "material_pisos")) layout.addWidget(self.materialPisos, 2, 2) layout.addItem( QtGui.QSpacerItem(10, 10, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed), 3, 1, 1, 2) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Diameter")), 4, 1) self.diametroPisos = Entrada_con_unidades(Length) layout.addWidget(self.diametroPisos, 4, 2) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Stages")), 5, 1) self.NumeroPisos = Entrada_con_unidades(int, spinbox=True, min=1, step=1, width=50) layout.addWidget(self.NumeroPisos, 5, 2) layout.addItem( QtGui.QSpacerItem(10, 10, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed), 6, 1, 1, 2) self.groupBox_relleno = QtGui.QGroupBox( QtGui.QApplication.translate("pychemqt", "Packed column")) lyt.addWidget(self.groupBox_relleno, 1, 4, 4, 2) layout = QtGui.QGridLayout(self.groupBox_relleno) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Volume")), 1, 1) self.VolumenRelleno = Entrada_con_unidades(Volume, "VolLiq") layout.addWidget(self.VolumenRelleno, 1, 2) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Unit Cost")), 2, 1) texto = "%s / %s" % (Currency(None).text(), Volume(None).text("VolLiq")) self.C_unit_relleno = Entrada_con_unidades(Currency, retornar=False, textounidad=texto) layout.addWidget(self.C_unit_relleno, 2, 2) layout.addItem( QtGui.QSpacerItem(10, 10, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed), 3, 1, 1, 2) lyt.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Diameter")), 5, 1) self.Dc = Entrada_con_unidades(Length) lyt.addWidget(self.Dc, 5, 2, 1, 2) lyt.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Height")), 6, 1) self.Hc = Entrada_con_unidades(Length) lyt.addWidget(self.Hc, 6, 2, 1, 2) lyt.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Thickness (top)")), 6, 4) self.EspesorSuperior = Entrada_con_unidades(Length, "Thickness") lyt.addWidget(self.EspesorSuperior, 6, 5, 1, 2) lyt.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Thickness (bottom)")), 7, 4) self.EspesorInferior = Entrada_con_unidades(Length, "Thickness") lyt.addWidget(self.EspesorInferior, 7, 5, 1, 2) lyt.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Density")), 7, 1) self.EspesorInferior = Entrada_con_unidades(Density, "DenLiq") lyt.addWidget(self.EspesorInferior, 7, 2, 1, 2) self.Costos = CostData(self.Equipment) self.Costos.valueChanged.connect(self.changeParamsCoste) lyt.addWidget(self.Costos, 10, 1, 2, 5) lyt.addItem( QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding), 12, 1, 1, 6) self.groupBox_Costos = QtGui.QGroupBox( QtGui.QApplication.translate("pychemqt", "Stimated costs")) lyt.addWidget(self.groupBox_Costos, 13, 1, 1, 5) layout = QtGui.QGridLayout(self.groupBox_Costos) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Tray cost")), 0, 1) self.C_pisos = Entrada_con_unidades(Currency, retornar=False) self.C_pisos.setReadOnly(True) layout.addWidget(self.C_pisos, 0, 2) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Shell cost")), 1, 1) self.C_carcasa = Entrada_con_unidades(Currency, retornar=False) self.C_carcasa.setReadOnly(True) layout.addWidget(self.C_carcasa, 1, 2) layout.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Platform and ladder")), 2, 1) self.C_accesorios = Entrada_con_unidades(Currency, retornar=False) self.C_accesorios.setReadOnly(True) layout.addWidget(self.C_accesorios, 2, 2) layout.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Column cost")), 0, 4) self.C_columna = Entrada_con_unidades(Currency, retornar=False) self.C_columna.setReadOnly(True) layout.addWidget(self.C_columna, 0, 5) layout.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Purchase costs")), 1, 4) self.C_adq = Entrada_con_unidades(Currency, retornar=False) self.C_adq.setReadOnly(True) layout.addWidget(self.C_adq, 1, 5) layout.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Installed costs")), 2, 4) self.C_inst = Entrada_con_unidades(Currency, retornar=False) self.C_inst.setReadOnly(True) layout.addWidget(self.C_inst, 2, 5) # Output tab self.addSalida(QtGui.QApplication.translate("pychemqt", "Destilate")) self.addSalida(QtGui.QApplication.translate("pychemqt", "Residue")) self.mostrarSubclasificacion(0) if equipment: self.setEquipment(equipment)