Пример #1
0
    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
Пример #2
0
 def ulkoinen_voima_valikko(self):
     '''Luo voiman suuruus -tekstin'''
     self.ulkoinen_voima = QGraphicsSimpleTextItem("Voiman suuruus")
     self.ulkoinen_voima.setPos(600, 5)
     self.ulkoinen_voima.font = QtGui.QFont()
     self.ulkoinen_voima.font.setPointSize(12)
     self.ulkoinen_voima.setFont(self.ulkoinen_voima.font)
     self.lisaa_ulkoinen_voima.setEnabled(False)
     self.scene.addItem(self.ulkoinen_voima)
     self.ulkoinen_voima.hide()
     '''Luo voiman arvon QSpinBoxin'''
     self.sp_voima = QSpinBox()
     self.sp_voima.move(750, 5)
     self.sp_voima.setRange(0, 10000)
     self.sp_voima.setSingleStep(1)
     self.sp_voima.setMinimumHeight(30)
     self.sp_voima.setValue(int(Ominaisuudet.palauta_voima(self)))
     self.sp_voima.valueChanged.connect(self.paivita_voima)
     self.scene.addWidget(self.sp_voima)
     self.sp_voima.hide()
     '''Luo yksikönvalinta QComboBOxin'''
     self.yksikko_voima = QComboBox()
     self.yksikko_voima.addItem("kN", 0)
     self.yksikko_voima.addItem("N", 1)
     self.yksikko_voima.move(820, 5)
     self.yksikko_voima.setMinimumHeight(30)
     self.yksikko_voima.setCurrentIndex(
         int(Ominaisuudet.palauta_voiman_yksikko(self)))
     self.yksikko_voima.setEditable(True)
     self.yksikko_voima.lineEdit().setAlignment(QtCore.Qt.AlignCenter)
     self.scene.addWidget(self.yksikko_voima)
     self.yksikko_voima.currentIndexChanged.connect(
         self.paivita_yksikko_voima)
     self.yksikko_voima.hide()
Пример #3
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))