프로젝트

일반

사용자정보

개정판 4a293b4c

ID4a293b4c2f0f358893e55a47b888f5de213bbb6c
상위 dc3bb0e4
하위 a3811ad8

김연진이(가) 약 5년 전에 추가함

issue #1213 : Line Sizing Criteria

Change-Id: I1d3e7b420bc38f9151a3a20891bec33e8a406498

차이점 보기:

HYTOS/HYTOS/Line_Sizing_VaporDialog.py
21 21

  
22 22
        self.ui = Line_Sizing_Vapor_UI.Ui_Dialog()
23 23
        self.ui.setupUi(self)
24
        self.units = {}
25
        self.isAccepted = False
26
        self.velocity = None
27
        self.drop_pressure = None
28

  
29
        self.init_units()
30
        self.initialize()
24 31

  
25 32
    def show_dialog(self):
26 33
        self.setWindowFlags(self.windowFlags() & ~QtCore.Qt.WindowContextHelpButtonHint)
27 34

  
28 35
        self.exec_()
29 36

  
37
        return self.isAccepted, self.velocity, self.drop_pressure
38

  
39
    def init_units(self):
40
        app_doc_data = AppDocData.instance()
41
        active_drawing = app_doc_data.activeDrawing
42

  
43
        for attr in active_drawing.attrs:
44
            if attr[0] == 'Units':
45
                self.units = attr[1]
46

  
47
    def initialize(self):
48
        try:
49
            self.ui.label_Velocity_Unit.setText(self.units['Velocity'])
50
            self.ui.label_Drop_Pressure_Unit.setText('{}/100{}'.format(self.units['Pressure'], self.units['Length']))
51

  
52
            pressure_unit = self.units['Pressure']
53
            if pressure_unit == 'kg/cm2':
54
                # General Service
55
                self.ui.radioButton_Pressure_1.setText('~ 4.55 kg/cm2(g)')
56
                self.ui.radioButton_Pressure_2.setText('4.55 ~ 15.1 kg/cm2(g)')
57
                self.ui.radioButton_Pressure_3.setText('15.1 ~ 36.2 kg/cm2(g)')
58
                self.ui.radioButton_Pressure_4.setText('36.2 kg/cm2(g) ~')
59
                # Tower Overhead
60
                self.ui.radioButton_Pressure_5.setText('~ 0.7 kg/cm2(g)')
61
                self.ui.radioButton_Pressure_6.setText('3.5 kg/cm2(g) ~')
62
                # Stream Lines
63
                self.ui.radioButton_Pressure_7.setText('~ 4.55 kg/cm2(g)')
64
                self.ui.radioButton_Pressure_8.setText('4.55 ~ 15.1 kg/cm2(g)')
65
                self.ui.radioButton_Pressure_9.setText('21 kg/cm2(g) ~')
66
            elif pressure_unit == 'psi':
67
                # General Service
68
                self.ui.radioButton_Pressure_1.setText('~ 64.71 psi(g)')
69
                self.ui.radioButton_Pressure_2.setText('64.71 ~ 214.7 psi(g)')
70
                self.ui.radioButton_Pressure_3.setText('214.7 ~ 514.9 psi(g)')
71
                self.ui.radioButton_Pressure_4.setText('514.9 psi(g) ~')
72
                # Tower Overhead
73
                self.ui.radioButton_Pressure_5.setText('~ 9.9 psi(g)')
74
                self.ui.radioButton_Pressure_6.setText('49.7 psi(g) ~')
75
                # Stream Lines
76
                self.ui.radioButton_Pressure_7.setText('~ 64.71 psi(g)')
77
                self.ui.radioButton_Pressure_8.setText('64.71 ~ 214.7 psi(g)')
78
                self.ui.radioButton_Pressure_9.setText('298.7 psi(g) ~')
79
            elif pressure_unit == 'atm':
80
                # General Service
81
                self.ui.radioButton_Pressure_1.setText('~ 5.4 atm')
82
                self.ui.radioButton_Pressure_2.setText('5.4 ~ 15.6 atm')
83
                self.ui.radioButton_Pressure_3.setText('15.6 ~ 36 atm')
84
                self.ui.radioButton_Pressure_4.setText('36 atm ~')
85
                # Tower Overhead
86
                self.ui.radioButton_Pressure_5.setText('~ 1.67 atm')
87
                self.ui.radioButton_Pressure_6.setText('4.38 atm ~')
88
                # Stream Lines
89
                self.ui.radioButton_Pressure_7.setText('~ 5.4 atm')
90
                self.ui.radioButton_Pressure_8.setText('5.4 ~ 15.6 atm')
91
                self.ui.radioButton_Pressure_9.setText('21.3 atm ~')
92
            elif pressure_unit == 'bar':
93
                # General Service
94
                self.ui.radioButton_Pressure_1.setText('~ 4.46 bar(g)')
95
                self.ui.radioButton_Pressure_2.setText('4.46 ~ 14.8 bar(g)')
96
                self.ui.radioButton_Pressure_3.setText('14.8 ~ 35.5 bar(g)')
97
                self.ui.radioButton_Pressure_4.setText('35.5 bar(g) ~')
98
                # Tower Overhead
99
                self.ui.radioButton_Pressure_5.setText('~ 0.68 bar(g)')
100
                self.ui.radioButton_Pressure_6.setText('3.43 bar(g) ~')
101
                # Stream Lines
102
                self.ui.radioButton_Pressure_7.setText('~ 4.46 bar(g)')
103
                self.ui.radioButton_Pressure_8.setText('4.46 ~ 14.8 bar(g)')
104
                self.ui.radioButton_Pressure_9.setText('20.6 bar(g) ~')
105
            elif pressure_unit == 'mmHg':
106
                # General Service
107
                self.ui.radioButton_Pressure_1.setText('~ 3346.8 mmHg(g)')
108
                self.ui.radioButton_Pressure_2.setText('3346.8 ~ 11107 mmHg(g)')
109
                self.ui.radioButton_Pressure_3.setText('11107mmHg ~ 26627 mmHg(g)')
110
                self.ui.radioButton_Pressure_4.setText('26627 mmHg(g) ~')
111
                # Tower Overhead
112
                self.ui.radioButton_Pressure_5.setText('~ 514.9 mmHg(g)')
113
                self.ui.radioButton_Pressure_6.setText('2574 mmHg(g) ~')
114
                # Stream Lines
115
                self.ui.radioButton_Pressure_7.setText('~ 3346.8 mmHg(g)')
116
                self.ui.radioButton_Pressure_8.setText('3346.8 ~ 11107 mmHg(g)')
117
                self.ui.radioButton_Pressure_9.setText('15446.7 mmHg(g) ~')
118
            elif pressure_unit == 'kPa':
119
                # General Service
120
                self.ui.radioButton_Pressure_1.setText('~ 446.2 kPa(g)')
121
                self.ui.radioButton_Pressure_2.setText('446.2 ~ 1480.8 kPa(g)')
122
                self.ui.radioButton_Pressure_3.setText('1480.8 ~ 3550 kPa(g)')
123
                self.ui.radioButton_Pressure_4.setText('3550 kPa(g) ~')
124
                # Tower Overhead
125
                self.ui.radioButton_Pressure_5.setText('~ 64.65 kPa(g)')
126
                self.ui.radioButton_Pressure_6.setText('343.2 kPa(g) ~')
127
                # Stream Lines
128
                self.ui.radioButton_Pressure_7.setText('~ 446.2 kPa(g)')
129
                self.ui.radioButton_Pressure_8.setText('446.2 ~ 1480.8 kPa(g)')
130
                self.ui.radioButton_Pressure_9.setText('2059.4 kPa(g) ~')
131
            elif pressure_unit == 'MPa':
132
                # General Service
133
                self.ui.radioButton_Pressure_1.setText('~ 0.4462 MPa(g)')
134
                self.ui.radioButton_Pressure_2.setText('0.4462 ~ 1.4808 MPa(g)')
135
                self.ui.radioButton_Pressure_3.setText('1.4808 ~ 3.55 MPa(g)')
136
                self.ui.radioButton_Pressure_4.setText('3.55 MPa(g) ~')
137
                # Tower Overhead
138
                self.ui.radioButton_Pressure_5.setText('~ 0.06465 MPa(g)')
139
                self.ui.radioButton_Pressure_6.setText('0.3432 MPa(g) ~')
140
                # Stream Lines
141
                self.ui.radioButton_Pressure_7.setText('~ 0.4462 MPa(g)')
142
                self.ui.radioButton_Pressure_8.setText('0.4462 ~ 1.4808 MPa(g)')
143
                self.ui.radioButton_Pressure_9.setText('2.0594 MPa(g) ~')
144

  
145
            # 압력의 기준
146
            # 초기값 (kg/cm2/100m) 설정
147
            seclvdp = [0.023, 0.058, 0.115, 0.138, 0.231, 0.346, 0.557, 1.461]
148
            length_unit = self.units['Length']
149
            pressure_unit = self.units['Pressure']
150
            if pressure_unit == 'kg/cm2':
151
                if length_unit == 'm':
152
                    seclvdp = seclvdp
153
                elif length_unit == 'in':
154
                    for i in range(len(seclvdp)):
155
                        seclvdp[i] *= 0.0254
156
                elif length_unit == 'ft':
157
                    for i in range(len(seclvdp)):
158
                        seclvdp[i] /= 3.28084
159
                elif length_unit == 'yd':
160
                    for i in range(len(seclvdp)):
161
                        seclvdp[i] /= 1.09361
162
                elif length_unit == 'mile':
163
                    for i in range(len(seclvdp)):
164
                        seclvdp[i] /= 0.000621371
165
                elif length_unit == 'mm':
166
                    for i in range(len(seclvdp)):
167
                        seclvdp[i] /= 1000
168
            elif pressure_unit == 'psi':
169
                for i in range(len(seclvdp)):
170
                    seclvdp[i] = seclvdp[i] / 1.033 * 14.7
171

  
172
                if length_unit == 'm':
173
                    seclvdp = seclvdp
174
                elif length_unit == 'in':
175
                    for i in range(len(seclvdp)):
176
                        seclvdp[i] *= 0.0254
177
                elif length_unit == 'ft':
178
                    for i in range(len(seclvdp)):
179
                        seclvdp[i] /= 3.28084
180
                elif length_unit == 'yd':
181
                    for i in range(len(seclvdp)):
182
                        seclvdp[i] /= 1.09361
183
                elif length_unit == 'mile':
184
                    for i in range(len(seclvdp)):
185
                        seclvdp[i] /= 0.000621371
186
                elif length_unit == 'mm':
187
                    for i in range(len(seclvdp)):
188
                        seclvdp[i] /= 1000
189
            elif pressure_unit == 'atm':
190
                for i in range(len(seclvdp)):
191
                    seclvdp[i] = seclvdp[i] / 1.033
192

  
193
                if length_unit == 'm':
194
                    seclvdp = seclvdp
195
                elif length_unit == 'in':
196
                    for i in range(len(seclvdp)):
197
                        seclvdp[i] *= 0.0254
198
                elif length_unit == 'ft':
199
                    for i in range(len(seclvdp)):
200
                        seclvdp[i] /= 3.28084
201
                elif length_unit == 'yd':
202
                    for i in range(len(seclvdp)):
203
                        seclvdp[i] /= 1.09361
204
                elif length_unit == 'mile':
205
                    for i in range(len(seclvdp)):
206
                        seclvdp[i] /= 0.000621371
207
                elif length_unit == 'mm':
208
                    for i in range(len(seclvdp)):
209
                        seclvdp[i] /= 1000
210
            elif pressure_unit == 'bar':
211
                for i in range(len(seclvdp)):
212
                    seclvdp[i] = seclvdp[i] / 1.033 * 1.013
213

  
214
                if length_unit == 'm':
215
                    seclvdp = seclvdp
216
                elif length_unit == 'in':
217
                    for i in range(len(seclvdp)):
218
                        seclvdp[i] *= 0.0254
219
                elif length_unit == 'ft':
220
                    for i in range(len(seclvdp)):
221
                        seclvdp[i] /= 3.28084
222
                elif length_unit == 'yd':
223
                    for i in range(len(seclvdp)):
224
                        seclvdp[i] /= 1.09361
225
                elif length_unit == 'mile':
226
                    for i in range(len(seclvdp)):
227
                        seclvdp[i] /= 0.000621371
228
                elif length_unit == 'mm':
229
                    for i in range(len(seclvdp)):
230
                        seclvdp[i] /= 1000
231
            elif pressure_unit == 'mmHg':
232
                for i in range(len(seclvdp)):
233
                    seclvdp[i] = seclvdp[i] / 1.033 * 760
234

  
235
                if length_unit == 'm':
236
                    seclvdp = seclvdp
237
                elif length_unit == 'in':
238
                    for i in range(len(seclvdp)):
239
                        seclvdp[i] *= 0.0254
240
                elif length_unit == 'ft':
241
                    for i in range(len(seclvdp)):
242
                        seclvdp[i] /= 3.28084
243
                elif length_unit == 'yd':
244
                    for i in range(len(seclvdp)):
245
                        seclvdp[i] /= 1.09361
246
                elif length_unit == 'mile':
247
                    for i in range(len(seclvdp)):
248
                        seclvdp[i] /= 0.000621371
249
                elif length_unit == 'mm':
250
                    for i in range(len(seclvdp)):
251
                        seclvdp[i] /= 1000
252
            elif pressure_unit == 'kPa':
253
                for i in range(len(seclvdp)):
254
                    seclvdp[i] = seclvdp[i] / 1.033 * 101.325
255

  
256
                if length_unit == 'm':
257
                    seclvdp = seclvdp
258
                elif length_unit == 'in':
259
                    for i in range(len(seclvdp)):
260
                        seclvdp[i] *= 0.0254
261
                elif length_unit == 'ft':
262
                    for i in range(len(seclvdp)):
263
                        seclvdp[i] /= 3.28084
264
                elif length_unit == 'yd':
265
                    for i in range(len(seclvdp)):
266
                        seclvdp[i] /= 1.09361
267
                elif length_unit == 'mile':
268
                    for i in range(len(seclvdp)):
269
                        seclvdp[i] /= 0.000621371
270
                elif length_unit == 'mm':
271
                    for i in range(len(seclvdp)):
272
                        seclvdp[i] /= 1000
273
            elif pressure_unit == 'MPa':
274
                for i in range(len(seclvdp)):
275
                    seclvdp[i] = seclvdp[i] / 1.033 * 0.101325
276

  
277
                if length_unit == 'm':
278
                    seclvdp = seclvdp
279
                elif length_unit == 'in':
280
                    for i in range(len(seclvdp)):
281
                        seclvdp[i] *= 0.0254
282
                elif length_unit == 'ft':
283
                    for i in range(len(seclvdp)):
284
                        seclvdp[i] /= 3.28084
285
                elif length_unit == 'yd':
286
                    for i in range(len(seclvdp)):
287
                        seclvdp[i] /= 1.09361
288
                elif length_unit == 'mile':
289
                    for i in range(len(seclvdp)):
290
                        seclvdp[i] /= 0.000621371
291
                elif length_unit == 'mm':
292
                    for i in range(len(seclvdp)):
293
                        seclvdp[i] /= 1000
294

  
295
            # General Service
296
            self.ui.label_Pressure_1_Drop_Pressure.setText(str(round(seclvdp[0], 3)))
297
            self.ui.label_Pressure_2_Drop_Pressure.setText(str(round(seclvdp[3], 3)))
298
            self.ui.label_Pressure_3_Drop_Pressure.setText(str(round(seclvdp[5], 3)))
299
            self.ui.label_Pressure_4_Drop_Pressure.setText(str(round(seclvdp[7], 3)))
300
            self.ui.label_Air_Service_Drop_Pressure.setText(str(round(seclvdp[6], 3)))
301

  
302
            # Compressor LInes
303
            self.ui.label_Discharge_Drop_Pressure.setText(str(round(seclvdp[4], 3)))
304

  
305
            # Tower Overhead
306
            self.ui.label_Pressure_5_Drop_Pressure.setText(str(round(seclvdp[0], 3)))
307
            self.ui.label_Atm_Drop_Pressure.setText(str(round(seclvdp[2], 3)))
308
            self.ui.label_Pressure_6_Drop_Pressure.setText(str(round(seclvdp[2], 3)))
309

  
310
            # Stream Lines
311
            self.ui.label_Pressure_7_Drop_Pressure.setText(str(round(seclvdp[1], 3)))
312
            self.ui.label_Pressure_8_Drop_Pressure.setText(str(round(seclvdp[4], 3)))
313
            self.ui.label_Pressure_9_Drop_Pressure.setText(str(round(seclvdp[5], 3)))
314
            self.ui.label_High_Pressure_Steam_Drop_Pressure.setText(str(round(seclvdp[2], 3)))
315

  
316
            # Flare
317
            self.ui.label_Header_Drop_Pressure.setText(str(round(seclvdp[2], 3)))
318

  
319
            # 속도의 기준
320
            velocity_unit = self.units['Velocity']
321
            if velocity_unit == 'm/s':
322
                # General Service
323
                self.ui.label_Air_Service_Velocity.setText('18.3')
324

  
325
                # Compressor Lines
326
                self.ui.label_Suction_Reciprocating_Velocity.setText('12.2')
327
                self.ui.label_Suction_Centrifugal_Velocity.setText('24.4')
328
                self.ui.label_Discharge_Velocity.setText('13')
329

  
330
                # Tower Overhead
331
                self.ui.label_Pressure_5_Velocity.setText('61')
332
                self.ui.label_Atm_Velocity.setText('30.5')
333
                self.ui.label_Pressure_6_Velocity.setText('15.2')
334

  
335
                # Steam Lines
336
                self.ui.label_Pressure_7_Velocity.setText('50')
337
                self.ui.label_Pressure_8_Velocity.setText('40')
338
                self.ui.label_Pressure_9_Velocity.setText('30')
339
                self.ui.label_High_Pressure_Steam_Velocity.setText('20')
340

  
341
                # Flare
342
                self.ui.label_Branch_Velocity.setText('10.7')
343
            elif velocity_unit == 'ft/s':
344
                # General Service
345
                self.ui.label_Air_Service_Velocity.setText('60')
346

  
347
                # Compressor Lines
348
                self.ui.label_Suction_Reciprocating_Velocity.setText('40')
349
                self.ui.label_Suction_Centrifugal_Velocity.setText('80')
350
                self.ui.label_Discharge_Velocity.setText('42.6')
351

  
352
                # Tower Overhead
353
                self.ui.label_Pressure_5_Velocity.setText('200')
354
                self.ui.label_Atm_Velocity.setText('100')
355
                self.ui.label_Pressure_6_Velocity.setText('49.8')
356

  
357
                # Steam Lines
358
                self.ui.label_Pressure_7_Velocity.setText('164')
359
                self.ui.label_Pressure_8_Velocity.setText('131.2')
360
                self.ui.label_Pressure_9_Velocity.setText('98.4')
361
                self.ui.label_High_Pressure_Steam_Velocity.setText('65.6')
362

  
363
                # Flare
364
                self.ui.label_Branch_Velocity.setText('35.1')
365
        except Exception as ex:
366
            from App import App
367
            from AppDocData import MessageType
368

  
369
            message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename,
370
                                                           sys.exc_info()[-1].tb_lineno)
371
            App.mainWnd().addMessage.emit(MessageType.Error, message)
372

  
30 373
    def accept(self):
374
        if self.ui.radioButton_Pressure_1.isChecked():
375
            self.velocity = None
376
            self.drop_pressure = self.ui.label_Pressure_1_Drop_Pressure.text()
377
        elif self.ui.radioButton_Pressure_2.isChecked():
378
            self.velocity = None
379
            self.drop_pressure = self.ui.label_Pressure_2_Drop_Pressure.text()
380
        elif self.ui.radioButton_Pressure_3.isChecked():
381
            self.velocity = None
382
            self.drop_pressure = self.ui.label_Pressure_3_Drop_Pressure.text()
383
        elif self.ui.radioButton_Pressure_4.isChecked():
384
            self.velocity = None
385
            self.drop_pressure = self.ui.label_Pressure_4_Drop_Pressure.text()
386
        elif self.ui.radioButton_Air_Service.isChecked():
387
            self.velocity = self.ui.label_Air_Service_Velocity.text()
388
            self.drop_pressure = self.ui.label_Air_Service_Drop_Pressure.text()
389
        elif self.ui.radioButton_Suction_Reciprocating.isChecked():
390
            self.velocity = self.ui.label_Suction_Reciprocating_Velocity.text()
391
            self.drop_pressure = None
392
        elif self.ui.radioButton_Suction_Centrifugal.isChecked():
393
            self.velocity = self.ui.label_Suction_Centrifugal_Velocity.text()
394
            self.drop_pressure = None
395
        elif self.ui.radioButton_Discharge.isChecked():
396
            self.velocity = self.ui.label_Discharge_Velocity.text()
397
            self.drop_pressure = self.ui.label_Discharge_Drop_Pressure.text()
398
        elif self.ui.radioButton_Pressure_5.isChecked():
399
            self.velocity = self.ui.label_Pressure_5_Velocity.text()
400
            self.drop_pressure = self.ui.label_Pressure_5_Drop_Pressure.text()
401
        elif self.ui.radioButton_Atm.isChecked():
402
            self.velocity = self.ui.label_Atm_Velocity.text()
403
            self.drop_pressure = self.ui.label_Atm_Drop_Pressure.text()
404
        elif self.ui.radioButton_Pressure_6.isChecked():
405
            self.velocity = self.ui.label_Pressure_6_Velocity.text()
406
            self.drop_pressure = self.ui.label_Pressure_6_Drop_Pressure.text()
407
        elif self.ui.radioButton_Pressure_7.isChecked():
408
            self.velocity = self.ui.label_Pressure_7_Velocity.text()
409
            self.drop_pressure = self.ui.label_Pressure_7_Drop_Pressure.text()
410
        elif self.ui.radioButton_Pressure_8.isChecked():
411
            self.velocity = self.ui.label_Pressure_8_Velocity.text()
412
            self.drop_pressure = self.ui.label_Pressure_8_Drop_Pressure.text()
413
        elif self.ui.radioButton_Pressure_9.isChecked():
414
            self.velocity = self.ui.label_Pressure_9_Velocity.text()
415
            self.drop_pressure = self.ui.label_Pressure_9_Drop_Pressure.text()
416
        elif self.ui.radioButton_High_Pressure_Steam.isChecked():
417
            self.velocity = self.ui.label_High_Pressure_Steam_Velocity.text()
418
            self.drop_pressure = self.ui.label_High_Pressure_Steam_Drop_Pressure.text()
419
        elif self.ui.radioButton_Header.isChecked():
420
            self.velocity = None
421
            self.drop_pressure = self.ui.label_Header_Drop_Pressure.text()
422
        elif self.ui.radioButton_Branch.isChecked():
423
            self.velocity = self.ui.label_Branch_Velocity.text()
424
            self.drop_pressure = None
425

  
426
        if self.velocity is None and self.drop_pressure is None:
427
            self.isAccepted = False
428
        else:
429
            self.isAccepted = True
430

  
31 431
        QDialog.accept(self)
32 432

  
33 433
    def reject(self):

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)