개정판 5fa2697c
issue #000 on_generate_report 함수에서 Excel에 표시된 Loop_Deviation 수정.
HYTOS/HYTOS/MainWindow.py | ||
---|---|---|
1654 | 1654 |
"""up to here""" |
1655 | 1655 |
|
1656 | 1656 |
# Output [Pump, Compressor, Control Valve] |
1657 |
ws['X1'].value = 'Loop_Deviation' |
|
1657 |
#ws['X1'].value = 'Loop_Deviation'
|
|
1658 | 1658 |
ws['X1'].font = Font(bold=True, underline='single', size=11) |
1659 | 1659 |
|
1660 |
loops = app_doc_data.activeDrawing.loops |
|
1661 |
strmsg = None |
|
1662 |
row_no = 2 |
|
1663 |
for loop in loops: |
|
1664 |
deviation = loop.deviation |
|
1665 |
if round(deviation, 9) == 0: |
|
1666 |
continue |
|
1667 |
|
|
1668 |
for i in range(1, len(loop.items) - 1, 3): |
|
1669 |
if i == 1: |
|
1670 |
loop_no = loop.name.replace('Loop', '') |
|
1671 |
if len(loop_no) > 1: |
|
1672 |
strmsg = '({}) {}'.format(loop_no, loop.items[i].stream_no) |
|
1673 |
else: |
|
1674 |
strmsg = '(0{}) {}'.format(loop_no, loop.items[i].stream_no) |
|
1675 |
else: |
|
1676 |
if len(str(loop.items[i - 1])) > 13 and str(loop.items[i - 1])[:13] == \ |
|
1677 |
'Line_Splitter': |
|
1678 |
pre_stream_num = loop.items[i - 3].stream_no |
|
1679 |
cur_stream_num = loop.items[i].stream_no |
|
1680 |
|
|
1681 |
if '-' in strmsg: |
|
1682 |
last_stream_num = str(strmsg).rsplit('-', 1)[1] |
|
1683 |
else: |
|
1684 |
last_stream_num = str(strmsg).rsplit(' ', 1)[1] |
|
1685 |
|
|
1686 |
if pre_stream_num != int(last_stream_num): |
|
1687 |
strmsg = f'{strmsg}-{pre_stream_num}-{cur_stream_num}' |
|
1688 |
|
|
1689 |
last_stream_num = loop.items[len(loop.items) - 2].stream_no |
|
1690 |
strmsg = f'{strmsg}-{last_stream_num}' |
|
1691 |
|
|
1692 |
value = f"{strmsg} = {round(deviation, 3)} {units['Pressure']}" |
|
1693 |
tokens = value.split('-') |
|
1694 |
for at in range(0, len(tokens), 20): |
|
1695 |
cell_value = '-'.join(tokens[at: at + 20 if at + 20 < len(tokens) else len(tokens)]) |
|
1696 |
if round(deviation, 3) < 0: |
|
1697 |
ws.cell(row_no, 24, cell_value).font = Font(underline='single', size=10, |
|
1698 |
color='FF0000') |
|
1699 |
elif round(deviation, 3) > 0: |
|
1700 |
ws.cell(row_no, 24, cell_value).font = Font(size=10) |
|
1701 |
else: |
|
1702 |
ws.cell(row_no, 24, cell_value).font = Font(underline='single', size=10) |
|
1703 |
row_no += 1 |
|
1704 |
|
|
1705 |
start_row_no = row_no + 1 |
|
1706 |
start_col_no = 24 |
|
1707 |
# Pump |
|
1708 |
pumps = [] |
|
1709 |
row_no = start_row_no |
|
1710 |
col_no = start_col_no |
|
1711 |
for loop in loops: |
|
1712 |
for item in loop.items: |
|
1713 |
parent = item.parent |
|
1714 |
if parent: |
|
1715 |
name = str(item).replace( |
|
1716 |
'_{}'.format(str(item).split('_')[len(str(item).split('_')) - 1]), '') |
|
1717 |
if name in pumps: |
|
1718 |
continue |
|
1719 |
if name[:3] == 'R_P' or name[:3] == 'L_P' or name[:3] == 'V_P': |
|
1720 |
pumps.append(name) |
|
1721 |
|
|
1722 |
attr = item.parent.attribute |
|
1723 |
ws.cell(row_no, col_no, attr['Tag_No']).font = Font(bold=True, |
|
1724 |
underline='single', |
|
1725 |
size=11) |
|
1726 |
|
|
1727 |
row_no += 1 |
|
1728 |
ws.cell(row_no, col_no, 'Suct.P :') |
|
1729 |
col_no += 2 |
|
1730 |
ws.cell(row_no, col_no, round(attr['Suct.P'], 3)) |
|
1731 |
col_no += 1 |
|
1732 |
ws.cell(row_no, col_no, '{}.g'.format(units['Pressure'])) |
|
1733 |
|
|
1734 |
row_no += 1 |
|
1735 |
col_no = 24 if col_no == 27 else 28 |
|
1736 |
ws.cell(row_no, col_no, 'Disc.P :') |
|
1737 |
col_no += 2 |
|
1738 |
ws.cell(row_no, col_no, round(attr['Disc.P'], 3)) |
|
1739 |
col_no += 1 |
|
1740 |
ws.cell(row_no, col_no, '{}.g'.format(units['Pressure'])) |
|
1741 |
|
|
1742 |
row_no += 1 |
|
1743 |
col_no = 24 if col_no == 27 else 28 |
|
1744 |
ws.cell(row_no, col_no, 'Diff.P :') |
|
1745 |
col_no += 2 |
|
1746 |
ws.cell(row_no, col_no, round(attr['Diff.P'], 3)) |
|
1747 |
col_no += 1 |
|
1748 |
ws.cell(row_no, col_no, units['Pressure']) |
|
1749 |
|
|
1750 |
row_no += 1 |
|
1751 |
col_no = 24 if col_no == 27 else 28 |
|
1752 |
ws.cell(row_no, col_no, 'Head :') |
|
1753 |
col_no += 2 |
|
1754 |
ws.cell(row_no, col_no, round(attr['Head'], 3)) |
|
1755 |
col_no += 1 |
|
1756 |
ws.cell(row_no, col_no, units['Length']) |
|
1757 |
|
|
1758 |
row_no += 1 |
|
1759 |
col_no = 24 if col_no == 27 else 28 |
|
1760 |
ws.cell(row_no, col_no, 'NPSHa :') |
|
1761 |
col_no += 2 |
|
1762 |
ws.cell(row_no, col_no, round(attr['NPSHa'], 3)) |
|
1763 |
col_no += 1 |
|
1764 |
ws.cell(row_no, col_no, units['Length']) |
|
1765 |
|
|
1766 |
row_no += 1 |
|
1767 |
col_no = 24 if col_no == 27 else 28 |
|
1768 |
ws.cell(row_no, col_no, 'Vap. P :') |
|
1769 |
col_no += 2 |
|
1770 |
ws.cell(row_no, col_no, attr['Vap. P']) |
|
1771 |
col_no += 1 |
|
1772 |
ws.cell(row_no, col_no, '{}.a'.format(units['Pressure'])) |
|
1773 |
|
|
1774 |
row_no += 1 |
|
1775 |
col_no = 24 if col_no == 27 else 28 |
|
1776 |
ws.cell(row_no, col_no, 'HHP :') |
|
1777 |
col_no += 2 |
|
1778 |
ws.cell(row_no, col_no, round(attr['HHP'], 3)) |
|
1779 |
col_no += 1 |
|
1780 |
ws.cell(row_no, col_no, units['Power']) |
|
1781 |
|
|
1782 |
col_no = 28 if col_no == 27 else 24 |
|
1783 |
row_no = row_no - 7 if col_no == 28 else row_no + 2 |
|
1784 |
|
|
1785 |
start_row_no += math.ceil(len(pumps)) * 9 |
|
1786 |
|
|
1787 |
# Compressor |
|
1788 |
compressors = [] |
|
1789 |
row_no = start_row_no |
|
1790 |
col_no = start_col_no |
|
1791 |
for loop in loops: |
|
1792 |
for item in loop.items: |
|
1793 |
parent = item.parent |
|
1794 |
if parent: |
|
1795 |
name = str(item).replace( |
|
1796 |
'_{}'.format(str(item).split('_')[len(str(item).split('_')) - 1]), '') |
|
1797 |
if name in compressors: |
|
1798 |
continue |
|
1799 |
if name[:3] == 'R_K' or name[:3] == 'L_K': |
|
1800 |
compressors.append(name) |
|
1801 |
|
|
1802 |
attr = item.parent.attribute |
|
1803 |
ws.cell(row_no, col_no, attr['Tag_No']).font = Font(bold=True, |
|
1804 |
underline='single', |
|
1805 |
size=11) |
|
1806 |
|
|
1807 |
row_no += 1 |
|
1808 |
ws.cell(row_no, col_no, 'Suct.P :') |
|
1809 |
col_no += 2 |
|
1810 |
ws.cell(row_no, col_no, round(attr['Suct.P'], 3)) |
|
1811 |
col_no += 1 |
|
1812 |
ws.cell(row_no, col_no, '{}.g'.format(units['Pressure'])) |
|
1813 |
|
|
1814 |
row_no += 1 |
|
1815 |
col_no = 24 if col_no == 27 else 28 |
|
1816 |
ws.cell(row_no, col_no, 'Disc.P :') |
|
1817 |
col_no += 2 |
|
1818 |
ws.cell(row_no, col_no, round(attr['Disc.P'], 3)) |
|
1819 |
col_no += 1 |
|
1820 |
ws.cell(row_no, col_no, '{}.g'.format(units['Pressure'])) |
|
1821 |
|
|
1822 |
row_no += 1 |
|
1823 |
col_no = 24 if col_no == 27 else 28 |
|
1824 |
ws.cell(row_no, col_no, 'Diff.P :') |
|
1825 |
col_no += 2 |
|
1826 |
ws.cell(row_no, col_no, round(attr['Diff.P'], 3)) |
|
1827 |
col_no += 1 |
|
1828 |
ws.cell(row_no, col_no, units['Pressure']) |
|
1829 |
|
|
1830 |
row_no += 1 |
|
1831 |
col_no = 24 if col_no == 27 else 28 |
|
1832 |
ws.cell(row_no, col_no, 'HHP :') |
|
1833 |
col_no += 2 |
|
1834 |
ws.cell(row_no, col_no, round(attr['HHP'], 3)) |
|
1835 |
col_no += 1 |
|
1836 |
ws.cell(row_no, col_no, units['Power']) |
|
1837 |
|
|
1838 |
col_no = 28 if col_no == 27 else 24 |
|
1839 |
row_no = row_no - 4 if col_no == 28 else row_no + 2 |
|
1840 |
|
|
1841 |
start_row_no += math.ceil(len(compressors)) * 9 |
|
1842 |
|
|
1843 |
# Control Valve |
|
1844 |
control_valves = [] |
|
1845 |
row_no = start_row_no |
|
1846 |
col_no = start_col_no |
|
1847 |
for loop in loops: |
|
1848 |
for item in loop.items: |
|
1849 |
parent = item.parent |
|
1850 |
if parent: |
|
1851 |
name = str(item).replace( |
|
1852 |
'_{}'.format(str(item).split('_')[len(str(item).split('_')) - 1]), '') |
|
1853 |
if name in control_valves: |
|
1854 |
continue |
|
1855 |
if name[:3] == 'CV_': |
|
1856 |
control_valves.append(name) |
|
1857 |
|
|
1858 |
attr = item.parent.attribute |
|
1859 |
if 'Tag_No' in attr: |
|
1860 |
ws.cell(row_no, col_no, attr['Tag_No']).font = Font(bold=True, |
|
1861 |
underline='single', |
|
1862 |
size=11) |
|
1863 |
|
|
1864 |
row_no += 1 |
|
1865 |
ws.cell(row_no, col_no, 'Inlet P :') |
|
1866 |
col_no += 2 |
|
1867 |
if 'Suct.P' in attr: |
|
1868 |
ws.cell(row_no, col_no, round(attr['Suct.P'], 3)) |
|
1869 |
col_no += 1 |
|
1870 |
ws.cell(row_no, col_no, '{}.g'.format(units['Pressure'])) |
|
1871 |
|
|
1872 |
row_no += 1 |
|
1873 |
col_no = 24 if col_no == 27 else 28 |
|
1874 |
ws.cell(row_no, col_no, 'Outlet P :') |
|
1875 |
col_no += 2 |
|
1876 |
if 'Disc.P' in attr: |
|
1877 |
ws.cell(row_no, col_no, round(attr['Disc.P'], 3)) |
|
1878 |
col_no += 1 |
|
1879 |
ws.cell(row_no, col_no, '{}.g'.format(units['Pressure'])) |
|
1880 |
|
|
1881 |
row_no += 1 |
|
1882 |
col_no = 24 if col_no == 27 else 28 |
|
1883 |
ws.cell(row_no, col_no, 'Diff.P :') |
|
1884 |
col_no += 2 |
|
1885 |
if 'Diff.P' in attr: |
|
1886 |
ws.cell(row_no, col_no, round(attr['Diff.P'], 3)) |
|
1887 |
col_no += 1 |
|
1888 |
ws.cell(row_no, col_no, units['Pressure']) |
|
1889 |
|
|
1890 |
row_no += 1 |
|
1891 |
col_no = 24 if col_no == 27 else 28 |
|
1892 |
ws.cell(row_no, col_no, 'dP Ratio :') |
|
1893 |
col_no += 2 |
|
1894 |
if 'dP Ratio' in attr: |
|
1895 |
ws.cell(row_no, col_no, round(attr['dP Ratio'] * 100, 2)) |
|
1896 |
col_no += 1 |
|
1897 |
ws.cell(row_no, col_no, '%') |
|
1898 |
|
|
1899 |
col_no = 28 if col_no == 27 else 24 |
|
1900 |
row_no = row_no - 4 if col_no == 28 else row_no + 2 |
|
1901 |
|
|
1902 | 1660 |
# write hmb unit |
1903 | 1661 |
ws['B55'].value = '-' |
1904 | 1662 |
ws['B56'].value = units['Pipe_Diameter'] |
... | ... | |
1928 | 1686 |
|
1929 | 1687 |
page_no += 1 |
1930 | 1688 |
|
1689 |
loops = app_doc_data.activeDrawing.loops |
|
1690 |
strmsg = None |
|
1691 |
row_no = 2 |
|
1692 |
page_no = row_no |
|
1693 |
START_COL_NO = 24 |
|
1694 |
MAX_ROW_NO = 51 |
|
1695 |
sheet_loop_deviations = [] |
|
1696 |
ws = self.get_work_sheet(work_book=wb, count=page_no, total_count=MAX_ROW_NO) |
|
1697 |
|
|
1698 |
for loop in loops: |
|
1699 |
deviation = loop.deviation |
|
1700 |
if round(deviation, 9) == 0: |
|
1701 |
continue |
|
1702 |
|
|
1703 |
if ws not in sheet_loop_deviations: |
|
1704 |
sheet_loop_deviations.append(ws) |
|
1705 |
|
|
1706 |
next_ws = self.get_work_sheet(work_book=wb, count=page_no, total_count=MAX_ROW_NO) |
|
1707 |
if ws != next_ws: |
|
1708 |
row_no = 2 |
|
1709 |
ws = next_ws |
|
1710 |
if ws not in sheet_loop_deviations: |
|
1711 |
sheet_loop_deviations.append(ws) |
|
1712 |
|
|
1713 |
for i in range(1, len(loop.items) - 1, 3): |
|
1714 |
if i == 1: |
|
1715 |
loop_no = loop.name.replace('Loop', '') |
|
1716 |
if len(loop_no) > 1: |
|
1717 |
strmsg = '({}) {}'.format(loop_no, loop.items[i].stream_no) |
|
1718 |
else: |
|
1719 |
strmsg = '(0{}) {}'.format(loop_no, loop.items[i].stream_no) |
|
1720 |
else: |
|
1721 |
if len(str(loop.items[i - 1])) > 13 and str(loop.items[i - 1])[:13] == 'Line_Splitter': |
|
1722 |
pre_stream_num = loop.items[i - 3].stream_no |
|
1723 |
cur_stream_num = loop.items[i].stream_no |
|
1724 |
if '-' in strmsg: |
|
1725 |
last_stream_num = str(strmsg).rsplit('-', 1)[1] |
|
1726 |
else: |
|
1727 |
last_stream_num = str(strmsg).rsplit(' ', 1)[1] |
|
1728 |
|
|
1729 |
if pre_stream_num != int(last_stream_num): |
|
1730 |
strmsg = f'{strmsg}-{pre_stream_num}-{cur_stream_num}' |
|
1731 |
|
|
1732 |
last_stream_num = loop.items[len(loop.items) - 2].stream_no |
|
1733 |
strmsg = f'{strmsg}-{last_stream_num}' |
|
1734 |
value = f"{strmsg} = {round(deviation, 3)} {units['Pressure']}" |
|
1735 |
tokens = value.split('-') |
|
1736 |
for at in range(0, len(tokens), 20): |
|
1737 |
cell_value = '-'.join(tokens[at: at + 20 if at + 20 < len(tokens) else len(tokens)]) |
|
1738 |
if round(deviation, 3) < 0: |
|
1739 |
ws.cell(row_no, START_COL_NO, cell_value).font = Font(underline='single', size=10, color='FF0000') |
|
1740 |
elif round(deviation, 3) > 0: |
|
1741 |
ws.cell(row_no, START_COL_NO, cell_value).font = Font(size=10) |
|
1742 |
else: |
|
1743 |
ws.cell(row_no, START_COL_NO, cell_value).font = Font(underline='single', size=10) |
|
1744 |
row_no += 1 |
|
1745 |
page_no += 1 |
|
1746 |
|
|
1747 |
start_row_no = row_no + 1 |
|
1748 |
start_col_no = START_COL_NO |
|
1749 |
|
|
1750 |
# Pump |
|
1751 |
pumps = [] |
|
1752 |
row_no = start_row_no |
|
1753 |
col_no = start_col_no |
|
1754 |
for loop in loops: |
|
1755 |
for item in loop.items: |
|
1756 |
parent = item.parent |
|
1757 |
if parent: |
|
1758 |
name = str(item).replace( |
|
1759 |
'_{}'.format(str(item).split('_')[len(str(item).split('_')) - 1]), '') |
|
1760 |
if name in pumps: |
|
1761 |
continue |
|
1762 |
if name[:3] == 'R_P' or name[:3] == 'L_P' or name[:3] == 'V_P': |
|
1763 |
|
|
1764 |
next_ws = self.get_work_sheet(work_book=wb, count=page_no, total_count=MAX_ROW_NO) |
|
1765 |
if ws != next_ws: |
|
1766 |
row_no = 2 |
|
1767 |
col_no = START_COL_NO |
|
1768 |
ws = next_ws |
|
1769 |
if ws not in sheet_loop_deviations: |
|
1770 |
sheet_loop_deviations.append(ws) |
|
1771 |
pumps.append(name) |
|
1772 |
|
|
1773 |
attr = item.parent.attribute |
|
1774 |
ws.cell(row_no, col_no, attr['Tag_No']).font = Font(bold=True, |
|
1775 |
underline='single', |
|
1776 |
size=11) |
|
1777 |
|
|
1778 |
row_no += 1 |
|
1779 |
page_no += 1 |
|
1780 |
ws.cell(row_no, col_no, 'Suct.P :') |
|
1781 |
col_no += 2 |
|
1782 |
ws.cell(row_no, col_no, round(attr['Suct.P'], 3)) |
|
1783 |
col_no += 1 |
|
1784 |
ws.cell(row_no, col_no, '{}.g'.format(units['Pressure'])) |
|
1785 |
|
|
1786 |
row_no += 1 |
|
1787 |
page_no += 1 |
|
1788 |
col_no = 24 if col_no == 27 else 28 |
|
1789 |
ws.cell(row_no, col_no, 'Disc.P :') |
|
1790 |
col_no += 2 |
|
1791 |
ws.cell(row_no, col_no, round(attr['Disc.P'], 3)) |
|
1792 |
col_no += 1 |
|
1793 |
ws.cell(row_no, col_no, '{}.g'.format(units['Pressure'])) |
|
1794 |
|
|
1795 |
row_no += 1 |
|
1796 |
page_no += 1 |
|
1797 |
col_no = 24 if col_no == 27 else 28 |
|
1798 |
ws.cell(row_no, col_no, 'Diff.P :') |
|
1799 |
col_no += 2 |
|
1800 |
ws.cell(row_no, col_no, round(attr['Diff.P'], 3)) |
|
1801 |
col_no += 1 |
|
1802 |
ws.cell(row_no, col_no, units['Pressure']) |
|
1803 |
|
|
1804 |
row_no += 1 |
|
1805 |
page_no += 1 |
|
1806 |
col_no = 24 if col_no == 27 else 28 |
|
1807 |
ws.cell(row_no, col_no, 'Head :') |
|
1808 |
col_no += 2 |
|
1809 |
ws.cell(row_no, col_no, round(attr['Head'], 3)) |
|
1810 |
col_no += 1 |
|
1811 |
ws.cell(row_no, col_no, units['Length']) |
|
1812 |
|
|
1813 |
row_no += 1 |
|
1814 |
page_no += 1 |
|
1815 |
col_no = 24 if col_no == 27 else 28 |
|
1816 |
ws.cell(row_no, col_no, 'NPSHa :') |
|
1817 |
col_no += 2 |
|
1818 |
ws.cell(row_no, col_no, round(attr['NPSHa'], 3)) |
|
1819 |
col_no += 1 |
|
1820 |
ws.cell(row_no, col_no, units['Length']) |
|
1821 |
|
|
1822 |
row_no += 1 |
|
1823 |
page_no += 1 |
|
1824 |
col_no = 24 if col_no == 27 else 28 |
|
1825 |
ws.cell(row_no, col_no, 'Vap. P :') |
|
1826 |
col_no += 2 |
|
1827 |
ws.cell(row_no, col_no, attr['Vap. P']) |
|
1828 |
col_no += 1 |
|
1829 |
ws.cell(row_no, col_no, '{}.a'.format(units['Pressure'])) |
|
1830 |
|
|
1831 |
row_no += 1 |
|
1832 |
page_no += 1 |
|
1833 |
col_no = 24 if col_no == 27 else 28 |
|
1834 |
ws.cell(row_no, col_no, 'HHP :') |
|
1835 |
col_no += 2 |
|
1836 |
ws.cell(row_no, col_no, round(attr['HHP'], 3)) |
|
1837 |
col_no += 1 |
|
1838 |
ws.cell(row_no, col_no, units['Power']) |
|
1839 |
|
|
1840 |
col_no = 28 if col_no == 27 else 24 |
|
1841 |
row_no = row_no - 7 if col_no == 28 else row_no + 2 |
|
1842 |
|
|
1843 |
start_row_no += math.ceil(len(pumps)) * 9 |
|
1844 |
|
|
1845 |
# Compressor |
|
1846 |
compressors = [] |
|
1847 |
row_no = start_row_no |
|
1848 |
col_no = start_col_no |
|
1849 |
for loop in loops: |
|
1850 |
for item in loop.items: |
|
1851 |
parent = item.parent |
|
1852 |
if parent: |
|
1853 |
name = str(item).replace( |
|
1854 |
'_{}'.format(str(item).split('_')[len(str(item).split('_')) - 1]), '') |
|
1855 |
if name in compressors: |
|
1856 |
continue |
|
1857 |
if name[:3] == 'R_K' or name[:3] == 'L_K': |
|
1858 |
|
|
1859 |
next_ws = self.get_work_sheet(work_book=wb, count=page_no, total_count=MAX_ROW_NO) |
|
1860 |
if ws != next_ws: |
|
1861 |
row_no = 2 |
|
1862 |
col_no = START_COL_NO |
|
1863 |
ws = next_ws |
|
1864 |
if ws not in sheet_loop_deviations: |
|
1865 |
sheet_loop_deviations.append(ws) |
|
1866 |
compressors.append(name) |
|
1867 |
|
|
1868 |
attr = item.parent.attribute |
|
1869 |
ws.cell(row_no, col_no, attr['Tag_No']).font = Font(bold=True, |
|
1870 |
underline='single', |
|
1871 |
size=11) |
|
1872 |
|
|
1873 |
row_no += 1 |
|
1874 |
page_no += 1 |
|
1875 |
ws.cell(row_no, col_no, 'Suct.P :') |
|
1876 |
col_no += 2 |
|
1877 |
ws.cell(row_no, col_no, round(attr['Suct.P'], 3)) |
|
1878 |
col_no += 1 |
|
1879 |
ws.cell(row_no, col_no, '{}.g'.format(units['Pressure'])) |
|
1880 |
|
|
1881 |
row_no += 1 |
|
1882 |
page_no += 1 |
|
1883 |
col_no = 24 if col_no == 27 else 28 |
|
1884 |
ws.cell(row_no, col_no, 'Disc.P :') |
|
1885 |
col_no += 2 |
|
1886 |
ws.cell(row_no, col_no, round(attr['Disc.P'], 3)) |
|
1887 |
col_no += 1 |
|
1888 |
ws.cell(row_no, col_no, '{}.g'.format(units['Pressure'])) |
|
1889 |
|
|
1890 |
row_no += 1 |
|
1891 |
page_no += 1 |
|
1892 |
col_no = 24 if col_no == 27 else 28 |
|
1893 |
ws.cell(row_no, col_no, 'Diff.P :') |
|
1894 |
col_no += 2 |
|
1895 |
ws.cell(row_no, col_no, round(attr['Diff.P'], 3)) |
|
1896 |
col_no += 1 |
|
1897 |
ws.cell(row_no, col_no, units['Pressure']) |
|
1898 |
|
|
1899 |
row_no += 1 |
|
1900 |
page_no += 1 |
|
1901 |
col_no = 24 if col_no == 27 else 28 |
|
1902 |
ws.cell(row_no, col_no, 'HHP :') |
|
1903 |
col_no += 2 |
|
1904 |
ws.cell(row_no, col_no, round(attr['HHP'], 3)) |
|
1905 |
col_no += 1 |
|
1906 |
ws.cell(row_no, col_no, units['Power']) |
|
1907 |
|
|
1908 |
col_no = 28 if col_no == 27 else 24 |
|
1909 |
row_no = row_no - 4 if col_no == 28 else row_no + 2 |
|
1910 |
|
|
1911 |
start_row_no += math.ceil(len(compressors)) * 9 |
|
1912 |
|
|
1913 |
# Control Valve |
|
1914 |
control_valves = [] |
|
1915 |
row_no = start_row_no |
|
1916 |
col_no = start_col_no |
|
1917 |
for loop in loops: |
|
1918 |
for item in loop.items: |
|
1919 |
parent = item.parent |
|
1920 |
if parent: |
|
1921 |
name = str(item).replace( |
|
1922 |
'_{}'.format(str(item).split('_')[len(str(item).split('_')) - 1]), '') |
|
1923 |
if name in control_valves: |
|
1924 |
continue |
|
1925 |
if name[:3] == 'CV_': |
|
1926 |
next_ws = self.get_work_sheet(work_book=wb, count=page_no, total_count=MAX_ROW_NO) |
|
1927 |
if ws != next_ws: |
|
1928 |
row_no = 2 |
|
1929 |
col_no = START_COL_NO |
|
1930 |
ws = next_ws |
|
1931 |
if ws not in sheet_loop_deviations: |
|
1932 |
sheet_loop_deviations.append(ws) |
|
1933 |
control_valves.append(name) |
|
1934 |
|
|
1935 |
attr = item.parent.attribute |
|
1936 |
if 'Tag_No' in attr: |
|
1937 |
ws.cell(row_no, col_no, attr['Tag_No']).font = Font(bold=True, |
|
1938 |
underline='single', |
|
1939 |
size=11) |
|
1940 |
|
|
1941 |
row_no += 1 |
|
1942 |
page_no += 1 |
|
1943 |
ws.cell(row_no, col_no, 'Inlet P :') |
|
1944 |
col_no += 2 |
|
1945 |
if 'Suct.P' in attr: |
|
1946 |
ws.cell(row_no, col_no, round(attr['Suct.P'], 3)) |
|
1947 |
col_no += 1 |
|
1948 |
ws.cell(row_no, col_no, '{}.g'.format(units['Pressure'])) |
|
1949 |
|
|
1950 |
row_no += 1 |
|
1951 |
page_no += 1 |
|
1952 |
col_no = 24 if col_no == 27 else 28 |
|
1953 |
ws.cell(row_no, col_no, 'Outlet P :') |
|
1954 |
col_no += 2 |
|
1955 |
if 'Disc.P' in attr: |
|
1956 |
ws.cell(row_no, col_no, round(attr['Disc.P'], 3)) |
|
1957 |
col_no += 1 |
|
1958 |
ws.cell(row_no, col_no, '{}.g'.format(units['Pressure'])) |
|
1959 |
|
|
1960 |
row_no += 1 |
|
1961 |
page_no += 1 |
|
1962 |
col_no = 24 if col_no == 27 else 28 |
|
1963 |
ws.cell(row_no, col_no, 'Diff.P :') |
|
1964 |
col_no += 2 |
|
1965 |
if 'Diff.P' in attr: |
|
1966 |
ws.cell(row_no, col_no, round(attr['Diff.P'], 3)) |
|
1967 |
col_no += 1 |
|
1968 |
ws.cell(row_no, col_no, units['Pressure']) |
|
1969 |
|
|
1970 |
row_no += 1 |
|
1971 |
page_no += 1 |
|
1972 |
col_no = 24 if col_no == 27 else 28 |
|
1973 |
ws.cell(row_no, col_no, 'dP Ratio :') |
|
1974 |
col_no += 2 |
|
1975 |
if 'dP Ratio' in attr: |
|
1976 |
ws.cell(row_no, col_no, round(attr['dP Ratio'] * 100, 2)) |
|
1977 |
col_no += 1 |
|
1978 |
ws.cell(row_no, col_no, '%') |
|
1979 |
|
|
1980 |
col_no = 28 if col_no == 27 else 24 |
|
1981 |
row_no = row_no - 4 if col_no == 28 else row_no + 2 |
|
1982 |
|
|
1983 |
for sheet_loop_deviation in sheet_loop_deviations: |
|
1984 |
sheet_loop_deviation['X1'].value = 'Loop_Deviation' |
|
1985 |
|
|
1931 | 1986 |
current_ws = wb.get_sheet_by_name('Page (1)') |
1932 | 1987 |
# write hmb data |
1933 | 1988 |
drawing = app_doc_data.activeDrawing |
... | ... | |
1939 | 1994 |
for hmb in _hmbs: |
1940 | 1995 |
if hmb.isDeleted == True: |
1941 | 1996 |
continue |
1942 |
|
|
1943 |
ws = self.get_work_sheet(wb, stream_count) |
|
1997 |
ws = self.get_work_sheet(work_book =wb, count= stream_count, total_count = 20) |
|
1944 | 1998 |
if ws != current_ws: |
1945 | 1999 |
current_ws = ws |
1946 | 2000 |
col_no = 3 |
... | ... | |
2275 | 2329 |
ws.cell(35, 30, f"Pressure Drop ({units['Pressure']}/{units['Length']})") # Pressure Drop |
2276 | 2330 |
ws.cell(row_no, 33, units['Pressure']) # Total |
2277 | 2331 |
|
2278 |
def get_work_sheet(self, work_book, count): |
|
2279 |
page_no = math.ceil(count / 20)
|
|
2332 |
def get_work_sheet(self, work_book, count, total_count):
|
|
2333 |
page_no = math.ceil(count / total_count)
|
|
2280 | 2334 |
return work_book.get_sheet_by_name('Page ({})'.format(page_no)) |
2281 | 2335 |
|
2282 | 2336 |
def display_output(self): |
내보내기 Unified diff