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
Example #2
0
    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))
Example #3
0
    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()
Example #4
0
 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)