개정판 a3aa5583
issue #000: import text from cad
Change-Id: Ibf0d1c3c226aed6bffd96d9785960c2ff0299aa4
DTI_PID/DTI_PID/AppDocData.py | ||
---|---|---|
763 | 763 |
path = os.path.join(tempDir, 'Tile') |
764 | 764 |
if not os.path.exists(path): |
765 | 765 |
os.makedirs(path) |
766 |
path = os.path.join(drawingPath, 'Native') |
|
767 |
if not os.path.exists(path): |
|
768 |
os.makedirs(path) |
|
766 | 769 |
|
767 | 770 |
''' |
768 | 771 |
@brief Get current Project |
DTI_PID/DTI_PID/ImportTextFromCADDialog.py | ||
---|---|---|
1 |
# coding: utf-8 |
|
2 |
""" |
|
3 |
This is text importing module from CAD |
|
4 |
""" |
|
5 |
import os |
|
6 |
import sys |
|
7 |
from PyQt5.QtCore import * |
|
8 |
from PyQt5.QtGui import * |
|
9 |
from PyQt5.QtWidgets import * |
|
10 |
from AppDocData import AppDocData |
|
11 |
import XmlGenerator as xg |
|
12 |
import subprocess |
|
13 |
from xml.etree.ElementTree import Element, SubElement, dump, ElementTree, parse |
|
14 |
|
|
15 |
import ImportTextFromCAD_UI |
|
16 |
|
|
17 |
class QImportTextFromCADDialog(QDialog): |
|
18 |
def __init__(self, parent): |
|
19 |
QDialog.__init__(self, parent) |
|
20 |
|
|
21 |
self.ui = ImportTextFromCAD_UI.Ui_ImportTextFromCADDialog() |
|
22 |
self.ui.setupUi(self) |
|
23 |
|
|
24 |
self.isAccepted = False |
|
25 |
|
|
26 |
self.ui.toolButton.clicked.connect(self.addID2Click) |
|
27 |
self.ui.toolButton_2.clicked.connect(self.addCADClick) |
|
28 |
self.ui.pushButtonImport.clicked.connect(self.importTextFromCAD) |
|
29 |
|
|
30 |
self.height = None |
|
31 |
|
|
32 |
def addID2Click(self): |
|
33 |
project = AppDocData.instance().getCurrentProject() |
|
34 |
|
|
35 |
options = QFileDialog.Options() |
|
36 |
options |= QFileDialog.DontUseNativeDialog |
|
37 |
selectedDir = QFileDialog.getOpenFileName(self, self.tr('Import', "Select ID2 xml File"), project.getTempPath(), "xml files (*.xml)", options=options) |
|
38 |
if selectedDir: |
|
39 |
self.ui.lineEditID2.setText(selectedDir[0]) |
|
40 |
|
|
41 |
def addCADClick(self): |
|
42 |
project = AppDocData.instance().getCurrentProject() |
|
43 |
|
|
44 |
options = QFileDialog.Options() |
|
45 |
options |= QFileDialog.DontUseNativeDialog |
|
46 |
selectedDir = QFileDialog.getOpenFileName(self, self.tr('Import', "Select CAD File"), os.path.join(project.getDrawingFilePath(), 'Native'), "dwg files (*.dwg)", options=options) |
|
47 |
if selectedDir: |
|
48 |
self.ui.lineEditCAD.setText(selectedDir[0]) |
|
49 |
|
|
50 |
def importTextFromCAD(self): |
|
51 |
xmlPath = self.ui.lineEditID2.text() |
|
52 |
dwgPath = self.ui.lineEditCAD.text() |
|
53 |
xOffset = self.ui.doubleSpinBoxX.value() |
|
54 |
yOffset = self.ui.doubleSpinBoxY.value() |
|
55 |
scale = self.ui.doubleSpinBoxS.value() |
|
56 |
if os.path.exists(xmlPath) and os.path.exists(dwgPath) and scale > 0.001: |
|
57 |
try: |
|
58 |
#filePath = os.path.join(os.path.dirname(os.path.realpath(__file__)) , 'bin64', 'OdReadExMgd.exe') |
|
59 |
filePath = os.path.join('E:\Projects\OdReadExMgd\\bin\\x86\Debug', 'OdReadExMgd.exe') |
|
60 |
command = filePath + ' {} {} {} {}'.format(dwgPath, xOffset, yOffset, scale) |
|
61 |
subprocess.call(command, shell = False) |
|
62 |
|
|
63 |
textXmlPath = os.path.join('E:\Projects\DTIPID_GERRIT', dwgPath.split('/')[-1].split('.')[0] + '.xml') |
|
64 |
textXml = parse(textXmlPath) |
|
65 |
originXml = parse(xmlPath) |
|
66 |
textRoot = textXml.getroot() |
|
67 |
originRoot = originXml.getroot() |
|
68 |
self.height = int(originRoot.find('SIZE').text.split(',')[1]) |
|
69 |
|
|
70 |
textInfo = originRoot.find(xg.TEXT_INFO_LIST_NODE_NAME) |
|
71 |
textInfo.clear() |
|
72 |
#for node in textInfo.iter('ATTRIBUTE'): |
|
73 |
# textInfo.remove(node) |
|
74 |
|
|
75 |
noteInfo = originRoot.find(xg.NOTE_TEXT_INFO_LIST_NOTE_NAME) |
|
76 |
noteInfo.clear() |
|
77 |
#for node in noteInfo.iter('ATTRIBUTE'): |
|
78 |
# noteInfo.remove(node) |
|
79 |
lineNoInfo = originRoot.find(xg.LINE_NOS_NODE_NAME) |
|
80 |
lineNoInfo.clear() |
|
81 |
#for node in lineNoInfo.iter('LINE_NO'): |
|
82 |
# lineNoInfo.remove(node) |
|
83 |
|
|
84 |
for textNode in textRoot.iter('Text'): |
|
85 |
node = self.toXml(textNode) |
|
86 |
textInfo.append(node) |
|
87 |
|
|
88 |
originXml.write(xmlPath, encoding="utf-8", xml_declaration=True) |
|
89 |
|
|
90 |
except Exception as ex: |
|
91 |
from App import App |
|
92 |
from AppDocData import MessageType |
|
93 |
|
|
94 |
message = 'error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno) |
|
95 |
App.mainWnd().addMessage.emit(MessageType.Error, message) |
|
96 |
|
|
97 |
def toXml(self, textNode): |
|
98 |
import uuid |
|
99 |
|
|
100 |
loc = [float(xy) for xy in textNode.find('Location').text.split(',')] |
|
101 |
loc[1] = self.height - loc[1] |
|
102 |
|
|
103 |
text = textNode.find('Value').text |
|
104 |
angle = float(textNode.find('Angle').text) |
|
105 |
|
|
106 |
height = float(textNode.find('Height').text) |
|
107 |
width = float(textNode.find('Width').text) |
|
108 |
|
|
109 |
node = Element('ATTRIBUTE') |
|
110 |
uidNode = Element('UID') |
|
111 |
uidNode.text = str(uuid.uuid4()) |
|
112 |
node.append(uidNode) |
|
113 |
|
|
114 |
ownerNode = Element('OWNER') |
|
115 |
ownerNode.text = 'None' |
|
116 |
node.append(ownerNode) |
|
117 |
|
|
118 |
attributeValueNode = Element('ATTRIBUTEVALUE') |
|
119 |
node.append(attributeValueNode) |
|
120 |
|
|
121 |
nameNode = Element('NAME') |
|
122 |
nameNode.text = 'TEXT' |
|
123 |
node.append(nameNode) |
|
124 |
|
|
125 |
locNode = Element('LOCATION') |
|
126 |
locNode.text = '{},{}'.format(round(loc[0]), round(loc[1])) |
|
127 |
node.append(locNode) |
|
128 |
|
|
129 |
valueNode = Element('VALUE') |
|
130 |
valueNode.text = text |
|
131 |
node.append(valueNode) |
|
132 |
|
|
133 |
angleNode = Element('ANGLE') |
|
134 |
angleNode.text = str(round(angle, 2)) |
|
135 |
node.append(angleNode) |
|
136 |
|
|
137 |
widthNode = Element('WIDTH') |
|
138 |
widthNode.text = str(round(width)) |
|
139 |
node.append(widthNode) |
|
140 |
|
|
141 |
heightNode = Element('HEIGHT') |
|
142 |
heightNode.text = str(round(height)) |
|
143 |
node.append(heightNode) |
|
144 |
|
|
145 |
areaNode = Element('AREA') |
|
146 |
areaNode.text = 'None' |
|
147 |
node.append(areaNode) |
|
148 |
|
|
149 |
sceneNode = Element('SCENE') |
|
150 |
sceneNode.text = '{},{},{},{}'.format(round(loc[0]), round(loc[1]), round(width), round(height)) |
|
151 |
node.append(sceneNode) |
|
152 |
|
|
153 |
return node |
DTI_PID/DTI_PID/ImportTextFromCAD_UI.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
|
|
3 |
# Form implementation generated from reading ui file './UI/ImportTextFromCAD.ui' |
|
4 |
# |
|
5 |
# Created by: PyQt5 UI code generator 5.11.3 |
|
6 |
# |
|
7 |
# WARNING! All changes made in this file will be lost! |
|
8 |
|
|
9 |
from PyQt5 import QtCore, QtGui, QtWidgets |
|
10 |
|
|
11 |
class Ui_ImportTextFromCADDialog(object): |
|
12 |
def setupUi(self, ImportTextFromCADDialog): |
|
13 |
ImportTextFromCADDialog.setObjectName("ImportTextFromCADDialog") |
|
14 |
ImportTextFromCADDialog.resize(650, 143) |
|
15 |
ImportTextFromCADDialog.setMinimumSize(QtCore.QSize(650, 79)) |
|
16 |
ImportTextFromCADDialog.setMaximumSize(QtCore.QSize(650, 200)) |
|
17 |
font = QtGui.QFont() |
|
18 |
font.setFamily("맑은 고딕") |
|
19 |
font.setBold(True) |
|
20 |
font.setWeight(75) |
|
21 |
ImportTextFromCADDialog.setFont(font) |
|
22 |
self.verticalLayout = QtWidgets.QVBoxLayout(ImportTextFromCADDialog) |
|
23 |
self.verticalLayout.setObjectName("verticalLayout") |
|
24 |
self.formLayout = QtWidgets.QFormLayout() |
|
25 |
self.formLayout.setVerticalSpacing(4) |
|
26 |
self.formLayout.setObjectName("formLayout") |
|
27 |
self.horizontalLayout = QtWidgets.QHBoxLayout() |
|
28 |
self.horizontalLayout.setObjectName("horizontalLayout") |
|
29 |
self.label = QtWidgets.QLabel(ImportTextFromCADDialog) |
|
30 |
self.label.setMinimumSize(QtCore.QSize(50, 0)) |
|
31 |
self.label.setObjectName("label") |
|
32 |
self.horizontalLayout.addWidget(self.label) |
|
33 |
self.lineEditID2 = QtWidgets.QLineEdit(ImportTextFromCADDialog) |
|
34 |
self.lineEditID2.setObjectName("lineEditID2") |
|
35 |
self.horizontalLayout.addWidget(self.lineEditID2) |
|
36 |
self.toolButton = QtWidgets.QToolButton(ImportTextFromCADDialog) |
|
37 |
self.toolButton.setObjectName("toolButton") |
|
38 |
self.horizontalLayout.addWidget(self.toolButton) |
|
39 |
self.formLayout.setLayout(0, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout) |
|
40 |
self.horizontalLayout_2 = QtWidgets.QHBoxLayout() |
|
41 |
self.horizontalLayout_2.setObjectName("horizontalLayout_2") |
|
42 |
self.label_2 = QtWidgets.QLabel(ImportTextFromCADDialog) |
|
43 |
self.label_2.setMinimumSize(QtCore.QSize(50, 0)) |
|
44 |
self.label_2.setObjectName("label_2") |
|
45 |
self.horizontalLayout_2.addWidget(self.label_2) |
|
46 |
self.lineEditCAD = QtWidgets.QLineEdit(ImportTextFromCADDialog) |
|
47 |
self.lineEditCAD.setObjectName("lineEditCAD") |
|
48 |
self.horizontalLayout_2.addWidget(self.lineEditCAD) |
|
49 |
self.toolButton_2 = QtWidgets.QToolButton(ImportTextFromCADDialog) |
|
50 |
self.toolButton_2.setObjectName("toolButton_2") |
|
51 |
self.horizontalLayout_2.addWidget(self.toolButton_2) |
|
52 |
self.formLayout.setLayout(1, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_2) |
|
53 |
self.horizontalLayout_5 = QtWidgets.QHBoxLayout() |
|
54 |
self.horizontalLayout_5.setObjectName("horizontalLayout_5") |
|
55 |
self.label_3 = QtWidgets.QLabel(ImportTextFromCADDialog) |
|
56 |
self.label_3.setMaximumSize(QtCore.QSize(60, 16777215)) |
|
57 |
self.label_3.setObjectName("label_3") |
|
58 |
self.horizontalLayout_5.addWidget(self.label_3) |
|
59 |
self.doubleSpinBoxX = QtWidgets.QDoubleSpinBox(ImportTextFromCADDialog) |
|
60 |
self.doubleSpinBoxX.setMaximum(10000.0) |
|
61 |
self.doubleSpinBoxX.setObjectName("doubleSpinBoxX") |
|
62 |
self.horizontalLayout_5.addWidget(self.doubleSpinBoxX) |
|
63 |
self.label_5 = QtWidgets.QLabel(ImportTextFromCADDialog) |
|
64 |
self.label_5.setMaximumSize(QtCore.QSize(60, 16777215)) |
|
65 |
self.label_5.setObjectName("label_5") |
|
66 |
self.horizontalLayout_5.addWidget(self.label_5) |
|
67 |
self.doubleSpinBoxY = QtWidgets.QDoubleSpinBox(ImportTextFromCADDialog) |
|
68 |
self.doubleSpinBoxY.setMaximum(10000.0) |
|
69 |
self.doubleSpinBoxY.setObjectName("doubleSpinBoxY") |
|
70 |
self.horizontalLayout_5.addWidget(self.doubleSpinBoxY) |
|
71 |
self.label_4 = QtWidgets.QLabel(ImportTextFromCADDialog) |
|
72 |
self.label_4.setMaximumSize(QtCore.QSize(60, 16777215)) |
|
73 |
self.label_4.setObjectName("label_4") |
|
74 |
self.horizontalLayout_5.addWidget(self.label_4) |
|
75 |
self.doubleSpinBoxS = QtWidgets.QDoubleSpinBox(ImportTextFromCADDialog) |
|
76 |
self.doubleSpinBoxS.setDecimals(5) |
|
77 |
self.doubleSpinBoxS.setMaximum(1000.0) |
|
78 |
self.doubleSpinBoxS.setObjectName("doubleSpinBoxS") |
|
79 |
self.horizontalLayout_5.addWidget(self.doubleSpinBoxS) |
|
80 |
self.formLayout.setLayout(2, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_5) |
|
81 |
self.horizontalLayout_3 = QtWidgets.QHBoxLayout() |
|
82 |
self.horizontalLayout_3.setObjectName("horizontalLayout_3") |
|
83 |
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) |
|
84 |
self.horizontalLayout_3.addItem(spacerItem) |
|
85 |
self.pushButtonImport = QtWidgets.QPushButton(ImportTextFromCADDialog) |
|
86 |
self.pushButtonImport.setObjectName("pushButtonImport") |
|
87 |
self.horizontalLayout_3.addWidget(self.pushButtonImport) |
|
88 |
self.pushButtonClose = QtWidgets.QPushButton(ImportTextFromCADDialog) |
|
89 |
self.pushButtonClose.setObjectName("pushButtonClose") |
|
90 |
self.horizontalLayout_3.addWidget(self.pushButtonClose) |
|
91 |
self.formLayout.setLayout(4, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_3) |
|
92 |
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) |
|
93 |
self.formLayout.setItem(3, QtWidgets.QFormLayout.FieldRole, spacerItem1) |
|
94 |
self.verticalLayout.addLayout(self.formLayout) |
|
95 |
self.errorLabel = QtWidgets.QLabel(ImportTextFromCADDialog) |
|
96 |
self.errorLabel.setMaximumSize(QtCore.QSize(16777215, 0)) |
|
97 |
self.errorLabel.setStyleSheet("") |
|
98 |
self.errorLabel.setText("") |
|
99 |
self.errorLabel.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) |
|
100 |
self.errorLabel.setObjectName("errorLabel") |
|
101 |
self.verticalLayout.addWidget(self.errorLabel) |
|
102 |
|
|
103 |
self.retranslateUi(ImportTextFromCADDialog) |
|
104 |
QtCore.QMetaObject.connectSlotsByName(ImportTextFromCADDialog) |
|
105 |
|
|
106 |
def retranslateUi(self, ImportTextFromCADDialog): |
|
107 |
_translate = QtCore.QCoreApplication.translate |
|
108 |
ImportTextFromCADDialog.setWindowTitle(_translate("ImportTextFromCADDialog", "Import Text From CAD")) |
|
109 |
self.label.setText(_translate("ImportTextFromCADDialog", "ID2 : ")) |
|
110 |
self.toolButton.setText(_translate("ImportTextFromCADDialog", "...")) |
|
111 |
self.label_2.setText(_translate("ImportTextFromCADDialog", "CAD : ")) |
|
112 |
self.toolButton_2.setText(_translate("ImportTextFromCADDialog", "...")) |
|
113 |
self.label_3.setText(_translate("ImportTextFromCADDialog", "X offset : ")) |
|
114 |
self.label_5.setText(_translate("ImportTextFromCADDialog", " Y offset : ")) |
|
115 |
self.label_4.setText(_translate("ImportTextFromCADDialog", " Scale : ")) |
|
116 |
self.pushButtonImport.setText(_translate("ImportTextFromCADDialog", "Import")) |
|
117 |
self.pushButtonClose.setText(_translate("ImportTextFromCADDialog", "Close")) |
|
118 |
|
|
119 |
|
|
120 |
if __name__ == "__main__": |
|
121 |
import sys |
|
122 |
app = QtWidgets.QApplication(sys.argv) |
|
123 |
ImportTextFromCADDialog = QtWidgets.QDialog() |
|
124 |
ui = Ui_ImportTextFromCADDialog() |
|
125 |
ui.setupUi(ImportTextFromCADDialog) |
|
126 |
ImportTextFromCADDialog.show() |
|
127 |
sys.exit(app.exec_()) |
|
128 |
|
DTI_PID/DTI_PID/MainWindow.py | ||
---|---|---|
58 | 58 |
from TextItemFactory import TextItemFactory |
59 | 59 |
from TrainingImageListDialog import QTrainingImageListDialog |
60 | 60 |
from TextDataListDialog import QTextDataListDialog |
61 |
from ImportTextFromCADDialog import QImportTextFromCADDialog |
|
61 | 62 |
from DisplayColors import DisplayColors |
62 | 63 |
from DisplayColors import DisplayOptions |
63 | 64 |
import uuid |
... | ... | |
218 | 219 |
self.actionVendor.triggered.connect(self.onVendor) |
219 | 220 |
self.actionFitWindow.triggered.connect(self.fitWindow) |
220 | 221 |
self.actionpdf_to_image.triggered.connect(self.onConvertPDFToImage) |
222 |
self.actionImport_Text_From_CAD.triggered.connect(self.onImportTextFromCAD) |
|
221 | 223 |
#self.graphicsView.scene.changed.connect(self.onSceneChanged) |
222 | 224 |
self.graphicsView.scene.contents_changed.connect(self.onSceneChanged) |
223 | 225 |
self.graphicsView.scene.selectionChanged.connect(self.onSelectionChanged) |
... | ... | |
770 | 772 |
filePath = os.path.join(os.path.dirname(os.path.realpath(__file__)) , 'bin64', 'PDF_TO_IMAGE.exe') |
771 | 773 |
subprocess.call(filePath, shell = False) |
772 | 774 |
except Exception as ex: |
773 |
print('error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno)) |
|
775 |
message = 'error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno) |
|
776 |
self.addMessage.emit(MessageType.Error, message) |
|
777 |
|
|
778 |
def onImportTextFromCAD(self): |
|
779 |
''' |
|
780 |
import text from cad |
|
781 |
''' |
|
782 |
try: |
|
783 |
self.onCommandRejected() |
|
784 |
dialog = QImportTextFromCADDialog(self) |
|
785 |
dialog.exec_() |
|
786 |
except Exception as ex: |
|
787 |
message = 'error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno) |
|
788 |
self.addMessage.emit(MessageType.Error, message) |
|
789 |
|
|
774 | 790 |
|
775 | 791 |
''' |
776 | 792 |
@brief selection changed |
DTI_PID/DTI_PID/MainWindow_UI.py | ||
---|---|---|
2 | 2 |
|
3 | 3 |
# Form implementation generated from reading ui file './UI/MainWindow.ui' |
4 | 4 |
# |
5 |
# Created by: PyQt5 UI code generator 5.12
|
|
5 |
# Created by: PyQt5 UI code generator 5.11.3
|
|
6 | 6 |
# |
7 | 7 |
# WARNING! All changes made in this file will be lost! |
8 | 8 |
|
9 | 9 |
from PyQt5 import QtCore, QtGui, QtWidgets |
10 | 10 |
|
11 |
|
|
12 | 11 |
class Ui_MainWindow(object): |
13 | 12 |
def setupUi(self, MainWindow): |
14 | 13 |
MainWindow.setObjectName("MainWindow") |
... | ... | |
441 | 440 |
self.actionViewVendor_Area.setCheckable(True) |
442 | 441 |
self.actionViewVendor_Area.setChecked(True) |
443 | 442 |
self.actionViewVendor_Area.setObjectName("actionViewVendor_Area") |
443 |
self.actionImport_Text_From_CAD = QtWidgets.QAction(MainWindow) |
|
444 |
self.actionImport_Text_From_CAD.setObjectName("actionImport_Text_From_CAD") |
|
444 | 445 |
self.menu.addAction(self.actionOpen) |
445 | 446 |
self.menu.addAction(self.actionArea) |
446 | 447 |
self.menu.addAction(self.actionConfiguration) |
... | ... | |
465 | 466 |
self.menu_3.addSeparator() |
466 | 467 |
self.menu_3.addAction(self.actionDrawing_Only) |
467 | 468 |
self.menu_4.addAction(self.actionpdf_to_image) |
469 |
self.menu_4.addAction(self.actionImport_Text_From_CAD) |
|
468 | 470 |
self.menu_5.addAction(self.actionFindReplaceText) |
469 | 471 |
self.menu_5.addAction(self.actionText_Data_List) |
470 | 472 |
self.menubar.addAction(self.menu.menuAction()) |
... | ... | |
578 | 580 |
self.actionVendor.setText(_translate("MainWindow", "Vendor")) |
579 | 581 |
self.actionVendor.setToolTip(_translate("MainWindow", "Set Vendor Package")) |
580 | 582 |
self.actionViewVendor_Area.setText(_translate("MainWindow", "Vendor Area(7)")) |
581 |
|
|
583 |
self.actionImport_Text_From_CAD.setText(_translate("MainWindow", "Import Text From CAD")) |
|
582 | 584 |
|
583 | 585 |
import MainWindow_rc |
586 |
|
|
587 |
if __name__ == "__main__": |
|
588 |
import sys |
|
589 |
app = QtWidgets.QApplication(sys.argv) |
|
590 |
MainWindow = QtWidgets.QMainWindow() |
|
591 |
ui = Ui_MainWindow() |
|
592 |
ui.setupUi(MainWindow) |
|
593 |
MainWindow.show() |
|
594 |
sys.exit(app.exec_()) |
|
595 |
|
DTI_PID/DTI_PID/ProjectDialog.py | ||
---|---|---|
80 | 80 |
options = QFileDialog.Options() |
81 | 81 |
options |= QFileDialog.DontUseNativeDialog |
82 | 82 |
options |= QFileDialog.ShowDirsOnly |
83 |
selectedDir = QFileDialog.getExistingDirectory(None, _translate('Project Dialog', "Select Project Path"), os.getcwd() , options=options)
|
|
83 |
selectedDir = QFileDialog.getExistingDirectory(None, _translate('Project Dialog', "Select Project Path"), os.getcwd(), options=options) |
|
84 | 84 |
if selectedDir: |
85 | 85 |
prj_unit = self.ui.comboBoxProjectUnit.currentText() |
86 | 86 |
self.insertProjectInfo(dir=selectedDir, desc=self.ui.lineEditProjectDesc.text(), prj_unit=prj_unit) |
DTI_PID/DTI_PID/SpecBreakDialog.py | ||
---|---|---|
1 | 1 |
# coding: utf-8 |
2 | 2 |
""" |
3 |
This is area configuration module
|
|
3 |
This is spec break item seeting module
|
|
4 | 4 |
""" |
5 | 5 |
import os |
6 | 6 |
import sys |
7 |
#sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)) + '\\Commands') |
|
8 | 7 |
from PyQt5.QtCore import * |
9 | 8 |
from PyQt5.QtGui import * |
10 | 9 |
from PyQt5.QtWidgets import * |
11 | 10 |
from AppDocData import AppDocData |
12 | 11 |
|
13 |
#sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)) + '\\Shapes') |
|
14 | 12 |
import SpecBreak_UI |
15 | 13 |
|
16 | 14 |
class QSpecBreakDialog(QDialog): |
DTI_PID/DTI_PID/UI/ImportTextFromCAD.ui | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<ui version="4.0"> |
|
3 |
<class>ImportTextFromCADDialog</class> |
|
4 |
<widget class="QDialog" name="ImportTextFromCADDialog"> |
|
5 |
<property name="geometry"> |
|
6 |
<rect> |
|
7 |
<x>0</x> |
|
8 |
<y>0</y> |
|
9 |
<width>650</width> |
|
10 |
<height>143</height> |
|
11 |
</rect> |
|
12 |
</property> |
|
13 |
<property name="minimumSize"> |
|
14 |
<size> |
|
15 |
<width>650</width> |
|
16 |
<height>79</height> |
|
17 |
</size> |
|
18 |
</property> |
|
19 |
<property name="maximumSize"> |
|
20 |
<size> |
|
21 |
<width>650</width> |
|
22 |
<height>200</height> |
|
23 |
</size> |
|
24 |
</property> |
|
25 |
<property name="font"> |
|
26 |
<font> |
|
27 |
<family>맑은 고딕</family> |
|
28 |
<weight>75</weight> |
|
29 |
<bold>true</bold> |
|
30 |
</font> |
|
31 |
</property> |
|
32 |
<property name="windowTitle"> |
|
33 |
<string>Import Text From CAD</string> |
|
34 |
</property> |
|
35 |
<layout class="QVBoxLayout" name="verticalLayout"> |
|
36 |
<item> |
|
37 |
<layout class="QFormLayout" name="formLayout"> |
|
38 |
<property name="verticalSpacing"> |
|
39 |
<number>4</number> |
|
40 |
</property> |
|
41 |
<item row="0" column="1"> |
|
42 |
<layout class="QHBoxLayout" name="horizontalLayout"> |
|
43 |
<item> |
|
44 |
<widget class="QLabel" name="label"> |
|
45 |
<property name="minimumSize"> |
|
46 |
<size> |
|
47 |
<width>50</width> |
|
48 |
<height>0</height> |
|
49 |
</size> |
|
50 |
</property> |
|
51 |
<property name="text"> |
|
52 |
<string>ID2 : </string> |
|
53 |
</property> |
|
54 |
</widget> |
|
55 |
</item> |
|
56 |
<item> |
|
57 |
<widget class="QLineEdit" name="lineEditID2"/> |
|
58 |
</item> |
|
59 |
<item> |
|
60 |
<widget class="QToolButton" name="toolButton"> |
|
61 |
<property name="text"> |
|
62 |
<string>...</string> |
|
63 |
</property> |
|
64 |
</widget> |
|
65 |
</item> |
|
66 |
</layout> |
|
67 |
</item> |
|
68 |
<item row="1" column="1"> |
|
69 |
<layout class="QHBoxLayout" name="horizontalLayout_2"> |
|
70 |
<item> |
|
71 |
<widget class="QLabel" name="label_2"> |
|
72 |
<property name="minimumSize"> |
|
73 |
<size> |
|
74 |
<width>50</width> |
|
75 |
<height>0</height> |
|
76 |
</size> |
|
77 |
</property> |
|
78 |
<property name="text"> |
|
79 |
<string>CAD : </string> |
|
80 |
</property> |
|
81 |
</widget> |
|
82 |
</item> |
|
83 |
<item> |
|
84 |
<widget class="QLineEdit" name="lineEditCAD"/> |
|
85 |
</item> |
|
86 |
<item> |
|
87 |
<widget class="QToolButton" name="toolButton_2"> |
|
88 |
<property name="text"> |
|
89 |
<string>...</string> |
|
90 |
</property> |
|
91 |
</widget> |
|
92 |
</item> |
|
93 |
</layout> |
|
94 |
</item> |
|
95 |
<item row="2" column="1"> |
|
96 |
<layout class="QHBoxLayout" name="horizontalLayout_5"> |
|
97 |
<item> |
|
98 |
<widget class="QLabel" name="label_3"> |
|
99 |
<property name="maximumSize"> |
|
100 |
<size> |
|
101 |
<width>60</width> |
|
102 |
<height>16777215</height> |
|
103 |
</size> |
|
104 |
</property> |
|
105 |
<property name="text"> |
|
106 |
<string>X offset : </string> |
|
107 |
</property> |
|
108 |
</widget> |
|
109 |
</item> |
|
110 |
<item> |
|
111 |
<widget class="QDoubleSpinBox" name="doubleSpinBoxX"> |
|
112 |
<property name="maximum"> |
|
113 |
<double>10000.000000000000000</double> |
|
114 |
</property> |
|
115 |
</widget> |
|
116 |
</item> |
|
117 |
<item> |
|
118 |
<widget class="QLabel" name="label_5"> |
|
119 |
<property name="maximumSize"> |
|
120 |
<size> |
|
121 |
<width>60</width> |
|
122 |
<height>16777215</height> |
|
123 |
</size> |
|
124 |
</property> |
|
125 |
<property name="text"> |
|
126 |
<string> Y offset : </string> |
|
127 |
</property> |
|
128 |
</widget> |
|
129 |
</item> |
|
130 |
<item> |
|
131 |
<widget class="QDoubleSpinBox" name="doubleSpinBoxY"> |
|
132 |
<property name="maximum"> |
|
133 |
<double>10000.000000000000000</double> |
|
134 |
</property> |
|
135 |
</widget> |
|
136 |
</item> |
|
137 |
<item> |
|
138 |
<widget class="QLabel" name="label_4"> |
|
139 |
<property name="maximumSize"> |
|
140 |
<size> |
|
141 |
<width>60</width> |
|
142 |
<height>16777215</height> |
|
143 |
</size> |
|
144 |
</property> |
|
145 |
<property name="text"> |
|
146 |
<string> Scale : </string> |
|
147 |
</property> |
|
148 |
</widget> |
|
149 |
</item> |
|
150 |
<item> |
|
151 |
<widget class="QDoubleSpinBox" name="doubleSpinBoxS"> |
|
152 |
<property name="decimals"> |
|
153 |
<number>5</number> |
|
154 |
</property> |
|
155 |
<property name="maximum"> |
|
156 |
<double>1000.000000000000000</double> |
|
157 |
</property> |
|
158 |
</widget> |
|
159 |
</item> |
|
160 |
</layout> |
|
161 |
</item> |
|
162 |
<item row="4" column="1"> |
|
163 |
<layout class="QHBoxLayout" name="horizontalLayout_3"> |
|
164 |
<item> |
|
165 |
<spacer name="horizontalSpacer"> |
|
166 |
<property name="orientation"> |
|
167 |
<enum>Qt::Horizontal</enum> |
|
168 |
</property> |
|
169 |
<property name="sizeHint" stdset="0"> |
|
170 |
<size> |
|
171 |
<width>40</width> |
|
172 |
<height>20</height> |
|
173 |
</size> |
|
174 |
</property> |
|
175 |
</spacer> |
|
176 |
</item> |
|
177 |
<item> |
|
178 |
<widget class="QPushButton" name="pushButtonImport"> |
|
179 |
<property name="text"> |
|
180 |
<string>Import</string> |
|
181 |
</property> |
|
182 |
</widget> |
|
183 |
</item> |
|
184 |
<item> |
|
185 |
<widget class="QPushButton" name="pushButtonClose"> |
|
186 |
<property name="text"> |
|
187 |
<string>Close</string> |
|
188 |
</property> |
|
189 |
</widget> |
|
190 |
</item> |
|
191 |
</layout> |
|
192 |
</item> |
|
193 |
<item row="3" column="1"> |
|
194 |
<spacer name="verticalSpacer"> |
|
195 |
<property name="orientation"> |
|
196 |
<enum>Qt::Vertical</enum> |
|
197 |
</property> |
|
198 |
<property name="sizeHint" stdset="0"> |
|
199 |
<size> |
|
200 |
<width>20</width> |
|
201 |
<height>40</height> |
|
202 |
</size> |
|
203 |
</property> |
|
204 |
</spacer> |
|
205 |
</item> |
|
206 |
</layout> |
|
207 |
</item> |
|
208 |
<item> |
|
209 |
<widget class="QLabel" name="errorLabel"> |
|
210 |
<property name="maximumSize"> |
|
211 |
<size> |
|
212 |
<width>16777215</width> |
|
213 |
<height>0</height> |
|
214 |
</size> |
|
215 |
</property> |
|
216 |
<property name="styleSheet"> |
|
217 |
<string notr="true"/> |
|
218 |
</property> |
|
219 |
<property name="text"> |
|
220 |
<string/> |
|
221 |
</property> |
|
222 |
<property name="alignment"> |
|
223 |
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> |
|
224 |
</property> |
|
225 |
</widget> |
|
226 |
</item> |
|
227 |
</layout> |
|
228 |
</widget> |
|
229 |
<resources/> |
|
230 |
<connections/> |
|
231 |
</ui> |
DTI_PID/DTI_PID/UI/MainWindow.ui | ||
---|---|---|
103 | 103 |
<string>Tool</string> |
104 | 104 |
</property> |
105 | 105 |
<addaction name="actionpdf_to_image"/> |
106 |
<addaction name="actionImport_Text_From_CAD"/> |
|
106 | 107 |
</widget> |
107 | 108 |
<widget class="QMenu" name="menu_5"> |
108 | 109 |
<property name="title"> |
... | ... | |
966 | 967 |
<string>Vendor Area(7)</string> |
967 | 968 |
</property> |
968 | 969 |
</action> |
970 |
<action name="actionImport_Text_From_CAD"> |
|
971 |
<property name="text"> |
|
972 |
<string>Import Text From CAD</string> |
|
973 |
</property> |
|
974 |
</action> |
|
969 | 975 |
</widget> |
970 | 976 |
<resources> |
971 | 977 |
<include location="../res/MainWindow.qrc"/> |
내보내기 Unified diff