Ejemplo n.º 1
0
    def generate_pdf_plain_state(self,
                                 language: str,
                                 pdf_path: Optional[str] = "pdf",
                                 filename: Optional[str] = "plain-state",
                                 clear=True):
        """
        creates a folder to generate the figure and logo into
        language: "EN" for english or "PT" for brazilian portuguese
        pdf_path: path where pdf will be generated
        clear: delete figures generated for pdf after pdf is generated
        """

        make_folder(pdf_path)
        make_figure_folder(pdf_path)

        self.pdfgen = pdf_generator(self, self.plain_state)
        figure = self.plot_plain_state()

        save_figure(figure, pdf_path + r"\figs\mohrfig")
        generate_logo(pdf_path)

        self.pdfgen.generate_pdf_plain_state(language, pdf_path, filename)

        if clear:
            delete_folder(pdf_path + r'\figs')
Ejemplo n.º 2
0
    def generate_pdf(self,
                     language: str,
                     pdf_path: Optional[str] = "pdf",
                     filename: Optional[str] = "cross-section",
                     clear=True):
        """
        creates a folder to generate the figure and logo into
        language: "EN" for english or "PT" for brazilian portuguese
        pdf_path: path where pdf will be generated
        clear: delete figures generated for pdf after pdf is generated
        """

        pdf_mode = self.determine_pdf_mode()
        if pdf_mode is None:
            raise ValueError("Not enough information to generate solution")

        make_folder(pdf_path)

        gen = pdf_generator(self, self.calc)

        if pdf_mode == "complete":
            make_figure_folder(pdf_path)

            figure = self.show_cross_section()

            save_figure(figure, pdf_path + r"\figs\sectransv")

        generate_logo(pdf_path)

        gen.generate_pdf(language, pdf_path, filename, pdf_mode)

        if clear:
            delete_folder(pdf_path + r'\figs')
Ejemplo n.º 3
0
    def static_solver(self, clean=True):
        if find_executable('latex'):
            if self.mw.show_moment.isEnabled():
                if (len(self.ss.supports_roll) == 1 and len(self.ss.supports_hinged) == 1) \
                        or (len(self.ss.supports_fixed) == 1):
                    dialog = QDialog()
                    prompt = PathPrompt(self.mw.language, dialog)
                    dialog.exec_()
                    if not prompt.userTerminated:
                        solve_path = prompt.path
                        file, ok = QFileDialog.getSaveFileName(
                            self.mw, self.mw.pdf_title, self.mw.pdf_text,
                            "PDF (*.pdf)")
                        if ok:
                            try:
                                self.mw.toolBox.setCurrentIndex(0)
                                pdf_dir, filename = split_dir_filename(file)
                                make_pdf_folders(pdf_dir)

                                self.ss.color_scheme = "bright"
                                plt.style.use('default')

                                mn = Manager(self.ss)

                                pdf_generator_thread = PDFGeneratorThread(
                                    mn.generate_pdf,
                                    self.mw.language,
                                    pdf_path=pdf_dir,
                                    filename=filename,
                                    solve_path=solve_path,
                                    path_warning=self.fn.path_warning,
                                )

                                self.fn.setupLoading(pdf_generator_thread)

                                pdf_generator_thread.finished.connect(
                                    self.on_finished)

                                pdf_generator_thread.start()
                                self.mw.loadingScreen.exec_()

                                if not self.mw.loadingUi.userTerminated:
                                    self.fn.pdf_generated_prompt()
                                if clean:
                                    delete_folder(pdf_dir)
                                self.ss.color_scheme = "dark"
                                plt.style.use('dark_background')

                            except:
                                self.fn.latex_packages_warning()
                else:
                    self.fn.static_warning()
            else:
                self.fn.warning()
        else:
            self.fn.latex_warning()
Ejemplo n.º 4
0
    def generator_thread(self, clean=True):
        if find_executable('latex'):
            if self.mng.plain_state.sigma_x is not None:
                file, ok = QFileDialog.getSaveFileName(self.mw, self.mw.pdf_title, self.mw.pdf_text, "PDF (*.pdf)")
                if ok:
                    try:
                        self.mw.toolBox.setCurrentIndex(2)
                        self.mw.MplWidget.fix_plot_scale()
                        pdf_dir, filename = split_dir_filename(file)
                        make_pdf_folders(pdf_dir)
                        if self.mw.radio_plane.isChecked():
                            pdf_generator_thread = PDFGeneratorThread(
                                self.mng.generate_pdf_plain_state,
                                self.mw.language,
                                pdf_path=pdf_dir,
                                filename=filename,
                            )
                        else:
                            pdf_generator_thread = PDFGeneratorThread(
                                self.mng.generate_pdf_triple_state,
                                self.mw.language,
                                pdf_path=pdf_dir,
                                filename=filename,
                            )

                        self.fn.setupLoading(pdf_generator_thread)

                        pdf_generator_thread.finished.connect(self.on_finished)

                        pdf_generator_thread.start()
                        self.mw.loadingScreen.exec_()

                        if not self.mw.loadingUi.userTerminated:
                            self.fn.pdf_generated_prompt()
                        if clean:
                            delete_folder(pdf_dir)
                    except:
                        self.fn.latex_packages_warning()
            else:
                self.fn.warning()
        else:
            self.fn.latex_warning()
    def rm_solver(self, clean=True):
        if find_executable('latex'):
            if self.mn.determine_pdf_mode() is not None:
                file, ok = QFileDialog.getSaveFileName(self.mw,
                                                       self.mw.pdf_title,
                                                       self.mw.pdf_text,
                                                       "PDF (*.pdf)")
                if ok:
                    try:
                        self.mw.toolBox.setCurrentIndex(1)
                        pdf_dir, filename = split_dir_filename(file)
                        make_pdf_folders(pdf_dir)

                        pdf_generator_thread = PDFGeneratorThread(
                            self.mn.generate_pdf,
                            self.mw.language,
                            pdf_path=pdf_dir,
                            filename=filename,
                        )

                        self.fn.setupLoading(pdf_generator_thread)

                        pdf_generator_thread.finished.connect(self.on_finished)

                        pdf_generator_thread.start()
                        self.mw.loadingScreen.exec_()

                        if not self.mw.loadingUi.userTerminated:
                            self.fn.pdf_generated_prompt()
                        if clean:
                            delete_folder(pdf_dir)
                    except:
                        self.fn.latex_packages_warning()
            else:
                self.fn.warning()
        else:
            self.fn.latex_warning()