diff --git a/cfg/bezeichner.cfg b/cfg/bezeichner.cfg index f7b0b2b..ba0cf70 100644 --- a/cfg/bezeichner.cfg +++ b/cfg/bezeichner.cfg @@ -1,70 +1,72 @@ [Sivasnummern] 725000015 = 4G1,5mm², Steuerleitung -722001300 = M12 St-0°/ M8 Bu-0° 1m -722001301 = M12 St-0°/ M8 Bu-0° 2m -722001302 = M12 St-0°/ M8 Bu-0° 3m -722001303 = M12 St-0°/ M8 Bu-0° 5m -722001304 = M12 St-0°/ M8 Bu-0° 10m -722001305 = M12 St-0°/ M8 Bu-0° 15m -722001306 = M12 St-0°/ M8 Bu-0° 20m -722001307 = M12 St-0°/ M8 Bu-0° 25m -722001308 = M12 St-0°/ M8 Bu-0° 2,5m -722001309 = M12 St-0°/ M8 Bu-0° 30m -722001310 = M12 St-0°/ M8 Bu-0° 35m -722001311 = M12 St-0°/ M8 Bu-0° 40m -722001312 = M12 St-0°/ M8 Bu-0° 50m -722001330 = M12 St-0°/ M12 Bu-90° 1m -722001331 = M12 St-0°/ M12 Bu-90° 2m -722001332 = M12 St-0°/ M12 Bu-90° 3m -722001333 = M12 St-0°/ M12 Bu-90° 5m -722001334 = M12 St-0°/ M12 Bu-90° 10m -722001335 = M12 St-0°/ M12 Bu-90° 15m -722001336 = M12 St-0°/ M12 Bu-90° 20m -722001337 = M12 St-0°/ M12 Bu-90° 25m -722001338 = M12 St-0°/ M12 Bu-90° 2,5 -722001339 = M12 St-0°/ M12 Bu-90° 30m -722001340 = M12 St-0°/ M12 Bu-90° 35m -722001341 = M12 St-0°/ M12 Bu-90° 40m -722001342 = M12 St-0°/ M12 Bu-90° 50m -722001352 = M12 St-0°/ M12 Bu-0° 3m -722001353 = M12 St-0°/ M12 Bu-0° 5m -722001354 = M12 St-0°/ M12 Bu-0° 10m -722001355 = M12 St-0°/ M12 Bu-0° 15m -722001356 = M12 St-0°/ M12 Bu-0° 20m -722001357 = M12 St-0°/ M12 Bu-0° 30m -722001358 = M12 St-0°/ M12 Bu-0° 2,5m -722001359 = M12 St-0°/ M12 Bu-0° 40m -726001062 = Patchkabel 2xRJ45 0,25m -726001040 = Patchkabel 2xRJ45 0,5m -726001041 = Patchkabel 2xRJ45 1,0m -726001042 = Patchkabel 2xRJ45 1,5m -726001043 = Patchkabel 2xRJ45 2,0m -726001044 = Patchkabel 2xRJ45 3,0m -726001045 = Patchkabel 2xRJ45 5,0m -726001046 = Patchkabel 2xRJ45 10m -726001047 = Patchkabel 2xRJ45 15m -726001048 = Patchkabel 2xRJ45 20m -726001049 = Patchkabel 2xRJ45 25m -726001050 = Patchkabel 2xRJ45 30m -726001051 = Patchkabel 2xRJ45 35m -726001052 = Patchkabel 2xRJ45 40m -726001053 = Patchkabel 2xRJ45 45m -726001054 = Patchkabel 2xRJ45 50m -726001055 = Patchkabel 2xRJ45 55m -726001056 = Patchkabel 2xRJ45 60m -726001057 = Patchkabel 2xRJ45 65m -726001060 = Patchkabel 2xRJ45 85m -726001061 = Patchkabel 2xRJ45 95m +722001300 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 1m +722001301 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 2m +722001302 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 3m +722001303 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 5m +722001304 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 10m +722001305 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 15m +722001306 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 20m +722001307 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 25m +722001308 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 2,5m +722001310 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 35m +722001311 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 40m +722001312 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 50m +722001330 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 1m +722001331 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 2m +722001332 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 3m +722001333 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 5m +722001334 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 10m +722001335 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 15m +722001336 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 20m +722001337 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 25m +722001338 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 2,5 +722001339 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 30m +722001340 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 35m +722001341 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 40m +722001342 = Verb.-Leitung M12 St-0°/ M12 Bu-90° PUR UL/CSA 50m +722001352 = Verb.-Leitung M12 St-0°/ M12 Bu-0° PUR UL/CSA 3m +722001353 = Verb.-Leitung M12 St-0°/ M12 Bu-0° PUR UL/CSA 5m +722001354 = Verb.-Leitung M12 St-0°/ M12 Bu-0° PUR UL/CSA 10m +722001355 = Verb.-Leitung M12 St-0°/ M12 Bu-0° PUR UL/CSA 15m +722001356 = Verb.-Leitung M12 St-0°/ M12 Bu-0° PUR UL/CSA 20m +722001357 = Verb.-Leitung M12 St-0°/ M12 Bu-0° PUR UL/CSA 30m +722001358 = Verb.-Leitung M12 St-0°/ M12 Bu-0° PUR UL/CSA 2,5m +722001359 = Verb.-Leitung M12 St-0°/ M12 Bu-0° PUR UL/CSA 40m +726001062 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 0,25m grün +726001040 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 0,5m grün +726001041 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 1,0m grün +726001042 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 1,5m grün +726001043 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 2,0m grün +726001044 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 3,0m grün +726001045 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 5,0m grün +726001046 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 10m grün +726001047 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 15m grün +726001048 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 20m grün +726001049 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 25m grün +726001050 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 30m grün +726001051 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 35m grün +726001052 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 40m grün +726001053 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 45m grün +726001054 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 50m grün +726001055 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 55m grün +726001056 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 60m grün +726001057 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 65m grün +726001060 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 85m grün +726001061 = Patchkabel Cat6A 4P26 S/FTP 2xRJ45 95m grün +722001309 = Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 30m 720002003 = SENSOR INDUK. M18x1, SA=12MM N-BÜ/NO, KABEL-150MM 610554001 = Sensorhalter für WT18-3P420 oder -BG 610554002 = CPC Sensorhalter mit Reflextaster P1NH601 -BG 827072112 = Traversenabfrage ST kpl. mit Lichttaster 827072111 = Traversenabfrage AP110 mit Lichttaster 827072013 = STATISCHE TROLLEYABFRAGE L=700 FÜR AP110 +790902001 = E-Teile für SEW Motor ASE1/HAN10ES - BG +200000248 = Lichttaster LP+SP als Staumelder [Missing] -720000011 = 8270720111 = 8270720112 = 8270720113 = +720000011 = diff --git a/lib/drawdxf.py b/lib/drawdxf.py index a9b181d..43550a3 100644 --- a/lib/drawdxf.py +++ b/lib/drawdxf.py @@ -432,42 +432,58 @@ def write_excel_from_json(plines:Polylines, sens2cable: dict, outpath:str, with_ wb2 = Workbook() ws1 = wb2.active ws1.title = "BOM" - ws1.append(["Art.-Number", "Name (SIVAS)", "Amount (pcs)", "Length (m)"]) + ws1.append(["Art.-Number", "Amount (pcs)", "Length (m)", "Name (SIVAS)"]) + + ws1.column_dimensions['A'].width = 15 + ws1.column_dimensions['B'].width = 12 + ws1.column_dimensions['C'].width = 10 + ws1.column_dimensions['D'].width = 50 # Sensoren separat auflisten for artnr in sorted(sensor_summary.keys()): - name = bezeichner_cfg["Sivasnummern"].get(artnr, "") - count = sensor_summary[artnr] if artnr == "": name = "Keine Artikelnummer vergeben. Layout prüfen." - elif name == "": - name = f"Kein Eintrag zu Art.-Nr: {artnr} in bezeichner.cfg." + else: + name = bezeichner_cfg["Sivasnummern"].get(artnr, "") + if name == "": + name = f"Kein Eintrag zu Art.-Nr: {artnr} in bezeichner.cfg." + + count = sensor_summary[artnr] + ws1.append([ artnr, - name, count, - "" # Sensoren haben keine Länge + "", # Sensoren haben keine Länge + name ]) # Kabel separat auflisten for artnr in sorted(set(count_summary.keys()) | set(length_summary.keys())): - name = bezeichner_cfg["Sivasnummern"].get(artnr, "") - count = count_summary.get(artnr, "") - length = length_summary.get(artnr, "") if artnr == "": name = "Keine Artikelnummer vergeben. Layout prüfen." - elif name == "": - name = f"Kein Eintrag zu Art.-Nr: {artnr} in bezeichner.cfg." + else: + name = bezeichner_cfg["Sivasnummern"].get(artnr, "") + if name == "": + name = f"Kein Eintrag zu Art.-Nr: {artnr} in bezeichner.cfg." + + count = count_summary.get(artnr, "") + length = length_summary.get(artnr, "") ws1.append([ artnr, - name, count, - length + length, + name ]) # Neues Sheet für UV-spezifische Übersicht - ws_uv = wb2.create_sheet("BOM by UV") - ws_uv.append(["UV", "Art.-Number", "Name (SIVAS)", "Amount (pcs)", "Length (m)"]) + ws2 = wb2.create_sheet("BOM by UV") + ws2.append(["UV", "Art.-Number", "Amount (pcs)", "Length (m)", "Name (SIVAS)"]) + + ws2.column_dimensions['A'].width = 15 + ws2.column_dimensions['B'].width = 15 + ws2.column_dimensions['C'].width = 12 + ws2.column_dimensions['D'].width = 10 + ws2.column_dimensions['E'].width = 50 all_uvs = set(uv_sensor_count.keys()) | set(uv_artnr_count.keys()) | set(uv_artnr_length.keys()) @@ -478,39 +494,44 @@ def write_excel_from_json(plines:Polylines, sens2cable: dict, outpath:str, with_ all_artnrs.update(uv_artnr_length.get(uv, {}).keys()) for artnr in sorted(all_artnrs): + if artnr == "": + name = "Keine Artikelnummer vergeben. Layout prüfen." + else: + name = bezeichner_cfg["Sivasnummern"].get(artnr, "") + if name == "": + name = f"Kein Eintrag zu Art.-Nr: {artnr} in bezeichner.cfg." sensor_amount = uv_sensor_count.get(uv, {}).get(artnr, 0) cable_count = uv_artnr_count.get(uv, {}).get(artnr, 0) cable_length = uv_artnr_length.get(uv, {}).get(artnr, 0) - name = bezeichner_cfg["Sivasnummern"].get(artnr, "") # Sensoren separat eintragen (Anzahl) if sensor_amount > 0: - ws_uv.append([ + ws2.append([ uv, artnr, - name, sensor_amount, - "" + "", + name ]) # a) Nur Anzahl, wenn kein "MA" im Namen if cable_count > 0 and cable_length == 0: - ws_uv.append([ + ws2.append([ uv, artnr, - name, cable_count, - "" + "", + name ]) # b) Nur Länge, wenn Kabel mit "MA" (Meterware) if cable_length > 0: - ws_uv.append([ + ws2.append([ uv, artnr, - name, "", - cable_length + cable_length, + name ]) bom_path = outpath.replace("_cables.xlsx", "_BOM.xlsx")