def preamble(self):
     geometry_options = {"margin": "0.5cm", "includeheadfoot": True}
     doc = Document(page_numbers=True, geometry_options=geometry_options)
     doc.preamble.append(NoEscape(r'\usepackage[czech]{babel}'))
     doc.documentclass.options = Options('10pt')
     with doc.create(Section('Zhodnocení požární odolnosti konstrukcí')):
         doc.append(
             NoEscape(
                 r'Normový požadavek na požární odolnost konstrukcí je stanoven na základě stupně požární bezpečnosti jednotlivých požárních úseků (viz tabulka \ref{PU}), a to pomocí tabulky 12 v normě ČSN 73 0802.'
             ))
     return doc
        check = 45
    if idd == 2:
        check = 60
    if idd == 3:
        check = 90
    if idd == 4:
        check = 120
    if idd == 5:
        check = 180
    return check


geometry_options = {"margin": "0.5cm", "includeheadfoot": True}
doc = Document(page_numbers=True, geometry_options=geometry_options)
doc.preamble.append(NoEscape(r'\usepackage[czech]{babel}'))
doc.documentclass.options = Options('10pt')


def E1_generator(soubor, cesta, data_konst, vystup_dir, data_dir):
    os.chdir(data_dir)
    data_PU = read_results('results.csv')
    info1 = read_results('raw_data_info.csv')
    podlazi = int(info1[2][0])
    info = info1[0][0]
    SPB_check = []
    n_uniques = []
    d = {'I.': 1, 'II.': 2, 'III.': 3, 'IV.': 4, 'V.': 5, 'VI.': 6, 'VII.': 7}
    e = {1: 'I.', 2: 'II.', 3: 'III.', 4: 'IV.', 5: 'V.', 6: 'VI.', 7: 'VII.'}
    check_PP = {
        'I.': 30,
        'II.': 45,
 def preamble(self):
     geometry_options = {"margin": "0.5cm", "includeheadfoot": True}
     doc = Document(page_numbers=True, geometry_options=geometry_options)
     doc.preamble.append(NoEscape(r'\usepackage[czech]{babel}'))
     doc.documentclass.options = Options('10pt')
     return doc
Exemplo n.º 4
0
def appendix(data_dir, vystup_dir):
    os.chdir(data_dir)
    data_PU = read_results('raw_data_PU.csv')
    data_POP = read_results('raw_data_POP.csv')
    data_mid = read_results('results.csv')
    PurePath(vystup_dir)
    geometry_options = {"margin": "0.5cm", "includeheadfoot": True}
    doc = Document(page_numbers=True, geometry_options=geometry_options)
    doc.preamble.append(NoEscape(r'\definecolor{Hex}{RGB}{239,239,239}'))
    doc.documentclass.options = Options('10pt')

    doc.append(Command('textbf', 'Zadání hodnot pro výpočet: '))
    doc.append(
        NoEscape(r'Tabulka \ref{rozmery} je souhrnem zadaných hodnot \
                        potřebných k výpočtu požárně výpočtového zatížení.'))

    def genenerate_longtabu(data):
        if data == data_PU:
            with doc.create(LongTable("l l c c c c c c l")) as data_table:
                doc.append(Command('caption', 'Zadání místností pro výpočet'))
                doc.append(Command('label', 'rozmery'))
                doc.append(Command('\ '))
                data_table.append
                data_table.add_hline()
                data_table.add_row([
                    "PU", "Místnost", "Plocha",
                    NoEscape('h$_s$'),
                    NoEscape('a$_n$'),
                    NoEscape('p$_n$'),
                    NoEscape('p$_s$'), "c", "Tab. A.1"
                ])
                data_table.add_hline()
                data_table.end_table_header()
                data_table.add_hline()
                doc.append(Command('endfoot'))
                doc.append(Command('endlastfoot'))
                # data_table.end_table_footer()
                data_table.add_hline()
        if data == data_POP:
            with doc.create(LongTable("l l c c c c", pos=['l'])) as data_table:
                doc.append(Command('caption', 'Zadání okenních otvorů'))
                doc.append(Command('label', 'okna'))
                doc.append(Command('\ '))
                data_table.append
                data_table.add_hline()
                data_table.add_row([
                    "PU", "Místnost", "n otvorů", "šířka otvorů",
                    "výška otvorů", "Plocha"
                ])
                data_table.add_row(
                    [" ", " ", " ", "[m]", "[m]",
                     NoEscape('m$^2$')])
                data_table.add_hline()
                data_table.end_table_header()
                data_table.add_hline()
                data_table.add_hline()
        for i in range(0, len(data)):
            if i % 2 == 0:
                data_table.add_row(data[i])
            else:
                data_table.add_row(data[i], color="Hex")
        data_table.add_hline()

    for i in range(0, len(data_PU)):
        data_PU[i][2] = data_PU[i][2].replace(".", ",")
        data_PU[i][3] = data_PU[i][3].replace(".", ",")
        data_PU[i][4] = data_PU[i][4].replace(".", ",")
        data_PU[i][5] = data_PU[i][5].replace(".", ",")
        data_PU[i][6] = data_PU[i][6].replace(".", ",")
        data_PU[i][7] = data_PU[i][7].replace(".", ",")
    genenerate_longtabu(data_PU)
    doc.append(
        NoEscape(r'Okenní otvory nutné pro výpočet součinitele b jsou\
                        uvedeny v následující tabulce \ref{okna}'))
    for i in range(0, len(data_POP)):
        data_POP[i][3] = data_POP[i][3].replace(".", ",")
        data_POP[i][4] = data_POP[i][4].replace(".", ",")
        data_POP[i][5] = data_POP[i][5].replace(".", ",")
    genenerate_longtabu(data_POP)
    doc.append(Command('textbf', 'Mezivýsledky a výsledky: '))
    doc.append(
        NoEscape(r'Mezivýsledky nutné pro stanovení parametru b jsou\
                        patrné z tabulky \ref{mezivysledky}'))

    #########################################################################
    ''' Mezivýsledky parametr B '''
    data_mid_ar = []
    for i in range(0, len(data_mid)):
        data_mid_ar.append(data_mid[i][0])
        data_mid_ar.append(data_mid[i][1])
        data_mid_ar.append(data_mid[i][8])
        data_mid_ar.append(data_mid[i][9])
        data_mid_ar.append(data_mid[i][10])
        data_mid_ar.append(data_mid[i][14])
        data_mid_ar.append(data_mid[i][15])
    data_mid_ar = list(chunks(data_mid_ar, 7))
    for i in range(0, len(data_mid_ar)):
        data_mid_ar[i][1] = data_mid_ar[i][1].replace(".", ",")
        data_mid_ar[i][2] = data_mid_ar[i][2].replace(".", ",")
        data_mid_ar[i][3] = data_mid_ar[i][3].replace(".", ",")
        data_mid_ar[i][4] = data_mid_ar[i][4].replace(".", ",")
        data_mid_ar[i][5] = data_mid_ar[i][5].replace(".", ",")
        data_mid_ar[i][6] = data_mid_ar[i][6].replace(".", ",")

    with doc.create(LongTable("l c c c c c c", pos=['l'])) as data_table:
        doc.append(Command('caption', 'Mezivýsledky pro paramter b'))
        doc.append(Command('label', 'mezivysledky'))
        doc.append(Command('\ '))
        data_table.append
        data_table.add_hline()
        data_table.add_row(["PÚ", "S", "S0", "hs", "h0", "n", "k"])
        data_table.add_row([
            " ",
            NoEscape('m$^2$'),
            NoEscape('m$^2$'), "[m]", "[m]", "[-]", "[-]"
        ])
        data_table.add_hline()
        data_table.end_table_header()
        data_table.add_hline()
        data_table.add_hline()
        for i in range(0, len(data_mid_ar)):
            if i % 2 == 0:
                data_table.add_row(data_mid_ar[i])
            else:
                data_table.add_row(data_mid_ar[i], color="Hex")
        data_table.add_hline()

    #########################################################################
    ''' Vysledky '''

    doc.append(
        NoEscape(r'Přehled výsledků požárních úseků je patrný z tabulky\
                        \ref{Vysledky}'))

    data_res = []
    for i in range(0, len(data_mid)):
        data_res.append(data_mid[i][0])
        data_res.append(data_mid[i][1])
        data_res.append(data_mid[i][2])
        data_res.append(data_mid[i][3])
        data_res.append(data_mid[i][4])
        data_res.append(data_mid[i][13])  # a_n
        data_res.append(data_mid[i][12])  # p_n
        data_res.append(data_mid[i][11])  # p_s
        data_res.append(data_mid[i][7])  # p_only
        data_res.append(data_mid[i][5])  # p_v
    data_res = list(chunks(data_res, 10))

    for i in range(0, len(data_res)):
        data_res[i][1] = data_res[i][1].replace(".", ",")
        data_res[i][2] = data_res[i][2].replace(".", ",")
        data_res[i][3] = data_res[i][3].replace(".", ",")
        data_res[i][4] = data_res[i][4].replace(".", ",")
        data_res[i][5] = data_res[i][5].replace(".", ",")
        data_res[i][6] = data_res[i][6].replace(".", ",")
        data_res[i][7] = data_res[i][7].replace(".", ",")
        data_res[i][8] = data_res[i][8].replace(".", ",")
        data_res[i][9] = data_res[i][9].replace(".", ",")
    with doc.create(LongTable("l c c c c c c c c c ",
                              pos=['l'])) as data_table:
        doc.append(
            Command(
                'caption', 'Přehled požárních úseků a jejich\
                            výsledky'))
        doc.append(Command('label', 'Vysledky'))
        doc.append(Command('\ '))
        data_table.append
        data_table.add_hline()
        data_table.add_row([
            "PÚ", "Plocha", "a", "b", "c",
            NoEscape('a$_n$'),
            NoEscape('p$_n$'),
            NoEscape('p$_s$'),
            NoEscape('p'),
            NoEscape('p$_v$')
        ])
        data_table.add_row([
            " ",
            NoEscape('m$^2$'), "[-]", "[-]", "[-]", "[-]",
            NoEscape('[kg/m$^2$]'),
            NoEscape('[kg/m$^2$]'),
            NoEscape('[kg/m$^2$]'),
            NoEscape('[kg/m$^2$]')
        ])

        data_table.end_table_header()
        data_table.add_hline()
        for i in range(0, len(data_res)):
            if i % 2 == 0:
                data_table.add_row(data_res[i])
            else:
                data_table.add_row(data_res[i], color="Hex")
        data_table.add_hline()
    os.chdir(vystup_dir)
    doc.generate_pdf("Appendix", clean_tex=False)
def c_generator(data_dir, vystup_dir):
    os.chdir(data_dir)
    data_PU = read_results('results.csv')
    info_PU = read_results('raw_data_info.csv')
    list_names = []
    for i in range(0, len(data_PU)):
        list_names.append(data_PU[i][19])

    geometry_options = {"margin": "0.5cm", "includeheadfoot": True}
    doc = Document(page_numbers=True, geometry_options=geometry_options)
    doc.documentclass.options = Options('10pt')
    with doc.create(Section('Mezní rozměry požárních úseků')):
        doc.append(
            NoEscape(r'\textbf{Rozdělení do požárních úseků}: Objekt\
                            bude rozdělen do požárních úseků podle požadavků\
                            norem. V souladu s požadavky budou požární úseky\
                            tvořit především tyto provozy/prostory.'))
        with doc.create(Itemize()) as itemize:
            if 'OB2 byt' in list_names:
                itemize.add_item("Dle normy ČSN 73 0833 čl. 3.6 musí každá\
                                 bytová buňka v objektech skupiny OB2 tvořit\
                                 samostatný požární úsek.")
            if '15.10 c)' in list_names:
                itemize.add_item("Kotelna III. kategorie podle normy\
                                  ČSN 07 0703 bude tvořit samostatný požární\
                                  úsek")
            if 'CHÚC-A' in list_names or 'CHÚC-B' in list_names or\
               'CHÚC-C' in list_names:
                itemize.add_item("Chráněné únikové cesty tvoří samostatné\
                                  požární úseky")
            if ['ANO'] == info_PU[3]:
                itemize.add_item("Výtahové šachty budou tvořit samostatné\
                                  požární useky.")
            if ['ANO'] == info_PU[4]:
                itemize.add_item("Instalační šachty budou tvořit samostatné\
                                  požární úseky.")
            if 'OB2 sklad' in list_names:
                itemize.add_item("Prostory určené pro skladování věcí pro\
                                  domácnost budou tvořit samostatné požární\
                                  úseky.")
            if 'OB3' in list_names:
                itemize.add_item("Každá ubytovací buňka tvoří samostatný\
                                  požární úsek.")
            if 'OB4 ubyt' in list_names:
                itemize.add_item("Ubytovací (lůžkové) části budovy skupiny\
                                 OB4 budou tvořit samostatné požární úseky.")
            if 'OB4 sklad' in list_names:
                itemize.add_item("Prostory určené pro skladování věcí různých\
                                  potřeb pro provoz ubytovacích částí budovy\
                                  budou tvořit samostatné požární úsek.y")
            if 'AZ1 Ordi.' in list_names or 'AZ2 Ordi' in list_names:
                itemize.add_item("Ordinace lékaře bude tvořit samostatný\
                                  požární úsek.")
            if 'AZ1 Lék.' in list_names or 'AZ2 Lék' in list_names or\
               'LZ2 Lék' in list_names:
                itemize.add_item("Lékárna včetně zázemí bude tvořit samostatný\
                                  požární úsek.")
            if 'AZ2 vyšet.' in list_names:
                itemize.add_item("Vyšetřovací a léčebné části objektu budou\
                                  tvořit samostatný požární úsek.")
            if 'LZ1' in list_names or 'LZ2 lůž' in list_names:
                itemize.add_item("Lůžkové části pro pacienty v objektu budou\
                                  tvořit samostatné požární úseky")
            if 'LZ2 int.péče' in list_names:
                itemize.add_item("Jednotky intenzivní péče, anesteziologicko\
                                  resistutační oddělení a operační sály budou\
                                  tvořit samostatný požární úseky.")
            if 'LZ2 biochem' in list_names:
                itemize.add_item("Oddělení klinické biochemie bude tvořit\
                                  samostatný požární úsek.")
            if 'peč. Služ' in list_names:
                itemize.add_item("Každá bytová jednotka v domě s pečovatelskou\
                                  službou bude tvořit samostatný požární\
                                  úsek.")
            if 'soc.péče.ošetř' in list_names:
                itemize.add_item("Ošetřovny v domovech sodiální poče budou\
                                  tvořit samostatné požární úsek.")
            if 'soc.péče.lůž' in list_names:
                itemize.add_item("Lůžkové prostory v domovech sociální péče\
                                  budou tvořit samostatné požární úseky.")
            if 'soc.péče.byt' in list_names:
                itemize.add_item("Každá bytová jednotka v domě sociální péče\
                                  bude tvořit samostatný požární úsek.")
            if 'Jesle' in list_names:
                itemize.add_item("Prostory pro děti do tří let (Jesle)\
                                  budou tvořit samostatný požární úsek.")
    os.chdir(vystup_dir)
    doc.generate_pdf("C", clean_tex=False)
        geometry_options={
            "margin": "0em",
            "includehead": False,
            "head": "0em",
            "includefoot": True,
            "foot": "3em"
        },
    )
    # doc.preamble.append(Command("usepackage", "helvet"))
    doc.append(
        NoEscape(
            r"\renewcommand{\footnotesize}{\fontsize{6pt}{6pt}\selectfont}"))

    setup_colors(doc)
    doc.packages.append(
        Package("hyperref",
                options=Options(colorlinks=False, allbordercolors="white")))
    doc.packages.append(Package("setspace"))
    with change_color(doc, "white"):
        doc.append(NoEscape(r"\noindent\rule{\textwidth}{0.5mm}"))
        add_space_plus_new_line(doc, 1)

    with doc.create(
            MiniPage(width=r"1\textwidth", pos="t", content_pos="t",
                     align="l")) as page:
        add_left_column(page)
        add_center_column(page)
        add_right_column(page)

    doc.generate_pdf("sample_report", clean_tex=False)
Exemplo n.º 7
0
def d1_generator(data_dir, vystup_dir):
    os.chdir(data_dir)
    data_PU = read_results('results.csv')
    info_PU = read_results('raw_data_info.csv')
    list_names = []
    for i in range(0, len(data_PU)):
        list_names.append(data_PU[i][19])
    # Arrange data to desired shape
    data_used = []
    forbiden = ['CHÚC-A', 'CHÚC-B', 'CHÚC-C', 'OB2 byt']
    for i in range(0, len(data_PU)):
        if list_names[i] not in forbiden:
            data_used.append(data_PU[i][0])
            data_used.append(data_PU[i][2])
            data_used.append("%.2f" % float(data_PU[i][17]))
            A = float(data_PU[i][17])
            data_used.append("%.2f" % float(data_PU[i][18]))
            B = float(data_PU[i][18])
            C = A * B
            data_used.append("%.2f" % C)
            data_used.append(data_PU[i][1])
            if (A * B) > float(data_PU[i][1]):
                data_used.append('ANO')
            else:
                data_used.append('NE')
                print()
                print('D.1 Pozor nevyhovuje - ' + str(data_PU[i][0]))
                print()

    data_used = list(chunks(data_used, 7))

    geometry_options = {"margin": "0.5cm", "includeheadfoot": True}
    doc = Document(page_numbers=True, geometry_options=geometry_options)
    doc.preamble.append(NoEscape(r'\usepackage[czech]{babel}'))
    doc.preamble.append(NoEscape(r'\usepackage{threeparttablex}'))
    doc.preamble.append(NoEscape(r'\usepackage{pdfpages}'))
    doc.preamble.append(NoEscape(r'\definecolor{Hex}{RGB}{239,239,239}'))
    doc.documentclass.options = Options('10pt')

    with doc.create(Subsection('Mezní rozměry požárních úseků')):
        doc.append(
            NoEscape(r'\textbf{Mezní půdorysné rozměry}: Posouzení\
                            rozměrů požárního úseku je patrné z tabulky\
                            \ref{rozmery}.'))
        if 'OB2 byt' in list_names:
            doc.append('Mezní rozměry bytových jednotek se v souladu\
                        s čl. 5.1.5 normy ČSN 73 0833 nestanovují.')

        if info_PU[0] == ['nehořlavý']:
            str1 = str(9)
        if info_PU[0] == ['smíšený']:
            str1 = str(10)
        if info_PU[0] == ['hořlavý']:
            str1 = str(11)
        string1 = 'Mezní délky a mezní šířky jednotlivých požárních\
                   úseků byly stanoveny tabulkou '

        string2 = ' normy ČSN 73 0802 na základě součinitele rychlosti\
                    odhořívání požárního úseků.'

        string = string1 + str1 + string2
        doc.append(string)
        for i in range(0, len(data_used)):
            data_used[i][1] = data_used[i][1].replace(".", ",")
            data_used[i][2] = data_used[i][2].replace(".", ",")
            data_used[i][3] = data_used[i][3].replace(".", ",")
            data_used[i][4] = data_used[i][4].replace(".", ",")
            data_used[i][5] = data_used[i][5].replace(".", ",")

        with doc.create(LongTable("l c c c c c c",
                                  pos=['htb!'])) as data_table:
            doc.append(Command('caption', 'Ověření rozměrů požárních úseků'))
            doc.append(Command('label', 'rozmery'))
            doc.append(Command('\ '))
            data_table.append
            data_table.add_hline()
            data_table.add_row([
                "PÚ", "Souč.", "Mězní délka", "Mezní šířka", "Mezní plocha",
                "Plocha", "Vyhovuje"
            ])
            data_table.add_row([
                " ", "a", "[m]", "[m]",
                NoEscape('[m$^2$]'),
                NoEscape('[m$^2$]'), ""
            ])
            data_table.add_hline()
            data_table.end_table_header()
            for i in range(0, len(data_used)):
                if i % 2 != 0:
                    data_table.add_row(data_used[i], color="Hex")
                else:
                    data_table.add_row(data_used[i])
            data_table.add_hline()
            os.chdir(vystup_dir)
    doc.generate_pdf("D1_PU", clean_tex=False)