Professional Documents
Culture Documents
Системи автоматизації конструкторського проектування Лабораторна Робота №2
Системи автоматизації конструкторського проектування Лабораторна Робота №2
Варіант №3
Виконала:
Варіченко Л.В.
Прийняв:
Корпильов Д.В.
Львів – 2023
2
Мета роботи
Вивчати послідовний метод компоновки конструктивних елементів по
комутаційним платам, отримання практичних навиків в рішенні задач
автоматизованого конструкторського проектування.
X1 X2 X3 X4 X5 X6 X7 X8
X1 0 1 0 1 1 1 1 0
X2 1 0 2 0 0 1 0 1
X3 0 2 0 0 0 1 1 2
C= X4 1 0 0 0 0 1 0 1
X5 1 0 0 0 0 0 1 1
X6 1 1 1 1 0 0 0 1
X7 1 0 1 0 1 0 0 1
X8 0 1 2 1 1 1 1 0
(X1) = 5
(X2) = 5
(X3) = 6
(X4) = 3
(X5) = 3
(X6) = 5
(X7) = 4
(X8) = 7
Рис.3. Граф G*
X2 X3 X5 X7 X8
X2 0 2 0 0 1
X3 2 0 0 1 2
C* =
X5 0 0 0 1 1
X7 0 1 1 0 1
X8 1 2 1 1 0
(X2) = 3
(X3) = 5
(X5) = 2
(X7) = 3
(X8) = 5
6
Висновок
В ході виконання лабораторної роботи вивчено послідовний метод
компоновки конструктивних елементів по комутаційним платам, отримано
практичні навики в рішенні задач автоматизованого конструкторського
проектування. На основі побудованого за заданою електричною схемою
графа та його матриці зв’язності здійснено розбиття графа на шматки
послідовним методом. Виконано програмну реалізацію представлення
розбиття графа мовою Python.
9
data = []
data.append(('0', '1', '0', '1', '1', '1', '1', '0'))
data.append(('1', '0', '2', '0', '0', '1', '0', '1'))
data.append(('0', '2', '0', '0', '0', '1', '1', '2'))
data.append(('1', '0', '0', '0', '0', '1', '0', '1'))
data.append(('1', '0', '0', '0', '0', '0', '1', '1'))
data.append(('1', '1', '1', '1', '0', '0', '0', '1'))
data.append(('1', '0', '1', '0', '1', '0', '0', '1'))
data.append(('0', '1', '2', '1', '1', '1', '1', '0'))
class MainWindow_LR2(QtWidgets.QMainWindow):
def __init__(self):
super(MainWindow_LR2, self).__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.setMinimumSize(1200, 980)
# self.resize(1400,1200) # Основне вікно
# self.ui.centralwidget.resize(1350,1250) # Основний віджет
self.ui.centralwidget.setMinimumSize(1200, 980)
# self.ui.tabWidget.resize(1350,1250)
self.ui.tabWidget.setMinimumSize(1200, 980)
# self.ui.tabWidgetPage1.resize(1500,1400)
# self.ui.tabWidgetPage1.setMinimumSize(1200, 900)
# self.ui.tabWidgetPage2.resize(1500,1400)
# self.ui.tableWidgetMatrix_2.resize(800,600)
# self.ui.tableWidget.resize(1000, 1000)
self.ui.Close_MainWin.setShortcut('Ctrl+Q')
self.ui.Close_MainWin.triggered.connect(self.exit)
self.ui.AboutProgram.triggered.connect(self.about_author)
self.ui.tableWidgetMatrix_2.horizontalHeaderItem(0).setTextAlignment(Qt.AlignHC
enter)
self.ui.tableWidgetMatrix_2.horizontalHeaderItem(1).setTextAlignment(Qt.AlignHC
enter)
self.ui.tableWidgetMatrix_2.horizontalHeaderItem(2).setTextAlignment(Qt.AlignHC
enter)
row = 0
for tup in data:
col = 0
for item in tup:
cellinfo = QTableWidgetItem(item)
self.ui.tableWidgetMatrix_2.setItem(row, col, cellinfo)
col += 1
row += 1
def clear(self):
self.ui.tableWidget.clear()
11
def exit(self):
self.close()
def about_author(self):
title = 'Про автора'
data = 'Виконала студентка групи КНІТ-11 Варіченко Лідія'
QMessageBox.about(self, title, data)
if __name__ == '__main__':
app = QtWidgets.QApplication([])
application = MainWindow_LR2()
application.show()
sys.exit(app.exec())