프로젝트

일반

사용자정보

개정판 4355c442

ID4355c44213c7164e1c3ce15477ba7e24718e970c
상위 df64816c
하위 41bbb7f8, dfdbba83

함의성이(가) 약 4년 전에 추가함

issue #000: auto cal

Change-Id: I37ebcbcfdbfe06e9bfac81c2e1a2be77b703e650

차이점 보기:

DTI_PID/DTI_PID/ImportTextFromCADDialog.py
194 194
        self.on_load_symbol_mapping()
195 195

  
196 196
        app_doc_data = AppDocData.instance()
197
        self.drawing_height = app_doc_data.activeDrawing.image.shape[1]
197 198

  
198 199
        configs = app_doc_data.getConfigs('Cad Offset', 'X')
199 200
        self.ui.spinBoxX.setValue(int(configs[0].value)) if 1 == len(configs) else \
......
229 230
            QMessageBox.information(self, self.tr('Information'), self.tr('There is no selected file(s)'))
230 231
            return
231 232

  
232
        find_text = self.ui.lineEdit.text()
233
        # find ID2 Text Item
234
        find_text_1 = self.ui.lineEdit.text()
235
        find_text_2 = self.ui.lineEdit_2.text()
233 236

  
234
        matches = [item for item in App.mainWnd().graphicsView.items() if issubclass(type(item), QEngineeringTextItem) and item.text() == find_text]
235
        if not matches:
237
        matches_1 = [item for item in App.mainWnd().graphicsView.items() if issubclass(type(item), QEngineeringTextItem) and item.text() == find_text_1]
238
        matches_2 = [item for item in App.mainWnd().graphicsView.items() if issubclass(type(item), QEngineeringTextItem) and item.text() == find_text_2]
239
        if not matches_1 or not matches_2:
236 240
            return
237 241
        
238
        text_item = matches[0]
239
        text_loc = text_item.loc
242
        text_item_1 = matches_1[0]
243
        text_loc_1 = text_item_1.loc
244
        text_item_2 = matches_2[0]
245
        text_loc_2 = text_item_2.loc
246

  
247
        cad_item_loc_1 = None
248
        cad_item_loc_2 = None
249
        # up to here
240 250

  
241 251
        app_doc_data = AppDocData.instance()
242 252
        project = app_doc_data.getCurrentProject()
......
245 255
        id2_xml_files = [f for f in os.listdir(temp_path) if os.path.isfile(os.path.join(temp_path, f)) and
246 256
                         (os.path.splitext(f)[1].upper() == '.XML')]
247 257

  
258
        _file = self._dwgs[0]
259
        file_name = os.path.splitext(os.path.basename(_file))[0]
260
        autocad_xml_path = os.path.join(os.path.dirname(_file), os.path.splitext(os.path.basename(_file))[0] + '.xml')
261
        matches = [id2_xml_file for id2_xml_file in id2_xml_files if id2_xml_file.replace(file_name, '').upper() == '.XML']
262

  
263
        id2_xml_path = os.path.join(temp_path, matches[0])
264
        id2_xml = parse(id2_xml_path)
265
        id2_xml_root = id2_xml.getroot()
266

  
248 267
        size_area = app_doc_data.getArea('Size')
249 268
        if size_area:
250 269
            id2_bbox = [size_area.x, size_area.y, size_area.width, size_area.height]
......
253 272
                        int(id2_xml_root.find('SIZE').text.split(',')[0]),
254 273
                        int(id2_xml_root.find('SIZE').text.split(',')[1])]
255 274

  
256
        _file = self._dwgs[0]
257
        file_name = os.path.splitext(os.path.basename(_file))[0]
258
        autocad_xml_path = os.path.join(os.path.dirname(_file), os.path.splitext(os.path.basename(_file))[0] + '.xml')
259
        matches = [id2_xml_file for id2_xml_file in id2_xml_files if id2_xml_file.replace(file_name, '').upper() == '.XML']
260 275
        if matches:
261 276
            try:
262 277
                autocad_xml = parse(autocad_xml_path)
263 278
                autocad_xml_root = autocad_xml.getroot()
264

  
265
                id2_xml_path = os.path.join(temp_path, matches[0])
266
                id2_xml = parse(id2_xml_path)
267
                id2_xml_root = id2_xml.getroot()
268 279
                
269
                find = False
270
                x_offset = None
271
                y_offset = None
280
                find_1 = False
281
                find_2 = False
272 282
                for blk_tbl_record in autocad_xml_root.iter('AcDbBlockTableRecord'):
273
                    if find:
283
                    if find_1 and find_2:
274 284
                        break
275 285

  
276 286
                    if blk_tbl_record.attrib['Name'].upper() != '*Model_Space'.upper():
......
283 293
                    autocad_bbox = [min_values[0], min_values[1],
284 294
                                    max_values[0] - min_values[0], max_values[1] - min_values[1]]
285 295
                    for text_node in blk_tbl_record.iter('AcDbText'):
286
                        if find_text != text_node.text:
296
                        if find_text_1 != text_node.text and find_text_2 != text_node.text:
287 297
                            continue
288

  
289
                        scale = max([id2_bbox[2] / autocad_bbox[2], id2_bbox[3] / autocad_bbox[3]])
290
                        offsets = [id2_bbox[0] - autocad_bbox[0] * scale, (id2_bbox[1] + id2_bbox[3]) - autocad_bbox[1] * scale]
291

  
292
                        loc = [float(text_node.attrib['X']) * scale + offsets[0], -float(text_node.attrib['Y']) * scale + offsets[1]]
293
                        _height = round(float(text_node.attrib['Height'])) * scale
294
                        loc[1] -= _height
295
                        
296
                        x_offset = text_loc[0] - loc[0]
297
                        y_offset = text_loc[1] - loc[1]
298
                        find = True
299
                        break
300

  
301
                    if not find:
298
                        elif find_text_1 == text_node.text:
299
                            x = float(text_node.attrib['X'])
300
                            y = float(text_node.attrib['Y'])
301
                            h = float(text_node.attrib['Height'])
302
                            cad_item_loc_1 = [x, y, h]
303
                            find_1 = True
304
                        elif find_text_2 == text_node.text:
305
                            x = float(text_node.attrib['X'])
306
                            y = float(text_node.attrib['Y'])
307
                            h = float(text_node.attrib['Height'])
308
                            cad_item_loc_2 = [x, y, h]
309
                            find_2 = True
310

  
311
                    if not find_1 or not find_2:
302 312
                        for blk_ref in blk_tbl_record.iter('AcDbBlockReference'):
303
                            if find:
313
                            if find_1 and find_2:
304 314
                                break
315

  
305 316
                            for text_node in blk_ref.iter('AcDbAttribute'):
306
                                if find_text != text_node.text:
317
                                if find_text_1 != text_node.text and find_text_2 != text_node.text:
307 318
                                    continue
308

  
309
                                scale = max([id2_bbox[2] / autocad_bbox[2], id2_bbox[3] / autocad_bbox[3]])
310
                                offsets = [id2_bbox[0] - autocad_bbox[0] * scale, (id2_bbox[1] + id2_bbox[3]) - autocad_bbox[1] * scale]
311

  
312
                                loc = [float(text_node.attrib['X']) * scale + offsets[0], -float(text_node.attrib['Y']) * scale + offsets[1]]
313
                                _height = round(float(text_node.attrib['Height'])) * scale
314
                                loc[1] -= _height
315
                                
316
                                x_offset = text_loc[0] - loc[0]
317
                                y_offset = text_loc[1] - loc[1]
318
                                find = True
319
                                break
319
                                elif find_text_1 == text_node.text:
320
                                    x = float(text_node.attrib['X'])
321
                                    y = float(text_node.attrib['Y'])
322
                                    h = float(text_node.attrib['Height'])
323
                                    cad_item_loc_1 = [x, y, h]
324
                                    find_1 = True
325
                                elif find_text_2 == text_node.text:
326
                                    x = float(text_node.attrib['X'])
327
                                    y = float(text_node.attrib['Y'])
328
                                    h = float(text_node.attrib['Height'])
329
                                    cad_item_loc_2 = [x, y, h]
330
                                    find_2 = True
320 331
                    
321
                if find:
322
                    self.ui.spinBoxTextX.setValue(x_offset)
323
                    self.ui.spinBoxX.setValue(x_offset)
324
                    self.ui.spinBoxTextY.setValue(y_offset)
325
                    self.ui.spinBoxY.setValue(y_offset)
332
                if find_1 and find_2:
333
                    dx_1 = abs(text_loc_1[0] - text_loc_2[0])
334
                    dx_2 = abs(cad_item_loc_1[0] - cad_item_loc_2[0])
335
                    scale_x = dx_1 / dx_2
336

  
337
                    dy_1 = abs(text_loc_1[1] - text_loc_2[1])
338
                    dy_2 = abs(cad_item_loc_1[1] - cad_item_loc_2[1])
339
                    scale_y = dy_1 / dy_2
340

  
341
                    offset_x = text_loc_1[0] - cad_item_loc_1[0] * scale_x
342
                    drawing_height = int(id2_xml_root.find('SIZE').text.split(',')[1])
343
                    offset_y = text_loc_1[1] - (drawing_height - cad_item_loc_1[1] * scale_y)
344

  
345
                    self.ui.spinBoxTextX.setValue(offset_x)
346
                    self.ui.spinBoxX.setValue(offset_x)
347
                    self.ui.spinBoxTextY.setValue(offset_y)
348
                    self.ui.spinBoxY.setValue(offset_y)
349
                    self.ui.doubleSpinBox.setValue(scale_x)
350
                    self.ui.doubleSpinBox_2.setValue(scale_y)
326 351

  
327 352
            except Exception as ex:
328 353
                from App import App
......
745 770
        import uuid
746 771
        from SymbolSvgItem import SymbolSvgItem
747 772

  
748
        def convert_to_image_coords(pt, scale: float, offset: list):
773
        def convert_to_image_coords(pt, scale: list, offset: list):
749 774
            """convert autocad coordinates to image coordinates"""
750
            return [pt[0] * scale + offset[0], -pt[1] * scale + offset[1]]
775
            return [pt[0] * scale[0] + offset[0], -pt[1] * scale[1] + offset[1]]
751 776

  
752 777
        try:
753
            scale = max([id2_bbox[2] / autocad_bbox[2], id2_bbox[3] / autocad_bbox[3]])
754
            offsets = [id2_bbox[0] - autocad_bbox[0] * scale, (id2_bbox[1] + id2_bbox[3]) - autocad_bbox[1] * scale]
778
            scale_x = max([id2_bbox[2] / autocad_bbox[2], id2_bbox[3] / autocad_bbox[3]]) if self.ui.doubleSpinBox.value() < 1 else self.ui.doubleSpinBox.value()
779
            scale_y = max([id2_bbox[2] / autocad_bbox[2], id2_bbox[3] / autocad_bbox[3]]) if self.ui.doubleSpinBox_2.value() < 1 else self.ui.doubleSpinBox_2.value()
780
            #offsets = [id2_bbox[0] - autocad_bbox[0] * scale_x, (id2_bbox[1] + id2_bbox[3]) - autocad_bbox[1] * scale_y]
781
            offsets = [self.ui.spinBoxTextX.value(), self.drawing_height + self.ui.spinBoxTextY.value()]
755 782

  
756 783
            name = blk_ref_node.attrib['Name']
757 784
            origin = convert_to_image_coords((float(blk_ref_node.attrib['X']), float(blk_ref_node.attrib['Y'])),
758
                                             scale, offsets)
785
                                             [scale_x, scale_y], offsets)
759 786
            angle = round(float(blk_ref_node.attrib['Angle']), 2)
760 787

  
761 788
            """check if maxtents or minextents attribute exists"""
......
765 792
            min_extents, max_extents = None, None
766 793
            tokens = blk_ref_node.attrib['MaxExtents'].strip('()').split(',')
767 794
            if 3 == len(tokens):
768
                max_extents = convert_to_image_coords((float(tokens[0]), float(tokens[1])), scale, offsets)
795
                max_extents = convert_to_image_coords((float(tokens[0]), float(tokens[1])), [scale_x, scale_y], offsets)
769 796

  
770 797
            tokens = blk_ref_node.attrib['MinExtents'].strip('()').split(',')
771 798
            if 3 == len(tokens):
772
                min_extents = convert_to_image_coords((float(tokens[0]), float(tokens[1])), scale, offsets)
799
                min_extents = convert_to_image_coords((float(tokens[0]), float(tokens[1])), [scale_x, scale_y], offsets)
773 800

  
774 801
            _height = abs(max_extents[1] - min_extents[1])
775 802
            _width = abs(max_extents[0] - min_extents[0])
......
824 851
        from EngineeringTextItem import QEngineeringTextItem
825 852

  
826 853
        try:
827
            scale = max([id2_bbox[2] / autocad_bbox[2], id2_bbox[3] / autocad_bbox[3]])
828
            offsets = [id2_bbox[0] - autocad_bbox[0] * scale, (id2_bbox[1] + id2_bbox[3]) - autocad_bbox[1] * scale]
854
            scale_x = max([id2_bbox[2] / autocad_bbox[2], id2_bbox[3] / autocad_bbox[3]]) if self.ui.doubleSpinBox.value() < 1 else self.ui.doubleSpinBox.value()
855
            scale_y = max([id2_bbox[2] / autocad_bbox[2], id2_bbox[3] / autocad_bbox[3]]) if self.ui.doubleSpinBox_2.value() < 1 else self.ui.doubleSpinBox_2.value()
856
            #offsets = [id2_bbox[0] - autocad_bbox[0] * scale_x, (id2_bbox[1] + id2_bbox[3]) - autocad_bbox[1] * scale_y]
857
            offsets = [self.ui.spinBoxTextX.value(), self.drawing_height + self.ui.spinBoxTextY.value()]
829 858

  
830
            loc = [float(text_node.attrib['X']) * scale + offsets[0], -float(text_node.attrib['Y']) * scale + offsets[1]]
859
            loc = [float(text_node.attrib['X']) * scale_x + offsets[0], -float(text_node.attrib['Y']) * scale_y + offsets[1]]
831 860

  
832 861
            text = text_node.text
833 862
            angle = round(float(text_node.attrib['Angle']), 2)
834 863

  
835
            _height = round(float(text_node.attrib['Height'])) * scale
864
            _height = round(float(text_node.attrib['Height'])) * scale_y
836 865
            loc[1] -= _height
837 866
            _width = round(_height * len(text) * self.text_scale)
838 867
            #_width = round(float(text_node.attrib['Width']))
......
859 888

  
860 889
            node = item.toXml()
861 890

  
862
            """
863
            if loc[0] <= 0 or loc[1] <= 0 or _width <= 0 or _height <= 0:
864
                return None
865
            if loc[0] >= id2_bbox[2] or loc[1] >= id2_bbox[3] or \
866
                    loc[0] + _width >= id2_bbox[2] or loc[1] + _height >= id2_bbox[3]:
867
                return None
868
            """
869

  
870
            """create a element for id2"""
871
            '''
872
            node = Element('ATTRIBUTE')
873
            uidNode = Element('UID')
874
            uidNode.text = str(uuid.uuid4())
875
            node.append(uidNode)
876

  
877
            ownerNode = Element('OWNER')
878
            ownerNode.text = 'None'
879
            node.append(ownerNode)
880

  
881
            attributeValueNode = Element('ATTRIBUTEVALUE')
882
            node.append(attributeValueNode)
883

  
884
            nameNode = Element('NAME')
885
            nameNode.text = 'TEXT'
886
            node.append(nameNode)
887

  
888
            locNode = Element('LOCATION')
889
            locNode.text = f"{round(loc[0])},{round(loc[1])}"
890
            node.append(locNode)
891

  
892
            valueNode = Element('VALUE')
893
            valueNode.text = text
894
            node.append(valueNode)
895

  
896
            angleNode = Element('ANGLE')
897
            angleNode.text = str(round(angle, 2))
898
            node.append(angleNode)
899

  
900
            widthNode = Element('WIDTH')
901
            widthNode.text = str(round(_width))
902
            node.append(widthNode)
903

  
904
            heightNode = Element('HEIGHT')
905
            heightNode.text = str(round(_height))
906
            node.append(heightNode)
907

  
908
            areaNode = Element('AREA')
909
            areaNode.text = 'None'
910
            node.append(areaNode)
911

  
912
            sceneNode = Element('SCENE')
913
            sceneNode.text = f"{round(loc[0])},{round(loc[1])},{round(_width)},{round(_height)}"
914
            node.append(sceneNode)
915
            """up to here"""
916
            '''
917

  
918 891
            return node
919 892
        except Exception as ex:
920 893
            from App import App
......
946 919
            return res
947 920

  
948 921
        try:
949
            scale = max([id2_bbox[2] / autocad_bbox[2], id2_bbox[3] / autocad_bbox[3]])
950
            offsets = [id2_bbox[0] - autocad_bbox[0] * scale, (id2_bbox[1] + id2_bbox[3]) - autocad_bbox[1] * scale]
922
            scale_x = max([id2_bbox[2] / autocad_bbox[2], id2_bbox[3] / autocad_bbox[3]]) if self.ui.doubleSpinBox.value() < 1 else self.ui.doubleSpinBox.value()
923
            scale_y = max([id2_bbox[2] / autocad_bbox[2], id2_bbox[3] / autocad_bbox[3]]) if self.ui.doubleSpinBox_2.value() < 1 else self.ui.doubleSpinBox_2.value()
924
            #offsets = [id2_bbox[0] - autocad_bbox[0] * scale_x, (id2_bbox[1] + id2_bbox[3]) - autocad_bbox[1] * scale_y]
925
            offsets = [self.ui.spinBoxX.value(), self.drawing_height + self.ui.spinBoxX.value()]
951 926

  
952 927
            pts = []
953 928
            for vertex in line_node.iter('Vertex'):
954
                pts.append((float(vertex.attrib['X']) * scale + offsets[0],
955
                            -float(vertex.attrib['Y']) * scale + offsets[1]))
929
                pts.append((float(vertex.attrib['X']) * scale_x + offsets[0],
930
                            -float(vertex.attrib['Y']) * scale_y + offsets[1]))
956 931

  
957 932
            """get id2 line type uid"""
958 933
            line_type, line_type_cond = get_line_type(layers, line_types, line_node.attrib['Layer'],
DTI_PID/DTI_PID/ImportTextFromCAD_UI.py
11 11
class Ui_ImportTextFromCADDialog(object):
12 12
    def setupUi(self, ImportTextFromCADDialog):
13 13
        ImportTextFromCADDialog.setObjectName("ImportTextFromCADDialog")
14
        ImportTextFromCADDialog.resize(650, 470)
14
        ImportTextFromCADDialog.resize(696, 644)
15 15
        ImportTextFromCADDialog.setMinimumSize(QtCore.QSize(650, 79))
16 16
        ImportTextFromCADDialog.setMaximumSize(QtCore.QSize(16777215, 650))
17 17
        font = QtGui.QFont()
......
23 23
        self.verticalLayout.setObjectName("verticalLayout")
24 24
        self.gridLayout = QtWidgets.QGridLayout()
25 25
        self.gridLayout.setObjectName("gridLayout")
26
        self.tabWidgetEntities = QtWidgets.QTabWidget(ImportTextFromCADDialog)
27
        self.tabWidgetEntities.setObjectName("tabWidgetEntities")
28
        self.tabLineTypes = QtWidgets.QWidget()
29
        self.tabLineTypes.setObjectName("tabLineTypes")
30
        self.gridLayout_2 = QtWidgets.QGridLayout(self.tabLineTypes)
31
        self.gridLayout_2.setObjectName("gridLayout_2")
32
        self.treeViewLineType = QtWidgets.QTreeView(self.tabLineTypes)
33
        self.treeViewLineType.setObjectName("treeViewLineType")
34
        self.gridLayout_2.addWidget(self.treeViewLineType, 0, 0, 1, 1)
35
        self.tabWidgetEntities.addTab(self.tabLineTypes, "")
36
        self.tabSymbols = QtWidgets.QWidget()
37
        self.tabSymbols.setObjectName("tabSymbols")
38
        self.gridLayout_3 = QtWidgets.QGridLayout(self.tabSymbols)
39
        self.gridLayout_3.setObjectName("gridLayout_3")
40
        self.treeViewSymbolMapping = QtWidgets.QTreeView(self.tabSymbols)
41
        self.treeViewSymbolMapping.setObjectName("treeViewSymbolMapping")
42
        self.gridLayout_3.addWidget(self.treeViewSymbolMapping, 0, 0, 1, 1)
43
        self.tabWidgetEntities.addTab(self.tabSymbols, "")
44
        self.gridLayout.addWidget(self.tabWidgetEntities, 2, 1, 1, 3)
26
        self.spinBoxY = QtWidgets.QSpinBox(ImportTextFromCADDialog)
27
        self.spinBoxY.setMinimum(-50000)
28
        self.spinBoxY.setMaximum(50000)
29
        self.spinBoxY.setObjectName("spinBoxY")
30
        self.gridLayout.addWidget(self.spinBoxY, 4, 2, 1, 1)
31
        self.spinBoxX = QtWidgets.QSpinBox(ImportTextFromCADDialog)
32
        self.spinBoxX.setMinimumSize(QtCore.QSize(0, 0))
33
        self.spinBoxX.setMinimum(-50000)
34
        self.spinBoxX.setMaximum(50000)
35
        self.spinBoxX.setObjectName("spinBoxX")
36
        self.gridLayout.addWidget(self.spinBoxX, 4, 1, 1, 1)
37
        self.pushButtonImport = QtWidgets.QPushButton(ImportTextFromCADDialog)
38
        icon = QtGui.QIcon()
39
        icon.addPixmap(QtGui.QPixmap(":/newPrefix/OK.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
40
        self.pushButtonImport.setIcon(icon)
41
        self.pushButtonImport.setObjectName("pushButtonImport")
42
        self.gridLayout.addWidget(self.pushButtonImport, 10, 2, 1, 1)
43
        self.label_3 = QtWidgets.QLabel(ImportTextFromCADDialog)
44
        self.label_3.setObjectName("label_3")
45
        self.gridLayout.addWidget(self.label_3, 5, 0, 1, 1)
45 46
        self.horizontalLayout = QtWidgets.QHBoxLayout()
46 47
        self.horizontalLayout.setObjectName("horizontalLayout")
47 48
        self.spinBoxTextX = QtWidgets.QSpinBox(ImportTextFromCADDialog)
......
58 59
        self.doubleSpinBoxScale.setSingleStep(0.1)
59 60
        self.doubleSpinBoxScale.setObjectName("doubleSpinBoxScale")
60 61
        self.horizontalLayout.addWidget(self.doubleSpinBoxScale)
61
        self.gridLayout.addLayout(self.horizontalLayout, 4, 1, 1, 3)
62
        self.toolButtonCAD = QtWidgets.QToolButton(ImportTextFromCADDialog)
63
        self.toolButtonCAD.setText("")
64
        icon = QtGui.QIcon()
65
        icon.addPixmap(QtGui.QPixmap(":/newPrefix/File.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
66
        self.toolButtonCAD.setIcon(icon)
67
        self.toolButtonCAD.setObjectName("toolButtonCAD")
68
        self.gridLayout.addWidget(self.toolButtonCAD, 0, 4, 1, 1)
69
        self.pushButtonImport = QtWidgets.QPushButton(ImportTextFromCADDialog)
70
        icon1 = QtGui.QIcon()
71
        icon1.addPixmap(QtGui.QPixmap(":/newPrefix/OK.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
72
        self.pushButtonImport.setIcon(icon1)
73
        self.pushButtonImport.setObjectName("pushButtonImport")
74
        self.gridLayout.addWidget(self.pushButtonImport, 7, 2, 1, 1)
75
        self.spinBoxY = QtWidgets.QSpinBox(ImportTextFromCADDialog)
76
        self.spinBoxY.setMinimum(-50000)
77
        self.spinBoxY.setMaximum(50000)
78
        self.spinBoxY.setObjectName("spinBoxY")
79
        self.gridLayout.addWidget(self.spinBoxY, 3, 2, 1, 1)
62
        self.gridLayout.addLayout(self.horizontalLayout, 5, 1, 1, 3)
63
        self.pushButtonAuto = QtWidgets.QPushButton(ImportTextFromCADDialog)
64
        self.pushButtonAuto.setObjectName("pushButtonAuto")
65
        self.gridLayout.addWidget(self.pushButtonAuto, 6, 3, 1, 1)
80 66
        self.lineEditCAD = QtWidgets.QLineEdit(ImportTextFromCADDialog)
81 67
        self.lineEditCAD.setObjectName("lineEditCAD")
82 68
        self.gridLayout.addWidget(self.lineEditCAD, 0, 1, 1, 3)
83
        self.label_2 = QtWidgets.QLabel(ImportTextFromCADDialog)
84
        self.label_2.setMinimumSize(QtCore.QSize(50, 0))
85
        self.label_2.setObjectName("label_2")
86
        self.gridLayout.addWidget(self.label_2, 0, 0, 1, 1)
69
        self.lineEdit = QtWidgets.QLineEdit(ImportTextFromCADDialog)
70
        self.lineEdit.setObjectName("lineEdit")
71
        self.gridLayout.addWidget(self.lineEdit, 6, 1, 1, 2)
87 72
        self.pushButtonSave = QtWidgets.QPushButton(ImportTextFromCADDialog)
88
        icon2 = QtGui.QIcon()
89
        icon2.addPixmap(QtGui.QPixmap(":/newPrefix/Save.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
90
        self.pushButtonSave.setIcon(icon2)
73
        icon1 = QtGui.QIcon()
74
        icon1.addPixmap(QtGui.QPixmap(":/newPrefix/Save.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
75
        self.pushButtonSave.setIcon(icon1)
91 76
        self.pushButtonSave.setObjectName("pushButtonSave")
92
        self.gridLayout.addWidget(self.pushButtonSave, 6, 1, 1, 3)
93
        self.spinBoxX = QtWidgets.QSpinBox(ImportTextFromCADDialog)
94
        self.spinBoxX.setMinimumSize(QtCore.QSize(0, 0))
95
        self.spinBoxX.setMinimum(-50000)
96
        self.spinBoxX.setMaximum(50000)
97
        self.spinBoxX.setObjectName("spinBoxX")
98
        self.gridLayout.addWidget(self.spinBoxX, 3, 1, 1, 1)
99
        self.label = QtWidgets.QLabel(ImportTextFromCADDialog)
100
        self.label.setObjectName("label")
101
        self.gridLayout.addWidget(self.label, 3, 0, 1, 1)
77
        self.gridLayout.addWidget(self.pushButtonSave, 9, 1, 1, 3)
78
        self.toolButtonCAD = QtWidgets.QToolButton(ImportTextFromCADDialog)
79
        self.toolButtonCAD.setText("")
80
        icon2 = QtGui.QIcon()
81
        icon2.addPixmap(QtGui.QPixmap(":/newPrefix/File.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
82
        self.toolButtonCAD.setIcon(icon2)
83
        self.toolButtonCAD.setObjectName("toolButtonCAD")
84
        self.gridLayout.addWidget(self.toolButtonCAD, 0, 4, 1, 1)
102 85
        self.pushButtonClose = QtWidgets.QPushButton(ImportTextFromCADDialog)
103 86
        icon3 = QtGui.QIcon()
104 87
        icon3.addPixmap(QtGui.QPixmap(":/newPrefix/Remove.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
105 88
        self.pushButtonClose.setIcon(icon3)
106 89
        self.pushButtonClose.setObjectName("pushButtonClose")
107
        self.gridLayout.addWidget(self.pushButtonClose, 7, 3, 1, 1)
108
        self.label_3 = QtWidgets.QLabel(ImportTextFromCADDialog)
109
        self.label_3.setObjectName("label_3")
110
        self.gridLayout.addWidget(self.label_3, 4, 0, 1, 1)
90
        self.gridLayout.addWidget(self.pushButtonClose, 10, 3, 1, 1)
91
        self.label_2 = QtWidgets.QLabel(ImportTextFromCADDialog)
92
        self.label_2.setMinimumSize(QtCore.QSize(50, 0))
93
        self.label_2.setObjectName("label_2")
94
        self.gridLayout.addWidget(self.label_2, 0, 0, 1, 1)
95
        self.label = QtWidgets.QLabel(ImportTextFromCADDialog)
96
        self.label.setObjectName("label")
97
        self.gridLayout.addWidget(self.label, 4, 0, 1, 1)
111 98
        self.label_4 = QtWidgets.QLabel(ImportTextFromCADDialog)
112 99
        self.label_4.setObjectName("label_4")
113
        self.gridLayout.addWidget(self.label_4, 5, 0, 1, 1)
114
        self.pushButtonAuto = QtWidgets.QPushButton(ImportTextFromCADDialog)
115
        self.pushButtonAuto.setObjectName("pushButtonAuto")
116
        self.gridLayout.addWidget(self.pushButtonAuto, 5, 3, 1, 1)
117
        self.lineEdit = QtWidgets.QLineEdit(ImportTextFromCADDialog)
118
        self.lineEdit.setObjectName("lineEdit")
119
        self.gridLayout.addWidget(self.lineEdit, 5, 1, 1, 2)
100
        self.gridLayout.addWidget(self.label_4, 6, 0, 1, 1)
101
        self.tabWidgetEntities = QtWidgets.QTabWidget(ImportTextFromCADDialog)
102
        self.tabWidgetEntities.setObjectName("tabWidgetEntities")
103
        self.tabLineTypes = QtWidgets.QWidget()
104
        self.tabLineTypes.setObjectName("tabLineTypes")
105
        self.gridLayout_2 = QtWidgets.QGridLayout(self.tabLineTypes)
106
        self.gridLayout_2.setObjectName("gridLayout_2")
107
        self.treeViewLineType = QtWidgets.QTreeView(self.tabLineTypes)
108
        self.treeViewLineType.setObjectName("treeViewLineType")
109
        self.gridLayout_2.addWidget(self.treeViewLineType, 0, 0, 1, 1)
110
        self.tabWidgetEntities.addTab(self.tabLineTypes, "")
111
        self.tabSymbols = QtWidgets.QWidget()
112
        self.tabSymbols.setObjectName("tabSymbols")
113
        self.gridLayout_3 = QtWidgets.QGridLayout(self.tabSymbols)
114
        self.gridLayout_3.setObjectName("gridLayout_3")
115
        self.treeViewSymbolMapping = QtWidgets.QTreeView(self.tabSymbols)
116
        self.treeViewSymbolMapping.setObjectName("treeViewSymbolMapping")
117
        self.gridLayout_3.addWidget(self.treeViewSymbolMapping, 0, 0, 1, 1)
118
        self.tabWidgetEntities.addTab(self.tabSymbols, "")
119
        self.gridLayout.addWidget(self.tabWidgetEntities, 2, 1, 1, 3)
120
        self.label_5 = QtWidgets.QLabel(ImportTextFromCADDialog)
121
        self.label_5.setObjectName("label_5")
122
        self.gridLayout.addWidget(self.label_5, 7, 0, 1, 1)
123
        self.lineEdit_2 = QtWidgets.QLineEdit(ImportTextFromCADDialog)
124
        self.lineEdit_2.setObjectName("lineEdit_2")
125
        self.gridLayout.addWidget(self.lineEdit_2, 7, 1, 1, 2)
126
        self.label_6 = QtWidgets.QLabel(ImportTextFromCADDialog)
127
        self.label_6.setObjectName("label_6")
128
        self.gridLayout.addWidget(self.label_6, 8, 0, 1, 1)
129
        self.doubleSpinBox = QtWidgets.QDoubleSpinBox(ImportTextFromCADDialog)
130
        self.doubleSpinBox.setDecimals(6)
131
        self.doubleSpinBox.setObjectName("doubleSpinBox")
132
        self.gridLayout.addWidget(self.doubleSpinBox, 8, 1, 1, 1)
133
        self.doubleSpinBox_2 = QtWidgets.QDoubleSpinBox(ImportTextFromCADDialog)
134
        self.doubleSpinBox_2.setDecimals(6)
135
        self.doubleSpinBox_2.setObjectName("doubleSpinBox_2")
136
        self.gridLayout.addWidget(self.doubleSpinBox_2, 8, 2, 1, 1)
120 137
        self.verticalLayout.addLayout(self.gridLayout)
121 138
        self.errorLabel = QtWidgets.QLabel(ImportTextFromCADDialog)
122 139
        self.errorLabel.setMaximumSize(QtCore.QSize(16777215, 0))
......
133 150
    def retranslateUi(self, ImportTextFromCADDialog):
134 151
        _translate = QtCore.QCoreApplication.translate
135 152
        ImportTextFromCADDialog.setWindowTitle(_translate("ImportTextFromCADDialog", "Import AutoCAD"))
136
        self.tabWidgetEntities.setTabText(self.tabWidgetEntities.indexOf(self.tabLineTypes), _translate("ImportTextFromCADDialog", "Line Types"))
137
        self.tabWidgetEntities.setTabText(self.tabWidgetEntities.indexOf(self.tabSymbols), _translate("ImportTextFromCADDialog", "Symbols"))
138 153
        self.pushButtonImport.setText(_translate("ImportTextFromCADDialog", "Import"))
154
        self.label_3.setText(_translate("ImportTextFromCADDialog", "Text Offset(x, y, scale) : "))
155
        self.pushButtonAuto.setText(_translate("ImportTextFromCADDialog", "Auto Cal."))
139 156
        self.lineEditCAD.setPlaceholderText(_translate("ImportTextFromCADDialog", "Select AutoCAD File(s)"))
140
        self.label_2.setText(_translate("ImportTextFromCADDialog", "AutoCAD Files : "))
141 157
        self.pushButtonSave.setText(_translate("ImportTextFromCADDialog", "Save Mapping"))
142
        self.label.setText(_translate("ImportTextFromCADDialog", "Line Offset(x, y) : "))
143 158
        self.pushButtonClose.setText(_translate("ImportTextFromCADDialog", "Close"))
144
        self.label_3.setText(_translate("ImportTextFromCADDialog", "Text Offset(x, y, scale) : "))
145
        self.label_4.setText(_translate("ImportTextFromCADDialog", "Search Text(Line No.)"))
146
        self.pushButtonAuto.setText(_translate("ImportTextFromCADDialog", "Auto Cal."))
159
        self.label_2.setText(_translate("ImportTextFromCADDialog", "AutoCAD Files : "))
160
        self.label.setText(_translate("ImportTextFromCADDialog", "Line Offset(x, y) : "))
161
        self.label_4.setText(_translate("ImportTextFromCADDialog", "Search Text 1(Line No.) :"))
162
        self.tabWidgetEntities.setTabText(self.tabWidgetEntities.indexOf(self.tabLineTypes), _translate("ImportTextFromCADDialog", "Line Types"))
163
        self.tabWidgetEntities.setTabText(self.tabWidgetEntities.indexOf(self.tabSymbols), _translate("ImportTextFromCADDialog", "Symbols"))
164
        self.label_5.setText(_translate("ImportTextFromCADDialog", "Search Text 2(Line No.) :"))
165
        self.label_6.setText(_translate("ImportTextFromCADDialog", "Scale :"))
147 166

  
148 167
import MainWindow_rc
149 168

  
DTI_PID/DTI_PID/UI/ImportTextFromCAD.ui
6 6
   <rect>
7 7
    <x>0</x>
8 8
    <y>0</y>
9
    <width>650</width>
10
    <height>470</height>
9
    <width>696</width>
10
    <height>644</height>
11 11
   </rect>
12 12
  </property>
13 13
  <property name="minimumSize">
......
35 35
  <layout class="QVBoxLayout" name="verticalLayout">
36 36
   <item>
37 37
    <layout class="QGridLayout" name="gridLayout">
38
     <item row="2" column="1" colspan="3">
39
      <widget class="QTabWidget" name="tabWidgetEntities">
40
       <property name="currentIndex">
41
        <number>0</number>
38
     <item row="4" column="2">
39
      <widget class="QSpinBox" name="spinBoxY">
40
       <property name="minimum">
41
        <number>-50000</number>
42
       </property>
43
       <property name="maximum">
44
        <number>50000</number>
45
       </property>
46
      </widget>
47
     </item>
48
     <item row="4" column="1">
49
      <widget class="QSpinBox" name="spinBoxX">
50
       <property name="minimumSize">
51
        <size>
52
         <width>0</width>
53
         <height>0</height>
54
        </size>
55
       </property>
56
       <property name="minimum">
57
        <number>-50000</number>
58
       </property>
59
       <property name="maximum">
60
        <number>50000</number>
61
       </property>
62
      </widget>
63
     </item>
64
     <item row="10" column="2">
65
      <widget class="QPushButton" name="pushButtonImport">
66
       <property name="text">
67
        <string>Import</string>
68
       </property>
69
       <property name="icon">
70
        <iconset resource="../res/MainWindow.qrc">
71
         <normaloff>:/newPrefix/OK.svg</normaloff>:/newPrefix/OK.svg</iconset>
42 72
       </property>
43
       <widget class="QWidget" name="tabLineTypes">
44
        <attribute name="title">
45
         <string>Line Types</string>
46
        </attribute>
47
        <layout class="QGridLayout" name="gridLayout_2">
48
         <item row="0" column="0">
49
          <widget class="QTreeView" name="treeViewLineType"/>
50
         </item>
51
        </layout>
52
       </widget>
53
       <widget class="QWidget" name="tabSymbols">
54
        <attribute name="title">
55
         <string>Symbols</string>
56
        </attribute>
57
        <layout class="QGridLayout" name="gridLayout_3">
58
         <item row="0" column="0">
59
          <widget class="QTreeView" name="treeViewSymbolMapping"/>
60
         </item>
61
        </layout>
62
       </widget>
63 73
      </widget>
64 74
     </item>
65
     <item row="4" column="1" colspan="3">
75
     <item row="5" column="0">
76
      <widget class="QLabel" name="label_3">
77
       <property name="text">
78
        <string>Text Offset(x, y, scale) : </string>
79
       </property>
80
      </widget>
81
     </item>
82
     <item row="5" column="1" colspan="3">
66 83
      <layout class="QHBoxLayout" name="horizontalLayout">
67 84
       <item>
68 85
        <widget class="QSpinBox" name="spinBoxTextX">
......
93 110
       </item>
94 111
      </layout>
95 112
     </item>
96
     <item row="0" column="4">
97
      <widget class="QToolButton" name="toolButtonCAD">
113
     <item row="6" column="3">
114
      <widget class="QPushButton" name="pushButtonAuto">
98 115
       <property name="text">
99
        <string/>
116
        <string>Auto Cal.</string>
100 117
       </property>
101
       <property name="icon">
102
        <iconset resource="../res/MainWindow.qrc">
103
         <normaloff>:/newPrefix/File.svg</normaloff>:/newPrefix/File.svg</iconset>
118
      </widget>
119
     </item>
120
     <item row="0" column="1" colspan="3">
121
      <widget class="QLineEdit" name="lineEditCAD">
122
       <property name="placeholderText">
123
        <string>Select AutoCAD File(s)</string>
104 124
       </property>
105 125
      </widget>
106 126
     </item>
107
     <item row="7" column="2">
108
      <widget class="QPushButton" name="pushButtonImport">
127
     <item row="6" column="1" colspan="2">
128
      <widget class="QLineEdit" name="lineEdit"/>
129
     </item>
130
     <item row="9" column="1" colspan="3">
131
      <widget class="QPushButton" name="pushButtonSave">
109 132
       <property name="text">
110
        <string>Import</string>
133
        <string>Save Mapping</string>
111 134
       </property>
112 135
       <property name="icon">
113 136
        <iconset resource="../res/MainWindow.qrc">
114
         <normaloff>:/newPrefix/OK.svg</normaloff>:/newPrefix/OK.svg</iconset>
137
         <normaloff>:/newPrefix/Save.svg</normaloff>:/newPrefix/Save.svg</iconset>
115 138
       </property>
116 139
      </widget>
117 140
     </item>
118
     <item row="3" column="2">
119
      <widget class="QSpinBox" name="spinBoxY">
120
       <property name="minimum">
121
        <number>-50000</number>
141
     <item row="0" column="4">
142
      <widget class="QToolButton" name="toolButtonCAD">
143
       <property name="text">
144
        <string/>
122 145
       </property>
123
       <property name="maximum">
124
        <number>50000</number>
146
       <property name="icon">
147
        <iconset resource="../res/MainWindow.qrc">
148
         <normaloff>:/newPrefix/File.svg</normaloff>:/newPrefix/File.svg</iconset>
125 149
       </property>
126 150
      </widget>
127 151
     </item>
128
     <item row="0" column="1" colspan="3">
129
      <widget class="QLineEdit" name="lineEditCAD">
130
       <property name="placeholderText">
131
        <string>Select AutoCAD File(s)</string>
152
     <item row="10" column="3">
153
      <widget class="QPushButton" name="pushButtonClose">
154
       <property name="text">
155
        <string>Close</string>
156
       </property>
157
       <property name="icon">
158
        <iconset resource="../res/MainWindow.qrc">
159
         <normaloff>:/newPrefix/Remove.svg</normaloff>:/newPrefix/Remove.svg</iconset>
132 160
       </property>
133 161
      </widget>
134 162
     </item>
......
145 173
       </property>
146 174
      </widget>
147 175
     </item>
148
     <item row="6" column="1" colspan="3">
149
      <widget class="QPushButton" name="pushButtonSave">
176
     <item row="4" column="0">
177
      <widget class="QLabel" name="label">
150 178
       <property name="text">
151
        <string>Save Mapping</string>
152
       </property>
153
       <property name="icon">
154
        <iconset resource="../res/MainWindow.qrc">
155
         <normaloff>:/newPrefix/Save.svg</normaloff>:/newPrefix/Save.svg</iconset>
179
        <string>Line Offset(x, y) : </string>
156 180
       </property>
157 181
      </widget>
158 182
     </item>
159
     <item row="3" column="1">
160
      <widget class="QSpinBox" name="spinBoxX">
161
       <property name="minimumSize">
162
        <size>
163
         <width>0</width>
164
         <height>0</height>
165
        </size>
166
       </property>
167
       <property name="minimum">
168
        <number>-50000</number>
169
       </property>
170
       <property name="maximum">
171
        <number>50000</number>
183
     <item row="6" column="0">
184
      <widget class="QLabel" name="label_4">
185
       <property name="text">
186
        <string>Search Text 1(Line No.) :</string>
172 187
       </property>
173 188
      </widget>
174 189
     </item>
175
     <item row="3" column="0">
176
      <widget class="QLabel" name="label">
177
       <property name="text">
178
        <string>Line Offset(x, y) : </string>
190
     <item row="2" column="1" colspan="3">
191
      <widget class="QTabWidget" name="tabWidgetEntities">
192
       <property name="currentIndex">
193
        <number>0</number>
179 194
       </property>
195
       <widget class="QWidget" name="tabLineTypes">
196
        <attribute name="title">
197
         <string>Line Types</string>
198
        </attribute>
199
        <layout class="QGridLayout" name="gridLayout_2">
200
         <item row="0" column="0">
201
          <widget class="QTreeView" name="treeViewLineType"/>
202
         </item>
203
        </layout>
204
       </widget>
205
       <widget class="QWidget" name="tabSymbols">
206
        <attribute name="title">
207
         <string>Symbols</string>
208
        </attribute>
209
        <layout class="QGridLayout" name="gridLayout_3">
210
         <item row="0" column="0">
211
          <widget class="QTreeView" name="treeViewSymbolMapping"/>
212
         </item>
213
        </layout>
214
       </widget>
180 215
      </widget>
181 216
     </item>
182
     <item row="7" column="3">
183
      <widget class="QPushButton" name="pushButtonClose">
217
     <item row="7" column="0">
218
      <widget class="QLabel" name="label_5">
184 219
       <property name="text">
185
        <string>Close</string>
186
       </property>
187
       <property name="icon">
188
        <iconset resource="../res/MainWindow.qrc">
189
         <normaloff>:/newPrefix/Remove.svg</normaloff>:/newPrefix/Remove.svg</iconset>
220
        <string>Search Text 2(Line No.) :</string>
190 221
       </property>
191 222
      </widget>
192 223
     </item>
193
     <item row="4" column="0">
194
      <widget class="QLabel" name="label_3">
224
     <item row="7" column="1" colspan="2">
225
      <widget class="QLineEdit" name="lineEdit_2"/>
226
     </item>
227
     <item row="8" column="0">
228
      <widget class="QLabel" name="label_6">
195 229
       <property name="text">
196
        <string>Text Offset(x, y, scale) : </string>
230
        <string>Scale :</string>
197 231
       </property>
198 232
      </widget>
199 233
     </item>
200
     <item row="5" column="0">
201
      <widget class="QLabel" name="label_4">
202
       <property name="text">
203
        <string>Search Text(Line No.)</string>
234
     <item row="8" column="1">
235
      <widget class="QDoubleSpinBox" name="doubleSpinBox">
236
       <property name="decimals">
237
        <number>6</number>
204 238
       </property>
205 239
      </widget>
206 240
     </item>
207
     <item row="5" column="3">
208
      <widget class="QPushButton" name="pushButtonAuto">
209
       <property name="text">
210
        <string>Auto Cal.</string>
241
     <item row="8" column="2">
242
      <widget class="QDoubleSpinBox" name="doubleSpinBox_2">
243
       <property name="decimals">
244
        <number>6</number>
211 245
       </property>
212 246
      </widget>
213 247
     </item>
214
     <item row="5" column="1" colspan="2">
215
      <widget class="QLineEdit" name="lineEdit"/>
216
     </item>
217 248
    </layout>
218 249
   </item>
219 250
   <item>

내보내기 Unified diff

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