프로젝트

일반

사용자정보

개정판 9d800141

ID9d80014179ff30d9632d03379f843b748c098951
상위 3e7012a0
하위 38eca06a

함의성이(가) 12달 전에 추가함

scale test

Change-Id: I71ed73bf07bbf43bdbecc4320997f1684e81f1ad

차이점 보기:

DTI_PID/DTI_PID/Commands/CreateSymbolCommand.py
24 24

  
25 25

  
26 26
class CreateSymbolCommand(AbstractCommand.AbstractCommand):
27
    """ no more used """
27 28
    '''@history    2018.05.04  Jeongwoo    Add Parameter'''
28 29

  
29 30
    def __init__(self, imageViewer, resultTreeWidget, dirTreeWidget):
DTI_PID/DTI_PID/ItemPropertyTableWidget.py
706 706

  
707 707
        try:
708 708
            if self._item is not None and issubclass(type(self._item), SymbolSvgItem):
709
                scaleX = round(self._item.transform().m11() * 100)
710
                scaleY = round(self._item.transform().m22() * 100)
711
                scale = str(scaleX / 100.0) + ',' + str(scaleY / 100.0)
712

  
709 713
                self.setItem(0, 3, QTableWidgetItem(str(self._item.uid)))
710 714
                self.setItem(1, 3, QTableWidgetItem(self._item.name))
711 715
                self.setItem(2, 3, QTableWidgetItem(self._item.type))
712
                self.setItem(3, 3, QTableWidgetItem(str(round(self._item.scale(), 2))))
716
                self.setItem(3, 3, QTableWidgetItem(scale))
713 717
                self.setItem(4, 3, QTableWidgetItem(str(round(self._item.rotation()))))
714 718
                self.setItem(5, 3, QTableWidgetItem(str(self._item.origin)))
715 719
                self.setItem(6, 3, QTableWidgetItem('Yes' if self._item.flip == 1 else 'No'))
DTI_PID/DTI_PID/MainWindow.py
12 12
from CreateCommand import CreateCommand
13 13
import CropCommand
14 14
import AreaOcrCommand
15
import CreateSymbolCommand
15
#import CreateSymbolCommand
16 16
import AreaZoomCommand
17 17
import FenceCommand
18 18
import PlaceLineCommand
......
2004 2004
        @history    2018.05.04  Jeongwoo    Add Parameter on CreateSymbolCommand
2005 2005
    '''
2006 2006
    def createEquipment(self):
2007
        """ no more used """
2007 2008
        if not self.graphicsView.hasImage():
2008 2009
            self.actionEquipment.setChecked(False)
2009 2010
            self.showImageSelectionMessageBox()
......
2021 2022
        @history    2018.05.04  Jeongwoo    Add Parameter on CreateSymbolCommand
2022 2023
    '''
2023 2024
    def createNozzle(self):
2025
        """ no more used """
2024 2026
        if not self.graphicsView.hasImage():
2025 2027
            self.actionNozzle.setChecked(False)
2026 2028
            self.showImageSelectionMessageBox()
DTI_PID/DTI_PID/QtImageViewerScene.py
233 233
                        for symbol in root.find('SYMBOLS').iter('SYMBOL'):
234 234
                            item = SymbolSvgItem.fromXml(symbol)
235 235
                            svg = QtImageViewer.createSymbolObject(item.name)
236
                            svg.setScale(item.scale())
236
                            #svg.setScale(item.scale())
237
                            transform = QTransform().translate(item.symbolOrigin[0], item.symbolOrigin[1])
238
                            transform.scale(item.transform().m11(), item.transform().m22())
239
                            transform.translate(-item.symbolOrigin[0], -item.symbolOrigin[1])
240
                            svg.setTransform(transform)
237 241
                            if not delta and not fixedPosition:
238 242
                                delta = origin - QPointF(item.origin[0], item.origin[1])
239 243
                                delta2 = dxdy - QPointF(item.origin[0], item.origin[1])
DTI_PID/DTI_PID/Shapes/SymbolSvgItem.py
583 583
        """ convert Components data to sql query """
584 584
        from AppDocData import AppDocData
585 585

  
586
        scaleX = round(self.transform().m11() * 100)
587
        scaleY = round(self.transform().m22() * 100)
588
        scale = str(scaleX / 100.0) + ',' + str(scaleY / 100.0)
589

  
586 590
        cols = ['UID', 'Drawings_UID', 'Symbol_UID', 'X', 'Y', 'Width', 'Height', 'Rotation', 'Area', 'Owner',
587 591
                'Connected', '[Supplied By]', \
588 592
                'SpecialItemTypes_UID', 'OriginIndex', '[From]', '[To]', '[Freeze]', '[Connected Item]', '[Flip]',
......
598 602
                  self.currentPointModeIndex, \
599 603
                  None, None, self.prop('Freeze') if self.prop('Freeze') else 0,
600 604
                  str(self.prop('Connected Item')) if self.prop('Connected Item') else None,
601
                  self.flip, '{},{}'.format(origin.x(), origin.y()), str(self.scale()))]
605
                  self.flip, '{},{}'.format(origin.x(), origin.y()), scale)]
602 606
        sql = 'insert into Components({}) values({})'.format(','.join(cols), ','.join(values))
603 607

  
604 608
        return (sql, tuple(param))
......
705 709
        '''
706 710

  
707 711
    def buildItem(self, name, _type, angle: float, loc, size, origin, connPts, parentSymbol, childSymbol, hasInstrumentLabel,
708
                  dbUid=None, scale=1.0):
712
                  dbUid=None, scale=[1.0, 1.0]):
709 713
        """
710 714
        build symbol item
711 715
        :param name:
......
746 750
            if convertOriginalPoint:
747 751
                convertOriginalPoint = convertOriginalPoint.split(',')
748 752
                self.symbolConvertingOrigin = [float(convertOriginalPoint[0]), float(convertOriginalPoint[1])]
749
            self.setScale(scale)
753
            #self.setScale(scale)
754
            #'''
755
            transform = QTransform().translate(self.symbolOrigin[0], self.symbolOrigin[1])
756
            transform.scale(scale[0], scale[1])
757
            transform.translate(-self.symbolOrigin[0], -self.symbolOrigin[1])
758
            self.setTransform(transform)
759
            #'''
750 760

  
751 761
            # setting connectors
752 762
            connectionPoints = symbolInfo.getConnectionPoint().split('/')
......
1110 1120
                    self.rotate(self._angle)
1111 1121

  
1112 1122
        if hasattr(self, '_scale'):
1123
            pass
1124
            '''
1113 1125
            dx = event.scenePos().x() - self._scale_x
1114 1126
            step = 8
1115 1127
            quotient = int(dx / step)
1116 1128
            scale = 0.1 * quotient
1117 1129

  
1118 1130
            self.setScale(self._scale + scale if self._scale + scale > 0.3 else 0.3)
1131
            '''
1119 1132

  
1120 1133
        super().mouseMoveEvent(event)
1121 1134

  
......
1237 1250
        from EngineeringEndBreakItem import QEngineeringEndBreakItem
1238 1251
        from RotateCommand import RotateCommand
1239 1252

  
1253
        modifiers = QApplication.keyboardModifiers()
1254

  
1240 1255
        if not self.isSelected():
1241 1256
            return
1242 1257
        elif event.key() == Qt.Key_A:
1243 1258
            self.contextSelectAll()
1244 1259
        elif event.key() == Qt.Key_N:
1245
            modifiers = QApplication.keyboardModifiers()
1246 1260
            delta = 40 if modifiers == Qt.ControlModifier else 10
1247 1261
            self.move_near_main_line(delta)
1248 1262
        elif event.key() == Qt.Key_B:
......
1272 1286
                self.rotate(math.radians(self._rotating))
1273 1287
                del self._rotating
1274 1288
            if hasattr(self, '_scale'):
1289
                pass
1290
                '''
1275 1291
                self.ungrabMouse()
1276 1292

  
1277 1293
                self.setScale(self._scale)
1278 1294
                del self._scale
1279 1295
                del self._scale_x
1296
                '''
1280 1297
        elif event.key() == Qt.Key_Up:  # translate up/down/left/right symbol
1281
            modifiers = QApplication.keyboardModifiers()
1282 1298
            delta = 10 if modifiers == Qt.ControlModifier else 1
1283 1299

  
1284 1300
            #self.loc[1] = self.loc[1] - delta
1285 1301
            #self.origin[1] = self.origin[1] - delta
1286 1302
            self.moveBy(0, -delta)
1287 1303
        elif event.key() == Qt.Key_Down:
1288
            modifiers = QApplication.keyboardModifiers()
1289 1304
            delta = 10 if modifiers == Qt.ControlModifier else 1
1290 1305

  
1291 1306
            #self.loc[1] = self.loc[1] + delta
1292 1307
            #self.origin[1] = self.origin[1] + delta
1293 1308
            self.moveBy(0, delta)
1294 1309
        elif event.key() == Qt.Key_Left:
1295
            modifiers = QApplication.keyboardModifiers()
1296 1310
            delta = 10 if modifiers == Qt.ControlModifier else 1
1297 1311

  
1298 1312
            #self.loc[0] = self.loc[0] - delta
1299 1313
            #self.origin[0] = self.origin[0] - delta
1300 1314
            self.moveBy(-delta, 0)
1301 1315
        elif event.key() == Qt.Key_Right:
1302
            modifiers = QApplication.keyboardModifiers()
1303 1316
            delta = 10 if modifiers == Qt.ControlModifier else 1
1304 1317

  
1305 1318
            #self.loc[0] = self.loc[0] + delta
1306 1319
            #self.origin[0] = self.origin[0] + delta
1307 1320
            self.moveBy(delta, 0)
1308 1321
        elif event.key() == Qt.Key_Plus or event.key() == 61:
1309
            self.setScale(self.scale() + 0.1)
1310
            '''
1311
            transform = QTransform()
1312
            transform.scale(self.transform().m11() + 0.1, 1.0)
1313
            #transform.translate(-2 * self.symbolOrigin[0], 0)
1314

  
1322
            #self.setScale(self.scale() + 0.1)
1323
            #'''
1324
            transform = QTransform().translate(self.symbolOrigin[0], self.symbolOrigin[1])
1325
            if modifiers == Qt.ControlModifier:
1326
                transform.scale(self.transform().m11() + 0.1, self.transform().m22())
1327
            elif modifiers == Qt.AltModifier:
1328
                transform.scale(self.transform().m11(), self.transform().m22() + 0.1)
1329
            else:
1330
                transform.scale(self.transform().m11() + 0.1, self.transform().m22() + 0.1)
1331
            transform.translate(-self.symbolOrigin[0], -self.symbolOrigin[1])
1315 1332
            self.setTransform(transform)
1316
            '''
1333
            #'''
1317 1334
        elif event.key() == Qt.Key_Minus:
1318
            self.setScale(self.scale() - 0.1 if self.scale() - 0.1 > 0.3 else 0.3)
1335
            #self.setScale(self.scale() - 0.1 if self.scale() - 0.1 > 0.3 else 0.3)
1336
            #'''
1337
            transform = QTransform().translate(self.symbolOrigin[0], self.symbolOrigin[1])
1338
            if modifiers == Qt.ControlModifier:
1339
                transform.scale(self.transform().m11() - 0.1 if self.transform().m11() - 0.1 > 0.3 else 0.3, self.transform().m22())
1340
            elif modifiers == Qt.AltModifier:
1341
                transform.scale(self.transform().m11(), self.transform().m22() - 0.1 if self.transform().m22() - 0.1 > 0.3 else 0.3)
1342
            else:
1343
                transform.scale(self.transform().m11() - 0.1 if self.transform().m11() - 0.1 > 0.3 else 0.3, self.transform().m22() - 0.1 if self.transform().m22() - 0.1 > 0.3 else 0.3)
1344
            transform.translate(-self.symbolOrigin[0], -self.symbolOrigin[1])
1345
            self.setTransform(transform)
1346
            #'''
1319 1347
        elif event.key() == Qt.Key_I or event.key() == Qt.Key_J or event.key() == Qt.Key_Q or event.key() == Qt.Key_Insert or event.key() == Qt.Key_M: #or event.key() == Qt.Key_X 
1320 1348
            from App import App 
1321 1349

  
......
1911 1939
            node.append(angleNode)
1912 1940

  
1913 1941
            scaleNode = Element('SCALE')
1914
            scaleNode.text = str(round(self.scale(), 2))
1942
            scaleX = round(self.transform().m11() * 100)
1943
            scaleY = round(self.transform().m22() * 100)
1944
            scaleNode.text = str(scaleX / 100.0) + ',' + str(scaleY / 100.0)
1945
            #scaleNode.text = str(round(self.scale(), 2))
1915 1946
            node.append(scaleNode)
1916 1947

  
1917 1948
            parentSymbolNode = Element('PARENT')
......
2001 2032
            name = dbData.sName
2002 2033
            _type = dbData.sType
2003 2034
            angle = float(component['Rotation'])
2004
            scale = float(component['Value']) if component['Value'] else 1.0
2035
            scale = [1.0, 1.0]
2036
            if component['Value']:
2037
                if ',' in component['Value']:
2038
                    scale = [float(component['Value'].split(',')[0]), float(component['Value'].split(',')[1])]
2039
                else:
2040
                    scale = [float(component['Value']), float(component['Value'])]
2005 2041

  
2006 2042
            origin = [float(x) for x in component['SceneOriginPoint'].split(',')] if component['SceneOriginPoint'] is not None else pt
2007 2043
            if grid == 1:
......
2205 2241
            hit_ratio = float(ratioNode.text) if ratioNode is not None else None
2206 2242

  
2207 2243
            scaleNode = node.find('SCALE')
2208
            scale = float(scaleNode.text) if scaleNode is not None else 1.0
2244
            scale = [1.0, 1.0]
2245
            if scaleNode is not None and scaleNode.text:
2246
                if ',' in scaleNode.text:
2247
                    scale = [float(scaleNode.text.split(',')[0]), float(scaleNode.text.split(',')[1])]
2248
                else:
2249
                    scale = [float(scaleNode.text), float(scaleNode.text)]
2209 2250

  
2210 2251
            project = appDocData.getCurrentProject()
2211 2252
            svgFilePath = os.path.join(project.getSvgFilePath(), _type, name + '.svg')
......
2688 2729
        """rotate symbol by given angle in radian"""
2689 2730
        import math
2690 2731
        self.setRotation(math.degrees(angle))
2732
        '''
2733
        transform = QTransform().translate(self.symbolOrigin[0], self.symbolOrigin[1])
2734
        transform.rotate(math.degrees(angle))
2735
        transform.translate(-self.symbolOrigin[0], -self.symbolOrigin[1])
2736
        self.setTransform(transform)
2737
        '''
2691 2738

  
2692 2739
    '''
2693 2740
        @brief      change Conn point 

내보내기 Unified diff

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