def tallenin(self): '''Suorittaa tiedoston tallennuksen''' pvm = str(datetime.date.today()) palkin_pituus = Ominaisuudet.palauta_palkin_pituus(self) pituuden_yksikko = Ominaisuudet.palauta_pituuden_yksikko(self) voiman_suuruus = Ominaisuudet.palauta_voima(self) voiman_yksikko = Ominaisuudet.palauta_voiman_yksikko(self) materiaali = Ominaisuudet.palauta_materiaali(self) tuen_tyyppi = Ominaisuudet.palauta_tuen_tyyppi(self) ulkoinen_voima_asetettu = Ominaisuudet.onko_ulkoinen_voima_asetettu( self) tiedostonimi = QFileDialog.getSaveFileName( self, "Tallenna tiedosto", "", "Text Files (*);;Text Files (*.txt)") try: tiedosto = open(tiedostonimi[0], 'w') except FileNotFoundError: return teksti = "Lujuusanalysaattori" + "\n"\ + pvm + "\n" \ + str(palkin_pituus) +"\n"\ + str(pituuden_yksikko) + "\n"\ + str(voiman_suuruus) + "\n"\ + str(voiman_yksikko) + "\n"\ + str(materiaali) + "\n"\ + str(tuen_tyyppi) + "\n"\ + str(ulkoinen_voima_asetettu) tiedosto.write(teksti) tiedosto.close() return True
def laskin(self): '''Ladataan tarvittavat muuttujat''' sivun_pituus = 0.2 #Neliönmuotoisen palkin sivun pituus metreinä voima = float(Ominaisuudet.palauta_voima(self)) pituus = float(Ominaisuudet.palauta_palkin_pituus(self)) pituuden_yksikko = float(Ominaisuudet.palauta_pituuden_yksikko(self)) voiman_yksikko = float(Ominaisuudet.palauta_voiman_yksikko(self)) tuen_tyyppi = int(Ominaisuudet.palauta_tuen_tyyppi(self)) ulkoinen_voima = int(Ominaisuudet.onko_ulkoinen_voima_asetettu(self)) palkin_paino = pituus * sivun_pituus**2 * 7850 * 9.81 * 10**-3 '''Asetetaan kertoimia yksikkömuunnosten tekemiseksi''' if voiman_yksikko == 0: voimakerroin = 1000 if voiman_yksikko == 1: voimakerroin = 1 if pituuden_yksikko == 0: pituuskerroin = 1 if pituuden_yksikko == 1: pituuskerroin = 10**-2 if pituuden_yksikko == 2: pituuskerroin = 10**-3 if tuen_tyyppi == 0: '''Sivutuki''' if ulkoinen_voima == 1: '''Ulkoinen voima asetettu''' maks_jannitys = ( (6 * voima * pituus) / (sivun_pituus**3) * 10**-6) * voimakerroin * pituuskerroin Ominaisuudet.simulaation_tulos(self, int(maks_jannitys)) if ulkoinen_voima == 0: '''ulkoinen voima ei asetettu, 7850 teräksen tiheys''' maks_jannitys = ( (6 * palkin_paino * (pituus / 2)) / (sivun_pituus**3) * 10**-6) * voimakerroin * pituuskerroin Ominaisuudet.simulaation_tulos(self, int(maks_jannitys)) if tuen_tyyppi == 1: '''Alatuki''' if ulkoinen_voima == 1: vastaus = (3 / 2) * ( (voima * pituus) / (sivun_pituus**3) * 10**-6) * voimakerroin * pituuskerroin Ominaisuudet.simulaation_tulos(self, int(vastaus)) if ulkoinen_voima == 0: vastaus = (3 / 2) * ( (palkin_paino * pituus) / (sivun_pituus**3) * 10**-6) * voimakerroin * pituuskerroin Ominaisuudet.simulaation_tulos(self, int(vastaus))
def paivita_asteikon_arvot(self): '''Päivittää palkin pituutta kuvaavan asteikon''' yksikko = Ominaisuudet.palauta_pituuden_yksikko(self) if yksikko == 0: self.yksikko_merkki = "m" if yksikko == 1: self.yksikko_merkki = "cm" if yksikko == 2: self.yksikko_merkki = "mm" pituus = float(Ominaisuudet.palauta_palkin_pituus(self)) teksti = str(str(pituus) + " " + self.yksikko_merkki) self.asteikko_teksti.setText(teksti) self.asteikko_teksti.show()
def yksikko_pituus(self): '''Luo yksikönvalinta dropdown-menun ja arvon muuttuessa päivittää yksikön Ominaisuudet-luokassa''' self.yksikko = QComboBox() self.yksikko.addItem("m", 0) self.yksikko.addItem("cm", 1) self.yksikko.addItem("mm", 2) self.yksikko.move(500, 5) self.yksikko.setMinimumHeight(30) self.yksikko.setEditable(True) self.yksikko.lineEdit().setAlignment(QtCore.Qt.AlignCenter) self.yksikko.setCurrentIndex( Ominaisuudet.palauta_pituuden_yksikko(self)) self.scene.addWidget(self.yksikko) self.yksikko.hide() self.yksikko_arvo = self.yksikko.currentData() self.yksikko.currentIndexChanged.connect(self.paivita_yksikko)