Rack längen werden in ihrer gesplitteten Form (Rack 2-0, Rack 2-1) aus routing.py an drawdxf.py übergeben und in Excel Ausgabe aufgenommen. c-, v-, t-, und d-Racks werden ignoriert
This commit is contained in:
+19
-3
@@ -2,7 +2,7 @@ import argparse
|
||||
import ezdxf
|
||||
import json
|
||||
import os.path
|
||||
from dataclasses import dataclass, asdict, fields
|
||||
from dataclasses import dataclass, asdict, field
|
||||
from dacite import from_dict
|
||||
from typing import List, Dict
|
||||
from datetime import datetime
|
||||
@@ -52,6 +52,7 @@ class Polylines:
|
||||
errors_dists_not_in_layout: List[str]
|
||||
errors_sensors_not_in_layout: List[str]
|
||||
errors_missing_attributes: Dict[str, str]
|
||||
rack_lengths: Dict[str, float] = field(default_factory = dict)
|
||||
|
||||
|
||||
def add_polyline(msp, points:Polyline, dxf_attribs):
|
||||
@@ -283,7 +284,7 @@ def mark_missings(all_artnrs):
|
||||
|
||||
def write_excel_from_json(plines: Polylines, sens2cable: dict, outpath: str, with_bom=True):
|
||||
"""
|
||||
Orchestriert die Erstellung der Excel-Reports (Kabelübersicht und Stückliste).
|
||||
Steuert die Erstellung der Excel-Reports (Kabelübersicht und Stückliste).
|
||||
"""
|
||||
# 1. Daten aggregieren und für die Reports vorbereiten
|
||||
processed_data = _process_cable_data(plines, sens2cable)
|
||||
@@ -293,8 +294,9 @@ def write_excel_from_json(plines: Polylines, sens2cable: dict, outpath: str, wit
|
||||
|
||||
_create_cable_list_sheet(wb_main.active, plines, sens2cable, bezeichner_cfg)
|
||||
_create_cable_summary_sheet(wb_main.create_sheet(), processed_data)
|
||||
_create_rack_lengths_sheet(wb_main.create_sheet(), plines)
|
||||
_create_error_sheets(wb_main, plines)
|
||||
|
||||
|
||||
wb_main.save(outpath)
|
||||
print("Cable-Summary exported to Excel file")
|
||||
|
||||
@@ -402,6 +404,20 @@ def _create_cable_summary_sheet(ws, processed_data):
|
||||
length_summary.get(artnr, "")
|
||||
])
|
||||
|
||||
def _create_rack_lengths_sheet(ws, plines):
|
||||
"""Erstellt das Arbeitsblatt 'Rack-Lengths'."""
|
||||
ws.title = "Rack-Lengths"
|
||||
ws.append(["Rack-ID", "Length (m)"])
|
||||
ws.column_dimensions['A'].width = 18
|
||||
ws.column_dimensions['B'].width = 15
|
||||
|
||||
for rackname, length in plines.rack_lengths.items():
|
||||
classifier = rackname[0]
|
||||
if classifier in ("t", "v", "c", "d"):
|
||||
continue
|
||||
else:
|
||||
ws.append([rackname, length])
|
||||
|
||||
def _create_error_sheets(wb, plines):
|
||||
"""Erstellt die Arbeitsblätter für alle aufgetretenen Fehler."""
|
||||
# Sheet: ERR-Equipment-Connection
|
||||
|
||||
Reference in New Issue
Block a user