프로젝트

일반

사용자정보

개정판 1430097d

ID1430097db75d731904667f45880faf5bbebf99bc
상위 7dd4c31a
하위 909db83f

백흠경이(가) 6년 이상 전에 추가함

display connectivity on result property window

차이점 보기:

DTI_PID/DTI_PID/DTI_PID.py
883 883
                pool.extend(rhs)
884 884
                visited.extend(rhs)
885 885
                for item in rhs:
886
                    item.arrangeLinePosition(line)
886
                    item.arrangeVertexOrder(line)
887 887
            
888 888
            # skip jointed symbols
889 889
            symbolPool = [item for item in symbols if item not in visited and item.isJointed(line)]
......
908 908
                        pool.extend(rhs)
909 909
                        visited.extend(rhs)
910 910
                        for item in rhs:
911
                            item.arrangePosition(line)
911
                            item.arrangeVertexOrder(line)
912 912
            # up to here
913 913
        # up to here
914 914
    except Exception as ex:
DTI_PID/DTI_PID/LineNoTracer.py
90 90
                    Jeongwoo 2018.05.17 Modify find secondary lines with 'while'
91 91
                                        Modify find secondary lines with 'while' used sublist for unconnected line
92 92
                    humkyung 2018.05.18 set start line's owner before tracing
93
                    humkyung 2018.07.05 update line type
93 94
    '''
94 95
    def execute(self, displayMessage, updateProgress, toler=50):
95 96
        from QEngineeringLineItem import QEngineeringLineItem
......
160 161
                            updateProgress.emit(maxValue)
161 162

  
162 163
                    docData.lineNos.append(trimLineNo)
163
            
164

  
164 165
            updateProgress.emit(maxValue)
165 166
        except Exception as ex:
166 167
            print('error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno))
DTI_PID/DTI_PID/MainWindow.py
746 746
                approx = cv2.approxPolyDP(contour, epsilon, True)
747 747
                approx = [pt[0] for pt in approx]
748 748
                item = QEngineeringUnknownItem(approx)
749
                item.setPen(QPen(Qt.red, 5, Qt.DashDotLine))
749
                item.setPen(QPen(Qt.red, 1, Qt.DashDotLine))
750
                item.setBrush(QBrush(QColor(255, 255, 0, 127)))
750 751
                item.transfer.removed.connect(self.itemRemoved)
751 752
                self.addUnknownItemToScene(item)
752 753
                # up to here
DTI_PID/DTI_PID/QConnectAttrDialog.py
145 145
        import timeit
146 146

  
147 147
        try:
148
            # add flow mark
149
            '''
150
            self.ui.listWidget.addItem("FlowMark 생성")
151
            docData = AppDocData.instance()
152
            for lineno in docData.lineNos:
153
                for run in lineno.runs:
154
                    run.addFlowMark()
155
            '''
148
            # update line type
149
            lines = [item for item in self.graphicsView.scene.items() if type(item) is QEngineeringLineItem]
150
            for line in lines:
151
                line.updateLineType()
156 152
            # up to here
157 153

  
158 154
            self.ui.progressBar.setValue(self.ui.progressBar.maximum())
DTI_PID/DTI_PID/QResultPropertyTableWidget.py
56 56
            pt = item.endPoint()
57 57
            self.setItem(2, 1, QTableWidgetItem('({},{})'.format(pt[0], pt[1])))
58 58

  
59
            self.setItem(3, 1, QTableWidgetItem('{}'.format('None' if item.conns[0] is None else item.conns[0])))
60
            self.setItem(4, 1, QTableWidgetItem('{}'.format('None' if item.conns[1] is None else item.conns[1])))
61

  
59 62
    '''
60 63
        @brief      Initialize TableWidget
61 64
        @author     Jeongwoo
......
146 149

  
147 150
        try:
148 151
            if issubclass(type(item), SymbolSvgItem) or type(item) is SymbolSvgItem:
152
                self.setRowCount(3)
153

  
149 154
                widgetItem = QTableWidgetItem("심볼명")
150
                widgetItem.setFlags(Qt.ItemIsEnabled)
151 155
                self.setItem(0, 0, widgetItem)
152 156
                widgetItem = QTableWidgetItem("타입")
153
                widgetItem.setFlags(Qt.ItemIsEnabled)
154 157
                self.setItem(1, 0, widgetItem)
155 158
                widgetItem = QTableWidgetItem("각도")
156
                widgetItem.setFlags(Qt.ItemIsEnabled)
157 159
                self.setItem(2, 0, widgetItem)
158 160
            elif type(item) is QEngineeringNoteItem:
161
                self.setRowCount(1)
162

  
159 163
                widgetItem = QTableWidgetItem("노트번호")
160
                widgetItem.setFlags(Qt.ItemIsEnabled)
161 164
                self.setItem(0, 0, widgetItem)
162
                widgetItem = QTableWidgetItem("노트내용")
163
                widgetItem.setFlags(Qt.ItemIsEnabled)
164
                self.setItem(1, 0, widgetItem)
165 165
            elif type(item) is QEngineeringLineNoTextItem:
166 166
                '''
167 167
                DO NOTHING / initLineNoCell
168 168
                '''
169 169
            elif type(item) is QEngineeringLineItem:
170
                self.setRowCount(5)
171

  
170 172
                widgetItem = QTableWidgetItem("타입")
171
                widgetItem.setFlags(Qt.ItemIsEnabled)
172 173
                self.setItem(0, 0, widgetItem)
173 174
                widgetItem = QTableWidgetItem("시작점")
174
                widgetItem.setFlags(Qt.ItemIsEnabled)
175 175
                self.setItem(1, 0, widgetItem)
176 176
                widgetItem = QTableWidgetItem("끝점")
177
                widgetItem.setFlags(Qt.ItemIsEnabled)
178 177
                self.setItem(2, 0, widgetItem)
178
                widgetItem = QTableWidgetItem("CONN1")
179
                self.setItem(3, 0, widgetItem)
180
                widgetItem = QTableWidgetItem("CONN2")
181
                self.setItem(4, 0, widgetItem)
179 182

  
180 183
            for index in range(self.rowCount()):
181 184
                item = self.item(index, 0)
182 185
                if item is not None:
186
                    item.setFlags(Qt.ItemIsEnabled)
183 187
                    item.setBackground(QColor(220, 220, 220))
184 188
        except Exception as ex:
185 189
            print('error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno))
......
189 193
        @author     Jeongwoo
190 194
        @date       18.04.13
191 195
        @history    humkyung 2018.06.14 display symbol attributes 
196
                    humkyung 2018.07.05 display connectivity
192 197
    '''
193 198
    def initContentsCell(self):
194 199
        from QEngineeringInstrumentItem import QEngineeringInstrumentItem
195 200

  
196 201
        if self.symData is not None:
202
            self.setRowCount(3 + len(self.symData.getAttributes()) + len(self.symData.conns))
203

  
197 204
            self.setItem(0, 1, QTableWidgetItem(self.symData.name))
198 205
            self.setItem(1, 1, QTableWidgetItem(self.symData.type))
199 206
            self.setItem(2, 1, QTableWidgetItem(str(round(math.degrees(self.symData.angle)))))
200 207

  
208
            row = 3
201 209
            # display attributes of symbol
202 210
            attrs = self.symData.getAttributes()
203 211
            if attrs is not None:
......
207 215
                    value = attrItems[index][1]
208 216
                    keyItem = QTableWidgetItem(key)
209 217
                    keyItem.setBackground(QColor(220, 220, 220))
210
                    self.setItem(1 + index, 0, keyItem)
211
                    self.setItem(1 + index, 1, QTableWidgetItem(value))
218
                    self.setItem(3 + index, 0, keyItem)
219
                    self.setItem(3 + index, 1, QTableWidgetItem(value))
220
                    row = row + 1
221
            # up to here
222

  
223
            # display connectivity
224
            count = 1
225
            self.setRowCount(row + len(self.symData.conns))
226
            for conn in self.symData.conns:
227
                item = QTableWidgetItem('CONN{}'.format(count))
228
                item.setFlags(Qt.ItemIsEnabled)
229
                item.setBackground(QColor(220, 220, 220))
230
                self.setItem(row, 0, item)
231

  
232
                item = QTableWidgetItem('{}'.format('None' if conn is None else conn))
233
                item.setFlags(Qt.ItemIsEnabled)
234
                self.setItem(row, 1, item)
235
                row = row + 1
236
                count = count + 1
212 237
            # up to here
213 238
        else:
214
            for index in range(self.rowCount()):
215
                item = self.item(index, 1)
216
                if item is not None:
217
                    item.setText("")
239
            self.setRowCount(0)
218 240

  
219 241
    '''
220 242
        @brief      Initialize Note Contents Cell
......
223 245
    '''
224 246
    def initNoteCell(self, noteNoStr, noteContentsList):
225 247
        self.setItem(0, 1, QTableWidgetItem(noteNoStr))
248
        
249
        row = self.rowCount()
250
        count = 1
251
        self.setRowCount(row + len(noteContentsList))
226 252
        for index in range(len(noteContentsList)):
227
            self.setItem(1+index, 1, QTableWidgetItem(noteContentsList[index]))
253
            item = QTableWidgetItem("노트내용{}".format(count))
254
            item.setFlags(Qt.ItemIsEnabled)
255
            self.setItem(row, 0, item)
256
            self.setItem(row, 1, QTableWidgetItem(noteContentsList[index]))
257
            row = row + 1
258
            count = count + 1
228 259

  
229 260
    '''
230 261
        @brief      Initialize Line No Contents Cell
......
232 263
        @date       18.05.10
233 264
    '''
234 265
    def initLineNoCell(self, lineNoItem):
266
        self.setRowCount(1 + len(lineNoItem.getLineNoAttributes()))
267

  
235 268
        lineNoTitleItem = QTableWidgetItem("Line No.")
236 269
        lineNoTitleItem.setBackground(QColor(220, 220, 220))
270
        lineNoTitleItem.setFlags(Qt.ItemIsEnabled)
237 271
        self.setItem(0, 0, lineNoTitleItem)
238 272
        self.setItem(0, 1, QTableWidgetItem(lineNoItem.text()))
273

  
239 274
        attrs = lineNoItem.getLineNoAttributes()
240 275
        if attrs is not None:
241 276
            attrItems = list(attrs.items())
......
243 278
                key = attrItems[index][0]
244 279
                value = attrItems[index][1]
245 280
                keyItem = QTableWidgetItem(key)
281
                keyItem.setFlags(Qt.ItemIsEnabled)
246 282
                keyItem.setBackground(QColor(220, 220, 220))
247 283
                self.setItem(1 + index, 0, keyItem)
248 284
                self.setItem(1 + index, 1, QTableWidgetItem(value))
......
253 289
        @date       2018.05.27
254 290
    '''
255 291
    def initLineRunCell(self, item):
256
        lineTypeItem = QTableWidgetItem("Line Type")
292
        self.setRowCount(1)
293

  
294
        lineTypeItem = QTableWidgetItem("라인 타입")
257 295
        lineTypeItem.setBackground(QColor(220, 220, 220))
296
        lineTypeItem.setFlags(Qt.ItemIsEnabled)
258 297
        self.setItem(0, 0, lineTypeItem)
259 298
        self.setItem(0, 1, QTableWidgetItem(item.lineType))
DTI_PID/DTI_PID/Shapes/QEngineeringInstrumentItem.py
22 22

  
23 23
        SymbolSvgItem.__init__(self, path)
24 24

  
25
        self._measuredVairableCode = None
26
        self._typeModifier = None
27
        self._tagSeqNo = None
28
        self._tagSuffix = None
29

  
25 30
    '''
26 31
        @brief  getter of measured variable code
27 32
        @author humkyung
DTI_PID/DTI_PID/Shapes/QEngineeringLineItem.py
336 336
        return False
337 337

  
338 338
    '''
339
        @brief      arrange position
339
        @brief      arrange vertex order
340 340
        @author     humkyung
341 341
        @date       2018.07.04
342 342
    '''
343
    def arrangePosition(self, arranged):
343
    def arrangeVertexOrder(self, arranged):
344 344
        import math
345 345

  
346 346
        lhs = [arranged.startPoint(), arranged.endPoint()]
......
689 689
            self.buildItem()
690 690
            self.update()
691 691

  
692
    '''
693
        @brief  update line type
694
        @author humkyung
695
        @date   2018.07.05
696
    '''
697
    def updateLineType(self):
698
        from QEngineeringInstrumentItem import QEngineeringInstrumentItem
699

  
700
        if len(self.conns) == 2:
701
            lines = [item for item in self.conns if item is not None and type(item) is QEngineeringLineItem]
702
            insts = [item for item in self.conns if item is not None and type(item) is QEngineeringInstrumentItem]
703

  
704
            if (len(lines) == 1 and len(insts) == 1) or (len(lines) == 0 and len(insts) == 1):
705
                instType = insts[0].measuredVariableCode + insts[0].typeModifier
706
                if instType in ['FT', 'PT', 'TT']:
707
                    self.lineType = 'Connect To Process'
708
            elif len(insts) == 2:
709
                self.lineType = 'Electric'
710

  
692 711
    def hoverEnterEvent(self, event):
693 712
        pass
694 713

  

내보내기 Unified diff

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