From aecf9d94874b54f043c6415a20f3a5481fabf771 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80=20?= =?UTF-8?q?=D0=93=D0=B5=D0=BD=D0=BD=D0=B0=D0=B4=D1=8C=D0=B5=D0=B2=D0=B8?= =?UTF-8?q?=D1=87=20=D0=A1=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9?= Date: Thu, 18 Aug 2022 10:14:48 +0300 Subject: [PATCH] Initila commit --- main.py | 274 +++++++++++++++++++++++++++++++++++++++++++++++ requirements.txt | Bin 0 -> 224 bytes 2 files changed, 274 insertions(+) create mode 100644 main.py create mode 100644 requirements.txt diff --git a/main.py b/main.py new file mode 100644 index 0000000..19f3620 --- /dev/null +++ b/main.py @@ -0,0 +1,274 @@ +# -*- coding: utf-8 -*- +from numpy import mat +import wx +import wx.xrc +import math + + +class ResultDialog(wx.Dialog): + + def __init__(self, *args, **kw): + super(ResultDialog, self).__init__(*args, **kw) + + self.InitUI() + self.SetSize((250, 200)) + self.SetTitle("Итоги рассчёта") + + def InitUI(self): + + pnl = wx.Panel(self) + vbox = wx.BoxSizer(wx.VERTICAL) + + sb = wx.StaticBox(pnl, label='Colors') + sbs = wx.StaticBoxSizer(sb, orient=wx.VERTICAL) + sbs.Add(wx.RadioButton(pnl, label='256 Colors', + style=wx.RB_GROUP)) + sbs.Add(wx.RadioButton(pnl, label='16 Colors')) + sbs.Add(wx.RadioButton(pnl, label='2 Colors')) + + hbox1 = wx.BoxSizer(wx.HORIZONTAL) + hbox1.Add(wx.RadioButton(pnl, label='Custom')) + hbox1.Add(wx.TextCtrl(pnl), flag=wx.LEFT, border=5) + sbs.Add(hbox1) + + pnl.SetSizer(sbs) + + hbox2 = wx.BoxSizer(wx.HORIZONTAL) + okButton = wx.Button(self, label='Ok') + closeButton = wx.Button(self, label='Close') + hbox2.Add(okButton) + hbox2.Add(closeButton, flag=wx.LEFT, border=5) + + vbox.Add(pnl, proportion=1, + flag=wx.ALL | wx.EXPAND, border=5) + vbox.Add(hbox2, flag=wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, border=10) + + self.SetSizer(vbox) + + okButton.Bind(wx.EVT_BUTTON, self.OnClose) + closeButton.Bind(wx.EVT_BUTTON, self.OnClose) + + def OnClose(self, e): + + self.Destroy() + + +class MyFrame1 (wx.Frame): + + def __init__(self, parent): + wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString, pos=wx.DefaultPosition, size=wx.Size( + 904, 538), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL) + + self.SetSizeHints(wx.DefaultSize, wx.DefaultSize) + self.SetForegroundColour( + wx.SystemSettings.GetColour(wx.SYS_COLOUR_INFOTEXT)) + self.SetBackgroundColour( + wx.SystemSettings.GetColour(wx.SYS_COLOUR_INFOBK)) + + bSizer4 = wx.BoxSizer(wx.VERTICAL) + + self.LabelMadi = wx.StaticText( + self, wx.ID_ANY, u"Московский автомобильно-дорожный государственный технический университет (МАДИ)", wx.DefaultPosition, wx.DefaultSize, 0) + self.LabelMadi.Wrap(-1) + + self.LabelMadi.SetForegroundColour( + wx.SystemSettings.GetColour(wx.SYS_COLOUR_INFOTEXT)) + + bSizer4.Add(self.LabelMadi, 0, wx.ALL | + wx.ALIGN_CENTER_HORIZONTAL, 5) + + self.LabelKafedra = wx.StaticText( + self, wx.ID_ANY, u"Кафедра дорожные машины", wx.DefaultPosition, wx.DefaultSize, 0) + self.LabelKafedra.Wrap(-1) + + self.LabelKafedra.SetForegroundColour( + wx.SystemSettings.GetColour(wx.SYS_COLOUR_INFOTEXT)) + + bSizer4.Add(self.LabelKafedra, 0, wx.ALL | + wx.ALIGN_CENTER_HORIZONTAL, 5) + + gSizer10 = wx.GridSizer(0, 2, 0, 0) + + self.labelShirinaTransei = wx.StaticText( + self, wx.ID_ANY, u"Введите ширину траншеи (0.2 - 1.5)м", wx.DefaultPosition, wx.DefaultSize, 0) + self.labelShirinaTransei.Wrap(-1) + gSizer10.Add(self.labelShirinaTransei, 0, wx.ALL, 5) + + self.inputShirinaTransei = wx.TextCtrl( + self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) + gSizer10.Add(self.inputShirinaTransei, 0, wx.ALL, 5) + + self.labelGlubinaTransei = wx.StaticText( + self, wx.ID_ANY, u"Введите глубину траншеи (0.1 - 4)м", wx.DefaultPosition, wx.DefaultSize, 0) + self.labelGlubinaTransei.Wrap(-1) + + gSizer10.Add(self.labelGlubinaTransei, 0, wx.ALL, 5) + + self.InputGlubinaTransei = wx.TextCtrl( + self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) + gSizer10.Add(self.InputGlubinaTransei, 0, wx.ALL, 5) + + self.LabelDlinaTransei = wx.StaticText( + self, wx.ID_ANY, u"Введите длину траншеи (>5)м", wx.DefaultPosition, wx.DefaultSize, 0) + self.LabelDlinaTransei.Wrap(-1) + + gSizer10.Add(self.LabelDlinaTransei, 0, wx.ALL, 5) + + self.InputDlinaTransei = wx.TextCtrl( + self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) + gSizer10.Add(self.InputDlinaTransei, 0, wx.ALL, 5) + + self.LabelKolvoKovsei = wx.StaticText( + self, wx.ID_ANY, u"Введите количество ковшей (6-30) шт", wx.DefaultPosition, wx.DefaultSize, 0) + self.LabelKolvoKovsei.Wrap(-1) + + gSizer10.Add(self.LabelKolvoKovsei, 0, wx.ALL, 5) + + self.InputKolvoKovsei = wx.TextCtrl( + self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) + gSizer10.Add(self.InputKolvoKovsei, 0, wx.ALL, 5) + + self.LabelWorkTime = wx.StaticText( + self, wx.ID_ANY, u"Введите время на работу (>60) с", wx.DefaultPosition, wx.DefaultSize, 0) + self.LabelWorkTime.Wrap(-1) + + gSizer10.Add(self.LabelWorkTime, 0, wx.ALL, 5) + + self.IntputWorkTime = wx.TextCtrl( + self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) + gSizer10.Add(self.IntputWorkTime, 0, wx.ALL, 5) + + bSizer4.Add(gSizer10, 1, wx.EXPAND, 5) + + self.calculation = wx.Button( + self, wx.ID_ANY, u"Рассчитать", wx.DefaultPosition, wx.DefaultSize, 0) + bSizer4.Add(self.calculation, 0, wx.ALL | + wx.ALIGN_CENTER_HORIZONTAL, 5) + + self.calculation.Bind(wx.EVT_BUTTON, self.rass) + + self.SetSizer(bSizer4) + self.Layout() + + self.Centre(wx.BOTH) + + def errPole(self): + self.dlgResult = wx.MessageDialog( + self, 'Введено не число. Исправьте для продолжения', 'Ошибка', wx.OK) + self.val = self.dlgResult.ShowModal() + if self.val == wx.ID_OK: + self.dlgResult.Destroy() + + def errNull(self): + self.dlgResult = wx.MessageDialog( + self, 'Не все поля заполнены. Заполните все поля перед продолжением', 'Ошибка', wx.OK) + self.val = self.dlgResult.ShowModal() + if self.val == wx.ID_OK: + self.dlgResult.Destroy() + + def errData(self): + self.dlgResult = wx.MessageDialog( + self, 'Введены неверные данные. Исправьте для продолжения работы', 'Ошибка', wx.OK) + self.val = self.dlgResult.ShowModal() + if self.val == wx.ID_OK: + self.dlgResult.Destroy() + + def toFixed(numObj, digits=0): + return f"{numObj:.{digits}f}" + + def rass(self, event): + + if len(self.inputShirinaTransei.GetValue()) == 0: + self.errNull() + return + + if len(self.InputGlubinaTransei.GetValue()) == 0: + self.errNull() + return + + if len(self.InputDlinaTransei.GetValue()) == 0: + self.errNull() + return + + if len(self.InputKolvoKovsei.GetValue()) == 0: + self.errNull() + return + + if len(self.IntputWorkTime.GetValue()) == 0: + self.errNull() + return + + if self.inputShirinaTransei.GetValue().replace('.', '', 1).isdigit() == False: + self.errPole() + return + + if self.InputGlubinaTransei.GetValue().replace('.', '', 1).isdigit() == False: + self.errPole() + return + + if self.InputDlinaTransei.GetValue().isnumeric() == False: + self.errPole() + return + + if self.InputKolvoKovsei.GetValue().isnumeric() == False: + self.errPole() + return + + if self.IntputWorkTime.GetValue().isnumeric() == False: + self.errPole() + return + + self.Btp = float(self.inputShirinaTransei.GetValue()) + self.Htp = float(self.InputGlubinaTransei.GetValue()) + self.lk = float(self.InputDlinaTransei.GetValue()) + self.zk = float(self.InputKolvoKovsei.GetValue()) + self.trab = float(self.IntputWorkTime.GetValue()) + + if (self.Btp > 1.5 or self.Btp < 0.2): + self.errData() + + return + + if (self.Htp > 4 or self.Htp < 0.1): + self.Data() + return + + if (self.lk < 5): + self.errData() + return + + if (self.zk < 6 or self.zk > 30): + self.errData() + return + + if (self.trab < 60): + self.errPole() + return + + self.qx = self.Btp * self.Htp * self.lk + self.veks = self.lk / self.trab + self.omegap = (2 * math.pi * self.Btp * self.Htp * + self.veks) / (self.zk * self.qx) + + self.Pm = (self.qx * self.zk * self.omegap) / (2 * math.pi) + + self.rsz = "qk = " + str(self.qx) + "\t м^3 \n" +\ + "Vэкс = " + str(self.veks) + "\t м/c \n" + \ + "Wp = " + str(self.omegap) + "\t c ^-1 \n" + \ + "Пm = " + str(self.Pm) + "\t м^3/c \n" + + self.dlgResult = wx.MessageDialog( + self, self.rsz, 'Результаты расчёта', wx.OK) + self.dlgResult.ShowModal() + if self.dlgResult == wx.ID_OK: + self.dlgResult.Destroy() + + def __del__(self): + pass + + +if __name__ == '__main__': + app = wx.App(False) + panel = MyFrame1(parent=None) + panel.Show() + app.MainLoop() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..a636b012754fdd30f9075688937713983a12f456 GIT binary patch literal 224 zcmYk0K?;LV3`A#L@G3=rrRc&tcm+|Rg{lQD>g8=;Qus(nHg9G!-=on-izdC*vxO=q z(^YpiRicYV6a#FJEGR&4PHR2&VkWK5ONjaZUURjuj`W#7JIda5mQY09Ov)DXv(tC$ cHsG>esb|{_{(Hq!ley@DYIIHR8tY))e}zpTNdN!< literal 0 HcmV?d00001