Klasse 'Mengengerüst' fertiggestellt, Ausgabe in zwei json Files: Zusammenfassung und detailliert mit allen Werten aller Klassen
This commit is contained in:
@@ -152,3 +152,7 @@ cython_debug/
|
|||||||
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||||
#.idea/
|
#.idea/
|
||||||
|
|
||||||
|
|
||||||
|
# rieter ekalk json outputs
|
||||||
|
json_mengengeruest.json
|
||||||
|
zusammenfassung_mengengeruest.json
|
||||||
|
|||||||
+525
-31
@@ -1,13 +1,14 @@
|
|||||||
#from distutils.log import debug
|
#from distutils.log import debug
|
||||||
import math
|
import math
|
||||||
|
import sys
|
||||||
#from pickle import FALSE
|
#from pickle import FALSE
|
||||||
import unittest
|
import unittest
|
||||||
|
import json
|
||||||
|
JSON_IDENT =5
|
||||||
# Press Umschalt+F10 to execute it or replace it with your code.
|
# Press Umschalt+F10 to execute it or replace it with your code.
|
||||||
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
|
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
|
||||||
class MG():
|
class MG():
|
||||||
def __init__(self, deckblatt:dict, rsm_direct:dict, rsm_fa:dict, flyer_f40:dict, neuenhauser:dict, flyer:dict, puffer:dict, turm:dict):
|
def __init__(self, deckblatt:dict, rsm_direct:dict, rsm_fa:dict, flyer_f40:dict, neuenhauser:dict, flyer:dict, verbindungsstrecken_w:dict, puffer:dict, turm:dict):
|
||||||
mengen = {
|
mengen = {
|
||||||
#"SYSTEM":"",
|
#"SYSTEM":"",
|
||||||
#"RSM":0,
|
#"RSM":0,
|
||||||
@@ -28,6 +29,12 @@ class MG():
|
|||||||
#"Turm":0,
|
#"Turm":0,
|
||||||
#"Turm_Anzahl_Wendlungen":0,
|
#"Turm_Anzahl_Wendlungen":0,
|
||||||
}
|
}
|
||||||
|
# wenn Flyer Electrojet 1, dann sollten Vor- und Nachpuffer größer 1 sein
|
||||||
|
# wenn Neuenhauser 1, dann sollten Vor- und Nachpuffer größer 1 sein
|
||||||
|
# wenn Cason 1, dann sollten Vor- und Nachpuffer größer 1 sein
|
||||||
|
# wenn Puffer, dann mindestens 2 Strecken
|
||||||
|
# Bypass, wenn mindestens 2 Flyer oder 2 RSM
|
||||||
|
# Turm: kein Kriterium
|
||||||
self._RSM_Anzahl = deckblatt.get("RSM", 0)
|
self._RSM_Anzahl = deckblatt.get("RSM", 0)
|
||||||
rsm_direct_mengen = rsm_direct
|
rsm_direct_mengen = rsm_direct
|
||||||
rsm_direct_mengen["Anzahl"] = self._RSM_Anzahl #übernahme aus deckblatt
|
rsm_direct_mengen["Anzahl"] = self._RSM_Anzahl #übernahme aus deckblatt
|
||||||
@@ -51,17 +58,186 @@ class MG():
|
|||||||
turm_mengen = turm
|
turm_mengen = turm
|
||||||
turm_mengen["Turm"] = deckblatt.get("Turm", 0)
|
turm_mengen["Turm"] = deckblatt.get("Turm", 0)
|
||||||
turm_mengen["Anzahl_Wendlungen"] = deckblatt.get("Turm_Anzahl_Wendlungen", 0)
|
turm_mengen["Anzahl_Wendlungen"] = deckblatt.get("Turm_Anzahl_Wendlungen", 0)
|
||||||
print(turm_mengen["Anzahl_Wendlungen"])
|
verbindungsstrecken_w_mengen = verbindungsstrecken_w
|
||||||
|
|
||||||
|
#überprüfe welche Art von System, setze dict der unrelevanten klasse = 0
|
||||||
|
system = deckblatt.get("SYSTEM", "")
|
||||||
|
self._rsm_direct = RSM_direct({})
|
||||||
|
self._rsm_fa = RSM_FA({})
|
||||||
|
if(system.lower() == "direct"):
|
||||||
self._rsm_direct = RSM_direct(rsm_direct_mengen)
|
self._rsm_direct = RSM_direct(rsm_direct_mengen)
|
||||||
|
elif(system.lower() == "fa"):
|
||||||
self._rsm_fa = RSM_FA(rsm_fa_mengen)
|
self._rsm_fa = RSM_FA(rsm_fa_mengen)
|
||||||
|
|
||||||
self._flyer_f40 = Flyer_F40_EJet_inc_Putz(flyer_f40_mengen)
|
self._flyer_f40 = Flyer_F40_EJet_inc_Putz(flyer_f40_mengen)
|
||||||
self._neuenhauser = Putzmaschine_Neuenhauser(neuenhauser_mengen)
|
self._neuenhauser = Putzmaschine_Neuenhauser(neuenhauser_mengen)
|
||||||
self._flyer = Flyer_EJet(flyer_mengen)
|
self._flyer = Flyer_EJet(flyer_mengen)
|
||||||
|
self._verbindungsstrecken_w = Verbindungsstrecken_Wechsel(verbindungsstrecken_w_mengen)
|
||||||
self._puffer = Puffer(puffer_mengen)
|
self._puffer = Puffer(puffer_mengen)
|
||||||
self._turm = Turm(turm_mengen)
|
self._turm = Turm(turm_mengen)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def getresult(self):
|
||||||
|
res = {
|
||||||
|
"RSM direct": self._rsm_direct._Mengen,
|
||||||
|
"RSM FA": self._rsm_fa._Mengen,
|
||||||
|
"Flyer F40 (Electrojet) incl. Putzmaschine": self._flyer_f40._Mengen,
|
||||||
|
"Putzmaschine (Neuenhauser)": self._neuenhauser._Mengen,
|
||||||
|
"Flyer (Electrojet)": self._flyer._Mengen,
|
||||||
|
"Verbindungsstrecken/Wechsel": self._verbindungsstrecken_w._Mengen,
|
||||||
|
"Puffer": self._puffer._Mengen,
|
||||||
|
"Turm": self._turm._Mengen,
|
||||||
|
}
|
||||||
|
return res
|
||||||
|
|
||||||
|
def tojson(self, input:dict):
|
||||||
|
return json.dumps(input, sort_keys=False, indent=4)
|
||||||
|
|
||||||
|
def tofile(self):
|
||||||
|
json = self.tojson(self.getresult())
|
||||||
|
with open("json_mengengeruest.json", "w") as file:
|
||||||
|
file.write(json)
|
||||||
|
|
||||||
|
def ztofile(self):
|
||||||
|
json = self.tojson(self.zusammenfassung())
|
||||||
|
with open("zusammenfassung_mengengeruest.json", "w") as file:
|
||||||
|
file.write(json)
|
||||||
|
|
||||||
|
def zusammenfassung(self):
|
||||||
|
#in Excel Zellwerte und Bezüge der Spalte "G" können ignoriert werden
|
||||||
|
zmengen = {
|
||||||
|
"Sensor_optisch_Traverse": 0,
|
||||||
|
"Sensor_induktiv_Spulenalter_(Zug_positionierung)": 0,
|
||||||
|
"Sensor_Spulenprüfung_voll/leer": 0,
|
||||||
|
"Seilzugsschalter": 0,
|
||||||
|
"Drucktaster_automatische_Umfahrung": 0,
|
||||||
|
"Bedientableau_1-fach": 0,
|
||||||
|
"Bedientableau_2-fach": 0,
|
||||||
|
"Bedientableau_14-fach": 0,
|
||||||
|
"Interface_Putzmaschine": 0,
|
||||||
|
"Interface_Doffer": 0,
|
||||||
|
"Weiche": 0,
|
||||||
|
"Dreifachweiche": 0,
|
||||||
|
"Wechsel": 0,
|
||||||
|
"Stopper": 0,
|
||||||
|
"Meldelampe_Überstrom": 0,
|
||||||
|
"Hauptschalter_Ein-Meldung": 0,
|
||||||
|
"Werma_Rundumleuchte_Störung": 0,
|
||||||
|
"Weiche_nach_PM_(bipolar)": 0,
|
||||||
|
"Kreuzungsweiche": 0,
|
||||||
|
"RA_uni": 0,
|
||||||
|
"RA_uni_abhebbar": 0,
|
||||||
|
"RA_uni_ohne_SPS-Ansteuerung": 0,
|
||||||
|
"RA_bi": 0,
|
||||||
|
"RA_bi_ohne_SPS-Ansteuerung": 0,
|
||||||
|
"RA_bi_abhebbar": 0,
|
||||||
|
"Doppelstreckenantrieb": 0,
|
||||||
|
"gemeinsame_Wendung": 0,
|
||||||
|
"Gesamtanzahl_Antriebe": 0,
|
||||||
|
}
|
||||||
|
zmengen["Sensor_optisch_Traverse"] = self._rsm_direct._Mengen.get("Sensor_optisch_Traverse", 0) +\
|
||||||
|
self._rsm_fa._Mengen.get("Sensor_optisch_Traverse", 0) +\
|
||||||
|
self._flyer_f40._Mengen.get("Sensor_optisch_Traverse", 0) +\
|
||||||
|
self._neuenhauser._Mengen.get("Sensor_optisch_Traverse", 0) +\
|
||||||
|
self._flyer._Mengen.get("Sensor_optisch_Traverse", 0) +\
|
||||||
|
self._verbindungsstrecken_w._Mengen.get("Sensor_optisch_Traverse",0) +\
|
||||||
|
self._verbindungsstrecken_w._Mengen.get("Dreifachweiche",0) * 2 +\
|
||||||
|
self._verbindungsstrecken_w._Mengen.get("Kreuzungsweiche",0) * 4 +\
|
||||||
|
self._puffer._Mengen.get("Sensor_optisch_Traverse",0) +\
|
||||||
|
self._turm._Mengen.get("Sensor_optisch_Traverse",0)
|
||||||
|
|
||||||
|
|
||||||
|
zmengen["Sensor_induktiv_Spulenalter_(Zug_positionierung)"] = self._flyer_f40._Mengen.get("Sensor_induktiv_Spulenhalter",0) +\
|
||||||
|
self._neuenhauser._Mengen.get("Sensorik_Zugpositionierung",0)
|
||||||
|
|
||||||
|
zmengen["Sensor_Spulenprüfung_voll/leer"] = self._neuenhauser._Mengen.get("Sensor_WT18_Spulenprüfung_voll/leer",0)
|
||||||
|
zmengen["Seilzugsschalter"] = self._rsm_fa._Mengen.get("Seilzugsschalter", 0)
|
||||||
|
zmengen["Drucktaster_automatische_Umfahrung"] = self._rsm_fa._Mengen.get("Mit_Drucktaster", 0)
|
||||||
|
zmengen["Bedientableau_1-fach"] = self._rsm_fa._Mengen.get("Bedientableau_1-fach", 0) + self._verbindungsstrecken_w._Mengen.get("Bedientableau_1-fach", 0)
|
||||||
|
zmengen["Bedientableau_2-fach"] = self._rsm_direct._Mengen.get("Bedientableau_2-fach", 0) +\
|
||||||
|
self._rsm_fa._Mengen.get("Bedientableau_2-fach", 0) +\
|
||||||
|
self._flyer_f40._Mengen.get("Bedientableau_2-fach", 0) +\
|
||||||
|
self._neuenhauser._Mengen.get("Bedientableau_2-fach", 0) +\
|
||||||
|
self._flyer._Mengen.get("Bedientableau_2-fach", 0) +\
|
||||||
|
self._verbindungsstrecken_w._Mengen.get("Bedientableau_2-fach", 0) +\
|
||||||
|
self._turm._Mengen.get("Bedientableau_2-fach", 0)
|
||||||
|
zmengen["Bedientableau_14-fach"] = self._verbindungsstrecken_w._Mengen.get("Bedientableau_14-fach", 0)
|
||||||
|
zmengen["Interface_Putzmaschine"] = self._neuenhauser._Mengen.get("Interface_Putzmaschine", 0)
|
||||||
|
zmengen["Interface_Doffer"] = self._flyer_f40._Mengen.get("Interface_Doffer", 0) + self._flyer._Mengen.get("Interface_Doffer", 0)
|
||||||
|
zmengen["Weiche"] = self._rsm_direct._Mengen.get("Weiche", 0) +\
|
||||||
|
self._rsm_fa._Mengen.get("Weiche", 0) +\
|
||||||
|
self._flyer_f40._Mengen.get("Weiche", 0) +\
|
||||||
|
self._neuenhauser._Mengen.get("Weiche", 0) +\
|
||||||
|
self._flyer._Mengen.get("Weiche", 0) +\
|
||||||
|
self._verbindungsstrecken_w._Mengen.get("Weiche", 0) +\
|
||||||
|
self._puffer._Mengen.get("Weiche", 0) +\
|
||||||
|
self._turm._Mengen.get("Weiche", 0)
|
||||||
|
zmengen["Dreifachweiche"] = self._rsm_direct._Mengen.get("Weiche_Gemeinsame_Rückstellung", 0) +\
|
||||||
|
self._flyer_f40._Mengen.get("Dreifachweiche", 0) +\
|
||||||
|
self._flyer._Mengen.get("Dreifachweiche", 0) #TODO: ist "Weiche_Gemeinsame_Rückstellung" == "Dreifachweiche"?
|
||||||
|
zmengen["Wechsel"] = self._flyer_f40._Mengen.get("Wechsel", 0) +\
|
||||||
|
self._flyer._Mengen.get("Wechsel", 0)
|
||||||
|
zmengen["Stopper"] = self._flyer_f40._Mengen.get("Stopper", 0)
|
||||||
|
zmengen["Meldelampe_Überstrom"] = self._rsm_direct._Mengen.get("Meldelampe_Überstrom", 0) +\
|
||||||
|
self._rsm_fa._Mengen.get("Meldelampe_Überstrom", 0) +\
|
||||||
|
self._flyer_f40._Mengen.get("Meldelampe_Überstrom", 0) +\
|
||||||
|
self._neuenhauser._Mengen.get("Meldelampe_Überstrom", 0) +\
|
||||||
|
self._flyer._Mengen.get("Meldelampe_Überstrom", 0) +\
|
||||||
|
self._puffer._Mengen.get("Meldelampe_Überstrom", 0)
|
||||||
|
zmengen["Hauptschalter_Ein-Meldung"] = self._rsm_direct._Mengen.get("Hauptschalter_Ein-Meldung", 0) +\
|
||||||
|
self._rsm_fa._Mengen.get("Hauptschalter_Ein-Meldung", 0) +\
|
||||||
|
self._flyer_f40._Mengen.get("Hauptschalter_Ein-Meldung", 0) +\
|
||||||
|
self._neuenhauser._Mengen.get("Hauptschalter_Ein-Meldung", 0) +\
|
||||||
|
self._flyer._Mengen.get("Hauptschalter_Ein-Meldung", 0) +\
|
||||||
|
self._puffer._Mengen.get("Hauptschalter_Ein-Meldung", 0)
|
||||||
|
zmengen["Werma_Rundumleuchte_Störung"] = self._rsm_direct._Mengen.get("Werma_Rundumleuchte_Störung", 0) +\
|
||||||
|
self._rsm_fa._Mengen.get("Werma_Rundumleuchte_Störung", 0) +\
|
||||||
|
self._flyer_f40._Mengen.get("Werma_Rundumleuchte_Störung", 0) +\
|
||||||
|
self._neuenhauser._Mengen.get("Werma_Rundumleuchte_Störung", 0) +\
|
||||||
|
self._flyer._Mengen.get("Werma_Rundumleuchte_Störung", 0) +\
|
||||||
|
self._verbindungsstrecken_w._Mengen.get("Werma_Rundumleuchte_Störung", 0)
|
||||||
|
zmengen["Weiche_nach_PM_(bipolar)"] = self._flyer_f40._Mengen.get("Weiche_nach_PM_(bipolar)", 0) +\
|
||||||
|
self._neuenhauser._Mengen.get("Weiche_nach_PM_(bipolar)", 0)
|
||||||
|
zmengen["Kreuzungsweiche"] = self._verbindungsstrecken_w._Mengen.get("Kreuzungsweiche", 0)
|
||||||
|
zmengen["RA_uni"] = self._verbindungsstrecken_w._Mengen.get("RA_uni", 0) +\
|
||||||
|
self._flyer_f40._Mengen.get("RA_uni", 0)
|
||||||
|
zmengen["RA_uni_abhebbar"] = self._flyer_f40._Mengen.get("RA_uni_abhebbar", 0) +\
|
||||||
|
self._neuenhauser._Mengen.get("RA_uni_abhebbar", 0)
|
||||||
|
zmengen["RA_uni_ohne_SPS-Ansteuerung"] = self._flyer_f40._Mengen.get("RA_uni_ohne_SPS-Ansteuerung", 0) +\
|
||||||
|
self._neuenhauser._Mengen.get("RA_uni_ohne_SPS-Ansteuerung", 0) +\
|
||||||
|
self._verbindungsstrecken_w._Mengen.get("RA_uni_ohne_SPS-Ansteuerung", 0)
|
||||||
|
zmengen["RA_bi"] = self._rsm_fa._Mengen.get("RRA_bi", 0) +\
|
||||||
|
self._flyer_f40._Mengen.get("RA_bi", 0) +\
|
||||||
|
self._flyer._Mengen.get("RA_bi", 0) +\
|
||||||
|
self._verbindungsstrecken_w._Mengen.get("RA_bi", 0) +\
|
||||||
|
self._puffer._Mengen.get("RA_bi", 0) +\
|
||||||
|
self._turm._Mengen.get("RA_bi", 0)
|
||||||
|
zmengen["RA_bi_ohne_SPS-Ansteuerung"] = self._rsm_fa._Mengen.get("RRA_bi_ohne_SPS-Ansteuerung", 0) +\
|
||||||
|
self._flyer_f40._Mengen.get("RRA_bi_ohne_SPS-Ansteuerung", 0) +\
|
||||||
|
self._flyer._Mengen.get("RA_bi_ohne_SPS-Ansteuerung", 0) +\
|
||||||
|
self._verbindungsstrecken_w._Mengen.get("RA_bi_ohne_SPS-Ansteuerung", 0) +\
|
||||||
|
self._turm._Mengen.get("RA_bi_ohne_SPS-Ansteuerung", 0) #TODO: Notation beachten: RA_bi, RRA_bi
|
||||||
|
zmengen["RA_bi_abhebbar"] = self._rsm_direct._Mengen.get("RA_bi_abhebbar", 0) +\
|
||||||
|
self._flyer_f40._Mengen.get("RRA_BI_abhebbar", 0) +\
|
||||||
|
self._flyer._Mengen.get("RA_bi_abhebbar", 0) #TODO: Notation beachten: RA_bi, RRA_bi
|
||||||
|
zmengen["Doppelstreckenantrieb"] = self._rsm_direct._Mengen.get("Doppelstreckenantrieb", 0) +\
|
||||||
|
self._flyer_f40._Mengen.get("Doppelstreckenantrieb", 0) +\
|
||||||
|
self._neuenhauser._Mengen.get("Doppelstreckenantrieb", 0) +\
|
||||||
|
self._flyer._Mengen.get("Doppelstreckenantrieb", 0) +\
|
||||||
|
self._verbindungsstrecken_w._Mengen.get("Doppelstreckenantrieb", 0) +\
|
||||||
|
self._puffer._Mengen.get("Doppelstreckenantrieb", 0)
|
||||||
|
zmengen["gemeinsame_Wendung"] = self._rsm_direct._Mengen.get("gemeinsame_Wendung", 0) +\
|
||||||
|
self._rsm_fa._Mengen.get("gemeinsame_Wendung", 0)
|
||||||
|
zmengen["Gesamtanzahl_Antriebe"] = zmengen.get("RA_uni", 0) +\
|
||||||
|
zmengen.get("RA_uni_abhebbar", 0) +\
|
||||||
|
zmengen.get("RA_uni_ohne_SPS-Ansteuerung", 0) +\
|
||||||
|
zmengen.get("RA_bi", 0) +\
|
||||||
|
zmengen.get("RA_bi_ohne_SPS-Ansteuerung", 0) +\
|
||||||
|
zmengen.get("RA_bi_abhebbar", 0) +\
|
||||||
|
zmengen.get("Doppelstreckenantrieb", 0)
|
||||||
|
return zmengen
|
||||||
|
|
||||||
# RSM_direct:
|
# RSM_direct:
|
||||||
class RSM_direct():
|
class RSM_direct():
|
||||||
def __init__(self, anzahl:dict):
|
def __init__(self, anzahl:dict):
|
||||||
@@ -117,6 +293,11 @@ class RSM_direct():
|
|||||||
def anzahl(self, partname):
|
def anzahl(self, partname):
|
||||||
return self._Mengen.get(partname, 0)
|
return self._Mengen.get(partname, 0)
|
||||||
|
|
||||||
|
def tojson(self):
|
||||||
|
return json.dumps(self._Mengen)
|
||||||
|
|
||||||
|
def mengengeruest(self):
|
||||||
|
return self._Mengen
|
||||||
# RSM_FA:
|
# RSM_FA:
|
||||||
class RSM_FA():
|
class RSM_FA():
|
||||||
def __init__(self, anzahl:dict):
|
def __init__(self, anzahl:dict):
|
||||||
@@ -129,7 +310,6 @@ class RSM_FA():
|
|||||||
"RSM-Einfahrt_Ein-/Beidseitig":False,
|
"RSM-Einfahrt_Ein-/Beidseitig":False,
|
||||||
#"Sensor_optisch_Traverse":0,
|
#"Sensor_optisch_Traverse":0,
|
||||||
"Sensor_optisch_Traverse_zusätzlich":0,
|
"Sensor_optisch_Traverse_zusätzlich":0,
|
||||||
"Sensor_optisch_Traverse_Korrektur":0,
|
|
||||||
#"Bedientableau_1-fach":0,
|
#"Bedientableau_1-fach":0,
|
||||||
"Bedientableau_1-fach_Korrektur":0,
|
"Bedientableau_1-fach_Korrektur":0,
|
||||||
#"Bedientableau_2-fach":0,
|
#"Bedientableau_2-fach":0,
|
||||||
@@ -143,7 +323,6 @@ class RSM_FA():
|
|||||||
"gemeinsame_Wendung":0,
|
"gemeinsame_Wendung":0,
|
||||||
#"Seilzugschalter":0,
|
#"Seilzugschalter":0,
|
||||||
#"Mit_Drucktaster":0,
|
#"Mit_Drucktaster":0,
|
||||||
"Mit_Drucktaster_Korrektur":0,
|
|
||||||
#"Meldelampe_Überstrom":0,
|
#"Meldelampe_Überstrom":0,
|
||||||
"Meldelampe_Überstrom_Korrektur":0,
|
"Meldelampe_Überstrom_Korrektur":0,
|
||||||
#"Hauptschalter_Ein-Meldung":0,
|
#"Hauptschalter_Ein-Meldung":0,
|
||||||
@@ -164,9 +343,9 @@ class RSM_FA():
|
|||||||
sensorfaktor_premium = 4
|
sensorfaktor_premium = 4
|
||||||
if(anzahl.get("RSM-Einfahrt_Ein-/Beidseitig", False)):
|
if(anzahl.get("RSM-Einfahrt_Ein-/Beidseitig", False)):
|
||||||
sensorfaktor_beidseitig = 1
|
sensorfaktor_beidseitig = 1
|
||||||
self._Mengen["Sensor_optisch_Traverse"] = self._RSM_Anzahl*(sensorfaktor_premium + sensorfaktor_beidseitig) + anzahl.get("Sensor_optisch_Traverse_zusätzlich", 0) + anzahl.get("Sensor_optisch_Traverse_Korrektur", 0) # TODO Korrekturfaktor hier auch anwenden, da in Excel Zelle (C30) nicht grau, wird aber addiert?
|
self._Mengen["Sensor_optisch_Traverse"] = self._RSM_Anzahl*(sensorfaktor_premium + sensorfaktor_beidseitig) + anzahl.get("Sensor_optisch_Traverse_zusätzlich", 0)
|
||||||
self._Mengen["Sensor_optisch_Traverse_zusätzlich"] = anzahl.get("Sensor_optisch_Traverse_zusätzlich", 0)
|
self._Mengen["Sensor_optisch_Traverse_zusätzlich"] = anzahl.get("Sensor_optisch_Traverse_zusätzlich", 0)
|
||||||
self._Mengen["Sensor_optisch_Traverse_Korrektur"] = anzahl.get("Sensor_optisch_Traverse_Korrektur", 0) #TODO: hier auch Korrektur anwenden? Zelle nicht ausgegraut
|
#hier keine Korrektur, dafür "Zusätzlich" vorgesehen
|
||||||
|
|
||||||
tableaufaktor_premium = 1
|
tableaufaktor_premium = 1
|
||||||
tableaufaktor_beidseitig = 0
|
tableaufaktor_beidseitig = 0
|
||||||
@@ -214,9 +393,9 @@ class RSM_FA():
|
|||||||
self._Mengen["Seilzugschalter"] = self._RSM_Anzahl * (seilzfaktor_premium + seilzfaktor_getriebe_mitte)
|
self._Mengen["Seilzugschalter"] = self._RSM_Anzahl * (seilzfaktor_premium + seilzfaktor_getriebe_mitte)
|
||||||
|
|
||||||
if(anzahl.get("Flex-A_Premium", False)):
|
if(anzahl.get("Flex-A_Premium", False)):
|
||||||
self._Mengen["Mit_Drucktaster"] = self._RSM_Anzahl * 8 + anzahl.get("Mit_Drucktaster_Korrektur",0)# TODO + C40 in excel, allerdings gelbe Zelle ohne Bezüge, Korrektur?
|
self._Mengen["Mit_Drucktaster"] = self._RSM_Anzahl * 8
|
||||||
else:
|
else:
|
||||||
self._Mengen["Mit_Drucktaster"] = anzahl.get("Mit_Drucktaster_Korrektur",0) # + C40 (s.o.)
|
self._Mengen["Mit_Drucktaster"] = 0
|
||||||
self._Mengen["Mit_Drucktaster_Korrektur"] = anzahl.get("Mit_Drucktaster_Korrektur",0)
|
self._Mengen["Mit_Drucktaster_Korrektur"] = anzahl.get("Mit_Drucktaster_Korrektur",0)
|
||||||
self._Mengen["Meldelampe_Überstrom"] = math.ceil(self._RSM_Anzahl/10) + anzahl.get("Meldelampe_Überstrom_Korrektur", 0)
|
self._Mengen["Meldelampe_Überstrom"] = math.ceil(self._RSM_Anzahl/10) + anzahl.get("Meldelampe_Überstrom_Korrektur", 0)
|
||||||
self._Mengen["Meldelampe_Überstrom_Korrektur"] = anzahl.get("Meldelampe_Überstrom_Korrektur", 0)
|
self._Mengen["Meldelampe_Überstrom_Korrektur"] = anzahl.get("Meldelampe_Überstrom_Korrektur", 0)
|
||||||
@@ -228,6 +407,11 @@ class RSM_FA():
|
|||||||
def anzahl(self, partname):
|
def anzahl(self, partname):
|
||||||
return self._Mengen.get(partname, 0)
|
return self._Mengen.get(partname, 0)
|
||||||
|
|
||||||
|
def tojson(self):
|
||||||
|
return json.dumps(self._Mengen)
|
||||||
|
|
||||||
|
def mengengeruest(self):
|
||||||
|
return self._Mengen
|
||||||
# Flyer_F40_(Electrojet)_incl._Putzmaschine:
|
# Flyer_F40_(Electrojet)_incl._Putzmaschine:
|
||||||
class Flyer_F40_EJet_inc_Putz():
|
class Flyer_F40_EJet_inc_Putz():
|
||||||
def __init__(self, anzahl:dict):
|
def __init__(self, anzahl:dict):
|
||||||
@@ -290,10 +474,6 @@ class Flyer_F40_EJet_inc_Putz():
|
|||||||
self._Mengen["Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer"] = anzahl.get("Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer", 0)
|
self._Mengen["Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer"] = anzahl.get("Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer", 0)
|
||||||
self._Mengen["Single-Line_/_Durchfahrt"] = anzahl.get("Single-Line_/_Durchfahrt", False)
|
self._Mengen["Single-Line_/_Durchfahrt"] = anzahl.get("Single-Line_/_Durchfahrt", False)
|
||||||
self._Mengen["Nachpuffer"] = anzahl.get("Nachpuffer", False)
|
self._Mengen["Nachpuffer"] = anzahl.get("Nachpuffer", False)
|
||||||
print(self._Mengen.get("Anzahl_Schienen", 0))
|
|
||||||
#SensoroptTraverse=WENN(B49="ja";B46*(B47*1)+(B46*5)+C50+(B56*2);B46*(B47*1)+(B46*7)+(B56*2))+C50 TODO: Achtung, hier wird C50 zweimal addiert, wenn Nachpuffer==True
|
|
||||||
# nachpuffer == True: B46*(B47*1)+(B56*2)+(B46*5)+C50
|
|
||||||
#else: B46*(B47*1)+(B56*2)+(B46*7)) +C50
|
|
||||||
sensorfaktor_nachpuffer = 7
|
sensorfaktor_nachpuffer = 7
|
||||||
if(anzahl.get("Nachpuffer", False)):
|
if(anzahl.get("Nachpuffer", False)):
|
||||||
sensorfaktor_nachpuffer = 5
|
sensorfaktor_nachpuffer = 5
|
||||||
@@ -315,7 +495,7 @@ class Flyer_F40_EJet_inc_Putz():
|
|||||||
self._Mengen["Weiche_nach_Flyer_(bipolar)_Korrektur"] = anzahl.get("Weiche_nach_Flyer_(bipolar)_Korrektur", 0)
|
self._Mengen["Weiche_nach_Flyer_(bipolar)_Korrektur"] = anzahl.get("Weiche_nach_Flyer_(bipolar)_Korrektur", 0)
|
||||||
self._Mengen["Dreifachweiche"] = anzahl.get("Dreifachweiche", 0)
|
self._Mengen["Dreifachweiche"] = anzahl.get("Dreifachweiche", 0)
|
||||||
self._Mengen["Wechsel"] = anzahl.get("Wechsel", 0)
|
self._Mengen["Wechsel"] = anzahl.get("Wechsel", 0)
|
||||||
self._Mengen["Stopper"] = anzahl.get("Stopper", 0) # TODO: Korrekturfaktor überflüssig da manuelle Eingabe?
|
self._Mengen["Stopper"] = anzahl.get("Stopper", 0)
|
||||||
self._Mengen["RA_uni"] = anzahl.get("RA_uni", 0)
|
self._Mengen["RA_uni"] = anzahl.get("RA_uni", 0)
|
||||||
|
|
||||||
rraunifaktor_durchfahrt = 0
|
rraunifaktor_durchfahrt = 0
|
||||||
@@ -328,18 +508,18 @@ class Flyer_F40_EJet_inc_Putz():
|
|||||||
self._Mengen["RA_uni_abhebbar_Korrektur"] = anzahl.get("RA_uni_abhebbar_Korrektur", 0)
|
self._Mengen["RA_uni_abhebbar_Korrektur"] = anzahl.get("RA_uni_abhebbar_Korrektur", 0)
|
||||||
|
|
||||||
if(anzahl.get("Single-Line_/_Durchfahrt", False)):
|
if(anzahl.get("Single-Line_/_Durchfahrt", False)):
|
||||||
self._Mengen["RA_uni_ohne_SPS-Ansteuerung"] = self._Flyer_Anzahl # TODO: Korrekturfaktor nur wenn Durchfahrt==False?
|
self._Mengen["RA_uni_ohne_SPS-Ansteuerung"] = self._Flyer_Anzahl
|
||||||
else:
|
else:
|
||||||
self._Mengen["RA_uni_ohne_SPS-Ansteuerung"] = anzahl.get("RA_uni_ohne_SPS-Ansteuerung_Korrektur", 0)
|
self._Mengen["RA_uni_ohne_SPS-Ansteuerung"] = anzahl.get("RA_uni_ohne_SPS-Ansteuerung_Korrektur", 0)
|
||||||
self._Mengen["RA_uni_ohne_SPS-Ansteuerung_Korrektur"] = anzahl.get("RA_uni_ohne_SPS-Ansteuerung_Korrektur", 0)
|
self._Mengen["RA_uni_ohne_SPS-Ansteuerung_Korrektur"] = anzahl.get("RA_uni_ohne_SPS-Ansteuerung_Korrektur", 0)
|
||||||
|
|
||||||
if(anzahl.get("Single-Line_/_Durchfahrt", False)): # TODO: =WENN($B$48="nein";$B$46*1;0+C62)+WENN($B$48="ja";$B$46*1;0) -> etwas kompliziert ausgedrückt...
|
if(anzahl.get("Single-Line_/_Durchfahrt", False)):
|
||||||
self._Mengen["RRA_BI_abhebbar"] = self._Flyer_Anzahl + anzahl.get("RRA_BI_abhebbar_Korrektur", 0)
|
|
||||||
else:
|
|
||||||
self._Mengen["RRA_BI_abhebbar"] = self._Flyer_Anzahl
|
self._Mengen["RRA_BI_abhebbar"] = self._Flyer_Anzahl
|
||||||
|
else:
|
||||||
|
self._Mengen["RRA_BI_abhebbar"] = anzahl.get("RRA_BI_abhebbar_Korrektur", 0)
|
||||||
self._Mengen["RRA_BI_abhebbar_Korrektur"] = anzahl.get("RRA_BI_abhebbar_Korrektur", 0)
|
self._Mengen["RRA_BI_abhebbar_Korrektur"] = anzahl.get("RRA_BI_abhebbar_Korrektur", 0)
|
||||||
|
|
||||||
self._Mengen["RRA_bi"] = anzahl.get("RRA_bi", 0) # TODO: Rote Zelle?
|
self._Mengen["RRA_bi"] = anzahl.get("RRA_bi", 0)
|
||||||
|
|
||||||
if(anzahl.get("Single-Line_/_Durchfahrt", False)):
|
if(anzahl.get("Single-Line_/_Durchfahrt", False)):
|
||||||
self._Mengen["RRA_bi_ohne_SPS-Ansteuerung"] = anzahl.get("RRA_bi_ohne_SPS-Ansteuerung_Korrektur", 0)
|
self._Mengen["RRA_bi_ohne_SPS-Ansteuerung"] = anzahl.get("RRA_bi_ohne_SPS-Ansteuerung_Korrektur", 0)
|
||||||
@@ -347,9 +527,9 @@ class Flyer_F40_EJet_inc_Putz():
|
|||||||
self._Mengen["RRA_bi_ohne_SPS-Ansteuerung"] = self._Flyer_Anzahl
|
self._Mengen["RRA_bi_ohne_SPS-Ansteuerung"] = self._Flyer_Anzahl
|
||||||
|
|
||||||
if(anzahl.get("Single-Line_/_Durchfahrt", False)):
|
if(anzahl.get("Single-Line_/_Durchfahrt", False)):
|
||||||
self._Mengen["Doppelstreckenantrieb"] = (self._Flyer_Anzahl * self._Mengen.get("Anzahl_Schienen", 0))/4 + self._Flyer_Anzahl
|
self._Mengen["Doppelstreckenantrieb"] = self._Flyer_Anzahl * math.floor(self._Mengen.get("Anzahl_Schienen", 0)/2) + self._Flyer_Anzahl
|
||||||
else:
|
else:
|
||||||
self._Mengen["Doppelstreckenantrieb"] = (self._Flyer_Anzahl * self._Mengen.get("Anzahl_Schienen", 0))/4 + anzahl.get("Doppelstreckenantrieb_Korrektur", 0)
|
self._Mengen["Doppelstreckenantrieb"] = self._Flyer_Anzahl * math.floor(self._Mengen.get("Anzahl_Schienen", 0)/2) + anzahl.get("Doppelstreckenantrieb_Korrektur", 0)
|
||||||
self._Mengen["Doppelstreckenantrieb_Korrektur"] = anzahl.get("Doppelstreckenantrieb_Korrektur", 0)
|
self._Mengen["Doppelstreckenantrieb_Korrektur"] = anzahl.get("Doppelstreckenantrieb_Korrektur", 0)
|
||||||
self._Mengen["RA_bi_abhebbar_(unger._Schiene)"] = anzahl.get("RA_bi_abhebbar_(unger._Schiene)", 0)
|
self._Mengen["RA_bi_abhebbar_(unger._Schiene)"] = anzahl.get("RA_bi_abhebbar_(unger._Schiene)", 0)
|
||||||
|
|
||||||
@@ -363,6 +543,11 @@ class Flyer_F40_EJet_inc_Putz():
|
|||||||
def anzahl(self, partname):
|
def anzahl(self, partname):
|
||||||
return self._Mengen.get(partname, 0)
|
return self._Mengen.get(partname, 0)
|
||||||
|
|
||||||
|
def tojson(self):
|
||||||
|
return json.dumps(self._Mengen)
|
||||||
|
|
||||||
|
def mengengeruest(self):
|
||||||
|
return self._Mengen
|
||||||
# Putzmaschine_(Neuenhauser):
|
# Putzmaschine_(Neuenhauser):
|
||||||
class Putzmaschine_Neuenhauser():
|
class Putzmaschine_Neuenhauser():
|
||||||
def __init__(self, anzahl:dict):
|
def __init__(self, anzahl:dict):
|
||||||
@@ -415,13 +600,13 @@ class Putzmaschine_Neuenhauser():
|
|||||||
self._Mengen["Sensorik_Zugpositionierung"] = self._Putze_Anzahl * 4
|
self._Mengen["Sensorik_Zugpositionierung"] = self._Putze_Anzahl * 4
|
||||||
self._Mengen["Sensor_WT18_Spulenprüfung_voll/leer"] = self._Putze_Anzahl * 2
|
self._Mengen["Sensor_WT18_Spulenprüfung_voll/leer"] = self._Putze_Anzahl * 2
|
||||||
|
|
||||||
self._Mengen["Bedientableau_2-fach"] = self._Putze_Anzahl + anzahl.get("Bedientableau_2-fach_Korrektur", 0)#=Mengengerüst!B72+Mengengerüst!G72 TODO: ist G72 Korrektur?
|
self._Mengen["Bedientableau_2-fach"] = self._Putze_Anzahl + anzahl.get("Bedientableau_2-fach_Korrektur", 0)
|
||||||
self._Mengen["Bedientableau_2-fach_Korrektur"] = anzahl.get("Bedientableau_2-fach_Korrektur", 0)
|
self._Mengen["Bedientableau_2-fach_Korrektur"] = anzahl.get("Bedientableau_2-fach_Korrektur", 0)
|
||||||
|
|
||||||
self._Mengen["Interface_Putzmaschine"] = self._Putze_Anzahl
|
self._Mengen["Interface_Putzmaschine"] = self._Putze_Anzahl
|
||||||
self._Mengen["Weiche"] = self._Putze_Anzahl * self._Vorpuffer_Anzahl + anzahl.get("Weiche_Korrektur", 0)
|
self._Mengen["Weiche"] = self._Putze_Anzahl * self._Vorpuffer_Anzahl + anzahl.get("Weiche_Korrektur", 0)
|
||||||
self._Mengen["Weiche_Korrektur"] = anzahl.get("Weiche_Korrektur", 0)
|
self._Mengen["Weiche_Korrektur"] = anzahl.get("Weiche_Korrektur", 0)
|
||||||
self._Mengen["Weiche_nach_PM_(bipolar)"] = self._Putze_Anzahl * (self._Nachpuffer_Anzahl-1) # TODO: Wert kann negativ sein...
|
self._Mengen["Weiche_nach_PM_(bipolar)"] = self._Putze_Anzahl * (self._Nachpuffer_Anzahl-1)
|
||||||
self._Mengen["RA_uni_abhebbar"] = self._Putze_Anzahl + anzahl.get("RA_uni_abhebbar_Korrektur", 0)
|
self._Mengen["RA_uni_abhebbar"] = self._Putze_Anzahl + anzahl.get("RA_uni_abhebbar_Korrektur", 0)
|
||||||
self._Mengen["RA_uni_abhebbar_Korrektur"] = anzahl.get("RA_uni_abhebbar_Korrektur", 0)
|
self._Mengen["RA_uni_abhebbar_Korrektur"] = anzahl.get("RA_uni_abhebbar_Korrektur", 0)
|
||||||
self._Mengen["RA_uni_ohne_SPS-Ansteuerung"] = self._Putze_Anzahl
|
self._Mengen["RA_uni_ohne_SPS-Ansteuerung"] = self._Putze_Anzahl
|
||||||
@@ -438,6 +623,11 @@ class Putzmaschine_Neuenhauser():
|
|||||||
def anzahl(self, partname):
|
def anzahl(self, partname):
|
||||||
return self._Mengen.get(partname, 0)
|
return self._Mengen.get(partname, 0)
|
||||||
|
|
||||||
|
def tojson(self):
|
||||||
|
return json.dumps(self._Mengen)
|
||||||
|
def mengengeruest(self):
|
||||||
|
return self._Mengen
|
||||||
|
|
||||||
# Flyer_(Electrojet):
|
# Flyer_(Electrojet):
|
||||||
class Flyer_EJet():
|
class Flyer_EJet():
|
||||||
def __init__(self, anzahl:dict):
|
def __init__(self, anzahl:dict):
|
||||||
@@ -454,7 +644,6 @@ class Flyer_EJet():
|
|||||||
#"Weiche":0,
|
#"Weiche":0,
|
||||||
"Weiche_Korrektur":0,
|
"Weiche_Korrektur":0,
|
||||||
#"Weiche_nach_Flyer_(bipolar)":0,
|
#"Weiche_nach_Flyer_(bipolar)":0,
|
||||||
"Weiche_nach_Flyer_(bipolar)_Korrektur":0,
|
|
||||||
"Dreifachweiche":0,
|
"Dreifachweiche":0,
|
||||||
#"Wechsel":0,
|
#"Wechsel":0,
|
||||||
"Wechsel_Korrektur":0,
|
"Wechsel_Korrektur":0,
|
||||||
@@ -486,8 +675,7 @@ class Flyer_EJet():
|
|||||||
self._Mengen["Interface_Doffer"] = self._Flyer_Anzahl
|
self._Mengen["Interface_Doffer"] = self._Flyer_Anzahl
|
||||||
self._Mengen["Weiche"] = self._Flyer_Anzahl * self._Schienen_Anzahl + anzahl.get("Weiche_Korrektur", 0)
|
self._Mengen["Weiche"] = self._Flyer_Anzahl * self._Schienen_Anzahl + anzahl.get("Weiche_Korrektur", 0)
|
||||||
self._Mengen["Weiche_Korrektur"] = anzahl.get("Weiche_Korrektur", 0)
|
self._Mengen["Weiche_Korrektur"] = anzahl.get("Weiche_Korrektur", 0)
|
||||||
self._Mengen["Weiche_nach_Flyer_(bipolar)"] = self._Flyer_Anzahl # + anzahl.get("Weiche_nach_Flyer_(bipolar)_Korrektur", 0) TODO: Kein Korrekturfaktor?
|
self._Mengen["Weiche_nach_Flyer_(bipolar)"] = self._Flyer_Anzahl
|
||||||
#self._Mengen["Weiche_nach_Flyer_(bipolar)_Korrektur"] = anzahl.get("Weiche_nach_Flyer_(bipolar)_Korrektur", 0)
|
|
||||||
self._Mengen["Dreifachweiche"] = anzahl.get("Dreifachweiche", 0)
|
self._Mengen["Dreifachweiche"] = anzahl.get("Dreifachweiche", 0)
|
||||||
self._Mengen["Wechsel"] = self._Flyer_Anzahl + anzahl.get("Wechsel_Korrektur", 0)
|
self._Mengen["Wechsel"] = self._Flyer_Anzahl + anzahl.get("Wechsel_Korrektur", 0)
|
||||||
self._Mengen["Wechsel_Korrektur"] = anzahl.get("Wechsel_Korrektur", 0)
|
self._Mengen["Wechsel_Korrektur"] = anzahl.get("Wechsel_Korrektur", 0)
|
||||||
@@ -507,6 +695,10 @@ class Flyer_EJet():
|
|||||||
def anzahl(self, partname):
|
def anzahl(self, partname):
|
||||||
return self._Mengen.get(partname, 0)
|
return self._Mengen.get(partname, 0)
|
||||||
|
|
||||||
|
def tojson(self):
|
||||||
|
return json.dumps(self._Mengen)
|
||||||
|
def mengengeruest(self):
|
||||||
|
return self._Mengen
|
||||||
# Verbindungsstrecken/_Wechsel:
|
# Verbindungsstrecken/_Wechsel:
|
||||||
class Verbindungsstrecken_Wechsel():
|
class Verbindungsstrecken_Wechsel():
|
||||||
def __init__(self, anzahl:dict):
|
def __init__(self, anzahl:dict):
|
||||||
@@ -541,6 +733,11 @@ class Verbindungsstrecken_Wechsel():
|
|||||||
self._Mengen["RA_bi_ohne_SPS-Ansteuerung"] = anzahl.get("RA_bi_ohne_SPS-Ansteuerung", 0)
|
self._Mengen["RA_bi_ohne_SPS-Ansteuerung"] = anzahl.get("RA_bi_ohne_SPS-Ansteuerung", 0)
|
||||||
self._Mengen["Doppelstreckenantrieb"] = anzahl.get("Doppelstreckenantrieb", 0)
|
self._Mengen["Doppelstreckenantrieb"] = anzahl.get("Doppelstreckenantrieb", 0)
|
||||||
|
|
||||||
|
def tojson(self):
|
||||||
|
return json.dumps(self._Mengen)
|
||||||
|
|
||||||
|
def mengengeruest(self):
|
||||||
|
return self._Mengen
|
||||||
# Puffer
|
# Puffer
|
||||||
class Puffer():
|
class Puffer():
|
||||||
def __init__(self, anzahl:dict):
|
def __init__(self, anzahl:dict):
|
||||||
@@ -582,6 +779,11 @@ class Puffer():
|
|||||||
def anzahl(self, partname):
|
def anzahl(self, partname):
|
||||||
return self._Mengen.get(partname, 0)
|
return self._Mengen.get(partname, 0)
|
||||||
|
|
||||||
|
def tojson(self):
|
||||||
|
return json.dumps(self._Mengen)
|
||||||
|
|
||||||
|
def mengengeruest(self):
|
||||||
|
return self._Mengen
|
||||||
# Turm
|
# Turm
|
||||||
class Turm():
|
class Turm():
|
||||||
mengen = {
|
mengen = {
|
||||||
@@ -605,7 +807,7 @@ class Turm():
|
|||||||
self._Staustrecken_Anzahl = anzahl.get("Anzahl_Wendlungen", 0)
|
self._Staustrecken_Anzahl = anzahl.get("Anzahl_Wendlungen", 0)
|
||||||
self._Mengen["Anzahl_Staustrecken"] = self._Staustrecken_Anzahl
|
self._Mengen["Anzahl_Staustrecken"] = self._Staustrecken_Anzahl
|
||||||
|
|
||||||
self._Mengen["Sensor_optisch_Traverse"] = self._Turm_Anzahl*5 #TODO: kein Korrekturfaktor?
|
self._Mengen["Sensor_optisch_Traverse"] = self._Turm_Anzahl*5
|
||||||
self._Mengen["Weiche"] = self._Turm_Anzahl*3
|
self._Mengen["Weiche"] = self._Turm_Anzahl*3
|
||||||
self._Mengen["RA_bi"] = self._Turm_Anzahl*2 + anzahl.get("RA_bi_Korrektur", 0)
|
self._Mengen["RA_bi"] = self._Turm_Anzahl*2 + anzahl.get("RA_bi_Korrektur", 0)
|
||||||
self._Mengen["RA_bi_Korrektur"] = anzahl.get("RA_bi_Korrektur", 0)
|
self._Mengen["RA_bi_Korrektur"] = anzahl.get("RA_bi_Korrektur", 0)
|
||||||
@@ -616,8 +818,47 @@ class Turm():
|
|||||||
def anzahl(self, partname):
|
def anzahl(self, partname):
|
||||||
return self._Mengen.get(partname, 0)
|
return self._Mengen.get(partname, 0)
|
||||||
|
|
||||||
|
def tojson(self):
|
||||||
|
return json.dumps(self._Mengen)
|
||||||
|
|
||||||
|
def mengengeruest(self):
|
||||||
|
return self._Mengen
|
||||||
|
|
||||||
|
|
||||||
|
#EMO
|
||||||
|
class EMO():
|
||||||
|
montagezeiten = {
|
||||||
|
"Schaltschrank_aufstellen": 6.0, #(h/St)
|
||||||
|
"Unterverteiler_montieren": 3.0, #(h/St)
|
||||||
|
"Pritsche_montieren_umbauen_demontieren": 6.0, #(m/h)
|
||||||
|
"Pritsche_in_RSM_montieren": 21.0,
|
||||||
|
"Motor_verdrahten_und_anschliessen": 0.9, #(h/Motor)
|
||||||
|
"Tableau_befestigen_und_anschliessen": 1.0, #(h/St)
|
||||||
|
"Schnittstelle_Flyer_Putzmaschine": 1.5, #(h/St)
|
||||||
|
"Sensoren_montieren": 0.45, #(h/St)
|
||||||
|
"Seilzugschalter_installieren": 4.0, #(h/St)
|
||||||
|
"Blitzleuchte_installieren": 0.5, #(h/St)
|
||||||
|
"Weiche_Stopper_anschliessen": 0.45, #(h/St)
|
||||||
|
"Erdung": 0.5, #(h)
|
||||||
|
}
|
||||||
|
def __init__(self, anzahl:dict):
|
||||||
|
#für jede Zeile (Eintrag im dict 'mengen') muss ein Wert übergeben werden, der aus den Klassen HW(), MG() oder EA() stammt
|
||||||
|
mengen = {
|
||||||
|
"Schaltschrank_aufstellen": 0,
|
||||||
|
"Unterverteiler_montieren": 0,
|
||||||
|
"Pritsche_montieren_umbauen_demontieren": 0,
|
||||||
|
"Pritsche_in_RSM_montieren": 0,
|
||||||
|
"Motor_verdrahten_und_anschliessen": 0,
|
||||||
|
"Tableau_befestigen_und_anschliessen": 0,
|
||||||
|
"Schnittstelle_Flyer_Putzmaschine": 0,
|
||||||
|
"Sensoren_montieren": 0,
|
||||||
|
"Seilzugschalter_installieren": 0,
|
||||||
|
"Blitzleuchte_installieren": 0,
|
||||||
|
"Weiche_Stopper_anschliessen": 0,
|
||||||
|
"Erdung": 0,
|
||||||
|
}
|
||||||
|
self._Mengen = {} #TODO: Formeln...
|
||||||
|
print(self._Mengen)
|
||||||
|
|
||||||
|
|
||||||
class EA():
|
class EA():
|
||||||
@@ -1592,7 +1833,7 @@ class TestObjectMethods(unittest.TestCase):
|
|||||||
|
|
||||||
self.assertEqual(deckblatt._flyer_f40.anzahl("Anzahl"), 6)
|
self.assertEqual(deckblatt._flyer_f40.anzahl("Anzahl"), 6)
|
||||||
self.assertEqual(deckblatt._flyer_f40.anzahl("Anzahl_Schienen"), 5)
|
self.assertEqual(deckblatt._flyer_f40.anzahl("Anzahl_Schienen"), 5)
|
||||||
#self.assertEqual(deckblatt._flyer_f40.anzahl("Sensor_optisch_Traverse"), 80) # TODO: Wenn Nachpuffer == True, dann wird Sensor_optisch_Traverse_Korrektur doppelt addiert
|
#self.assertEqual(deckblatt._flyer_f40.anzahl("Sensor_optisch_Traverse"), 80) # TODO: Wenn Nachpuffer == True, dann wird Sensor_optisch_Traverse_Korrektur doppelt addiert => =WENN(B49="ja";B46*(B47*1)+(B46*5)+(B56*2);B46*(B47*1)+(B46*7)+(B56*2))+C50
|
||||||
self.assertEqual(deckblatt._flyer_f40.anzahl("Sensor_induktiv_Spulenhalter"), 14)
|
self.assertEqual(deckblatt._flyer_f40.anzahl("Sensor_induktiv_Spulenhalter"), 14)
|
||||||
self.assertEqual(deckblatt._flyer_f40.anzahl("Bedientableau_2-fach"), 9)
|
self.assertEqual(deckblatt._flyer_f40.anzahl("Bedientableau_2-fach"), 9)
|
||||||
self.assertEqual(deckblatt._flyer_f40.anzahl("Interface_Doffer"), 8)
|
self.assertEqual(deckblatt._flyer_f40.anzahl("Interface_Doffer"), 8)
|
||||||
@@ -1663,7 +1904,12 @@ class TestObjectMethods(unittest.TestCase):
|
|||||||
self.assertEqual(deckblatt._turm.anzahl("RA_bi_ohne_SPS"), 26)
|
self.assertEqual(deckblatt._turm.anzahl("RA_bi_ohne_SPS"), 26)
|
||||||
self.assertEqual(deckblatt._turm.anzahl("Bedientableau_2-fach"), 4)
|
self.assertEqual(deckblatt._turm.anzahl("Bedientableau_2-fach"), 4)
|
||||||
'''
|
'''
|
||||||
|
self.assertEqual(deckblatt._turm.anzahl("Anzahl"), 2)
|
||||||
|
self.assertEqual(deckblatt._turm.anzahl("Anzahl_Staustrecken"), 5)
|
||||||
|
self.assertEqual(deckblatt._turm.anzahl("Weiche"), 6)
|
||||||
|
self.assertEqual(deckblatt._turm.anzahl("RA_bi"), 9)
|
||||||
|
self.assertEqual(deckblatt._turm.anzahl("RA_bi_ohne_SPS"), 26)
|
||||||
|
self.assertEqual(deckblatt._turm.anzahl("Bedientableau_2-fach"), 4)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1975,5 +2221,253 @@ class TestObjectMethods(unittest.TestCase):
|
|||||||
# }
|
# }
|
||||||
# eas
|
# eas
|
||||||
|
|
||||||
|
#if __name__ == '__main__':
|
||||||
|
# unittest.main()
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
# Anzahl der für das Projekt benutzten
|
||||||
|
Anzahl_MG = {
|
||||||
|
"SYSTEM":"DIRECT",
|
||||||
|
"RSM":11,
|
||||||
|
"Flyer":0,
|
||||||
|
"Flyer_Puffer":2,
|
||||||
|
"Flyer_Electrojet_incl_intergrierte_Putzmaschine":1,
|
||||||
|
"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer":2,
|
||||||
|
"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer":2,
|
||||||
|
"Neuenhauser-Putzmaschine":0,
|
||||||
|
"Neuenhauser-Putzmaschine_Vorpuffer":0,
|
||||||
|
"Neuenhauser-Putzmaschine_Nachpuffer":0,
|
||||||
|
"Cason-Putzmaschine":0,
|
||||||
|
"Cason-Putzmaschine_Vorpuffer":0,
|
||||||
|
"Cason-Putzmaschine_Nachpuffer":0,
|
||||||
|
"Puffer":1,
|
||||||
|
"Anzahl_der_Pufferstrecken_pro_Puffer":2,
|
||||||
|
"Begegnungsstrecke_Bypass":0,
|
||||||
|
"Turm":0,
|
||||||
|
"Turm_Anzahl_Wendlungen":0,
|
||||||
|
}
|
||||||
|
|
||||||
|
rsm_direct_eingabe = {
|
||||||
|
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
|
||||||
|
#"Anzahl":0, # wird in deckblatt-Klasse berechnet
|
||||||
|
#"Anzahl_Strecken/RSM":8,
|
||||||
|
"Sensor_optisch_Traverse":0,
|
||||||
|
#"Lichtschranke_Traverse":0,
|
||||||
|
#"Bedientableau_2-fach":0,
|
||||||
|
"Bedientableau_2-fach_Korrektur":0,
|
||||||
|
#"Bedientableau_2-fach_Direct":0,
|
||||||
|
#"Weiche":0,
|
||||||
|
"Weiche_Korrektur":0,
|
||||||
|
#"Weiche_Gemeinsame_Rückstellung":0,
|
||||||
|
"Weiche_Gemeinsame_Rückstellung_Korrektur":0,
|
||||||
|
#"RA_bi_abhebbar":0,
|
||||||
|
"RA_bi_abhebbar_Korrektur":0,
|
||||||
|
#"Doppelstreckenantrieb":0,
|
||||||
|
#"gemeinsame_Wendung":0,
|
||||||
|
#"Meldelampe_Überstrom":0,
|
||||||
|
"Meldelampe_Überstrom_Korrektur":0,
|
||||||
|
#"Hauptschalter_Ein-Meldung":0,
|
||||||
|
"Hauptschalter_Ein-Meldung_Korrektur":0,
|
||||||
|
#"Werma_Rundumleuchte_Störung":0,
|
||||||
|
"Werma_Rundumleuchte_Störung_Korrektur":0,
|
||||||
|
}
|
||||||
|
rsm_fa_eingabe = {
|
||||||
|
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
|
||||||
|
#"Anzahl_RSM":0,
|
||||||
|
#"Automatische_Umfahrung":0, # 'Automatische_Umfahrung' und 'Flex-A_Premium' sind eine Zelle -> identischer Wert
|
||||||
|
"Flex-A_Premium":False,
|
||||||
|
"Getriebe_in_der_Mitte":False,
|
||||||
|
"RSM-Einfahrt_Ein-/Beidseitig":False,
|
||||||
|
#"Sensor_optisch_Traverse":0,
|
||||||
|
"Sensor_optisch_Traverse_zusätzlich":0,
|
||||||
|
#"Bedientableau_1-fach":0,
|
||||||
|
"Bedientableau_1-fach_Korrektur":0,
|
||||||
|
#"Bedientableau_2-fach":0,
|
||||||
|
"Bedientableau_2-fach_Korrektur":0,
|
||||||
|
#"Weiche":0,
|
||||||
|
"Weiche_Korrektur":0,
|
||||||
|
#"RRA_bi":0,
|
||||||
|
"RRA_bi_Korrektur":0,
|
||||||
|
"RRA_bi_auf_Haupstrecke":0,
|
||||||
|
#"RRA_bi_ohne_SPS-Ansteuerung":0,
|
||||||
|
"gemeinsame_Wendung":0,
|
||||||
|
#"Seilzugschalter":0,
|
||||||
|
#"Mit_Drucktaster":0,
|
||||||
|
"Mit_Drucktaster_Korrektur":0,
|
||||||
|
#"Meldelampe_Überstrom":0,
|
||||||
|
"Meldelampe_Überstrom_Korrektur":0,
|
||||||
|
#"Hauptschalter_Ein-Meldung":0,
|
||||||
|
"Hauptschalter_Ein-Meldung_Korrektur":0,
|
||||||
|
#"Werma_Rundumleuchte_Störung":0,
|
||||||
|
"Werma_Rundumleuchte_Störung_Korrektur":0,
|
||||||
|
}
|
||||||
|
flyer_f40_eingabe = {
|
||||||
|
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
|
||||||
|
#"Anzahl":0,
|
||||||
|
#"Flyer_Electrojet_incl_intergrierte_Putzmaschine":0, #wird in deckblatt-Klasse berechnet
|
||||||
|
"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Korrektur":0,
|
||||||
|
#"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer":2, #wird in deckblatt-Klasse berechnet
|
||||||
|
#"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer":2, #wird in deckblatt-Klasse berechnet
|
||||||
|
#"Anzahl_Schienen":0,
|
||||||
|
"Single-Line_/_Durchfahrt":False,
|
||||||
|
"Nachpuffer":False,
|
||||||
|
#"Sensor_optisch_Traverse":0,
|
||||||
|
"Sensor_optisch_Traverse_Korrektur":0,
|
||||||
|
#"Sensor_induktiv_Spulenhalter":0,
|
||||||
|
"Sensor_induktiv_Spulenhalter_Korrektur":0,
|
||||||
|
#"Bedientableau_2-fach":0,
|
||||||
|
"Bedientableau_2-fach_Korrektur":0,
|
||||||
|
#"Interface_Doffer":0,
|
||||||
|
"Interface_Doffer_Korrektur":0,
|
||||||
|
#"Weiche":0,
|
||||||
|
"Weiche_Korrektur":0,
|
||||||
|
#"Weiche_nach_Flyer_(bipolar)":0,
|
||||||
|
"Weiche_nach_Flyer_(bipolar)_Korrektur":0,
|
||||||
|
"Dreifachweiche":0,
|
||||||
|
"Wechsel":0,
|
||||||
|
"Stopper":0,
|
||||||
|
"RA_uni":0,
|
||||||
|
#"RA_uni_abhebbar":0,
|
||||||
|
"RA_uni_abhebbar_Korrektur":0,
|
||||||
|
#"RA_uni_ohne_SPS-Ansteuerung":0,
|
||||||
|
"RA_uni_ohne_SPS-Ansteuerung_Korrektur":0,
|
||||||
|
#"RRA_BI_abhebbar":0,
|
||||||
|
"RRA_BI_abhebbar_Korrektur":0,
|
||||||
|
"RRA_bi":0,
|
||||||
|
#"RRA_bi_Korrektur":0,
|
||||||
|
#"RRA_bi_ohne_SPS-Ansteuerung":0,
|
||||||
|
"RRA_bi_ohne_SPS-Ansteuerung_Korrektur":0,
|
||||||
|
#"Doppelstreckenantrieb":0,
|
||||||
|
"Doppelstreckenantrieb_Korrektur":0,
|
||||||
|
"RA_bi_abhebbar_(unger._Schiene)":0,
|
||||||
|
#"Meldelampe_Überstrom":0,
|
||||||
|
"Meldelampe_Überstrom_Korrektur":0,
|
||||||
|
#"Hauptschalter_Ein-Meldung":0,
|
||||||
|
"Hauptschalter_Ein-Meldung_Korrektur":0,
|
||||||
|
#"Werma_Rundumleuchte_Störung":0,
|
||||||
|
"Werma_Rundumleuchte_Störung_Korrektur":0,
|
||||||
|
}
|
||||||
|
neuenhauser_eingabe = {
|
||||||
|
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
|
||||||
|
#"Anzahl":0,
|
||||||
|
#"Neuenhauser-Putzmaschine":0, #wird in deckblatt-Klasse zugewiesen
|
||||||
|
#"Neuenhauser-Putzmaschine_Vorpuffer":0, #wird in deckblatt-Klasse zugewiesen
|
||||||
|
#"Neuenhauser-Putzmaschine_Nachpuffer":0, #wird in deckblatt-Klasse zugewiesen
|
||||||
|
#"Anzahl_Vorstaustrecken":0,
|
||||||
|
#"Anzahl_Nachstaustrecken":0,
|
||||||
|
#"Sensor_optisch_Traverse":0,
|
||||||
|
"Sensor_optisch_Traverse_Korrektur":0,
|
||||||
|
#"Sensorik_Zugpositionierung":0,
|
||||||
|
#"Sensor_WT18_Spulenprüfung_voll/leer":0,
|
||||||
|
#"Bedientableau_2-fach":0,
|
||||||
|
"Bedientableau_2-fach_Korrektur":0,
|
||||||
|
#"Interface_Putzmaschine":0,
|
||||||
|
#"Weiche":0,
|
||||||
|
"Weiche_Korrektur":0,
|
||||||
|
#"Weiche_nach_PM_(bipolar)":0,
|
||||||
|
#"RA_uni_abhebbar":0,
|
||||||
|
"RA_uni_abhebbar_Korrektur":0,
|
||||||
|
#"RA_uni_ohne_SPS-Ansteuerung":0,
|
||||||
|
#"RA_uni_abhebbar_(unger._Sch.)":0,
|
||||||
|
#"Doppelstreckenantrieb":0,
|
||||||
|
#"Meldelampe_Überstrom":0,
|
||||||
|
"Meldelampe_Überstrom_Korrektur":0,
|
||||||
|
#"Hauptschalter_Ein-Meldung":0,
|
||||||
|
"Hauptschalter_Ein-Meldung_Korrektur":0,
|
||||||
|
#"Werma_Rundumleuchte_Störung":0,
|
||||||
|
"Werma_Rundumleuchte_Störung_Korrektur":0,
|
||||||
|
}
|
||||||
|
flyer_eingabe = {
|
||||||
|
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
|
||||||
|
#"Anzahl":0,
|
||||||
|
#"Flyer":0, # äquivalent zu 'Anzahl'
|
||||||
|
#"Anzahl_Schienen:":0,
|
||||||
|
#"Sensor_optisch_Traverse":0,
|
||||||
|
"Sensor_optisch_Traverse_Korrektur":0,
|
||||||
|
#"Sensor_induktiv_Spulenalter_(Zug_positionierung)":0,
|
||||||
|
#"Bedientableau_2-fach":0,
|
||||||
|
#"Interface_Doffer":0,
|
||||||
|
#"Weiche":0,
|
||||||
|
"Weiche_Korrektur":0,
|
||||||
|
#"Weiche_nach_Flyer_(bipolar)":0,
|
||||||
|
"Dreifachweiche":0,
|
||||||
|
#"Wechsel":0,
|
||||||
|
"Wechsel_Korrektur":0,
|
||||||
|
#"RA_bi_ohne_SPS-Ansteuerung":0,
|
||||||
|
#"RA_bi_abhebbar":0,
|
||||||
|
"RA_bi_abhebbar_Korrektur":0,
|
||||||
|
"RA_bi":0,
|
||||||
|
#"Doppelstreckenantrieb":0,
|
||||||
|
"RA_bi_abhebbar_(unger._Schiene)":0,
|
||||||
|
#"Meldelampe_Überstrom":0,
|
||||||
|
"Meldelampe_Überstrom_Korrektur":0,
|
||||||
|
#"Hauptschalter_Ein-Meldung":0,
|
||||||
|
"Hauptschalter_Ein-Meldung_Korrektur":0,
|
||||||
|
#"Werma_Rundumleuchte_Störung":0,
|
||||||
|
"Werma_Rundumleuchte_Störung_Korrektur":0,
|
||||||
|
}
|
||||||
|
verbindungsstrecken_w_eingabe = {
|
||||||
|
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
|
||||||
|
"Sensor_optisch_Traverse":0,
|
||||||
|
"Bedientableau_1-fach":0,
|
||||||
|
"Bedientableau_2-fach":0,
|
||||||
|
"Bedientableau_14-fach":0,
|
||||||
|
"Weiche":0,
|
||||||
|
"Dreifachweiche":0,
|
||||||
|
"Kreuzungsweiche":0,
|
||||||
|
"Werma_Rundumleuchte_Störung":0,
|
||||||
|
"RA_uni":0,
|
||||||
|
"RA_uni_ohne_SPS-Ansteuerung":0,
|
||||||
|
"RA_bi":0,
|
||||||
|
"RA_bi_ohne_SPS-Ansteuerung":0,
|
||||||
|
"Doppelstreckenantrieb":0
|
||||||
|
}
|
||||||
|
puffer_eingabe = {
|
||||||
|
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
|
||||||
|
#"Anzahl":0,
|
||||||
|
#"Puffer":0, #äquivalent zu Anzahl
|
||||||
|
#"Anzahl_Pufferstrecken":0, #äquivalent zu Anzahl_Staustrecken
|
||||||
|
#"Anzahl_Staustrecken":0,
|
||||||
|
#"Sensor_optisch_Traverse":0,
|
||||||
|
"Sensor_optisch_Traverse_Korrektur":0,
|
||||||
|
#"Weiche":0,
|
||||||
|
"Weiche_Korrektur":0,
|
||||||
|
"RA_bi_(ungerade_Schiene)":0,
|
||||||
|
#"Doppelstreckenantrieb":0,
|
||||||
|
#"Meldelampe_Überstrom":0,
|
||||||
|
"Meldelampe_Überstrom_Korrektur":0,
|
||||||
|
#"Hauptschalter_Ein-Meldung":0,
|
||||||
|
"Hauptschalter_Ein-Meldung_Korrektur":0,
|
||||||
|
}
|
||||||
|
turm_eingabe = {
|
||||||
|
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
|
||||||
|
#"Anzahl":0,
|
||||||
|
#"Turm":0, #äquivalent zu Anzahl
|
||||||
|
#"Anzahl_Wendlungen":0, #äquivalent zu Anzahl_Staustrecken
|
||||||
|
#"Anzahl_Staustrecken":0,
|
||||||
|
#"Sensor_optisch_Traverse":0,
|
||||||
|
#"Weiche":0,
|
||||||
|
#"RA_bi":0,
|
||||||
|
"RA_bi_Korrektur":0,
|
||||||
|
#"RA_bi_ohne_SPS":0,
|
||||||
|
"RA_bi_ohne_SPS_Korrektur":0,
|
||||||
|
#"Bedientableau_2-fach":0,
|
||||||
|
}
|
||||||
|
#mg = MG(Anzahl_MG, rsm_direct_eingabe, rsm_fa_eingabe, flyer_f40_eingabe, neuenhauser_eingabe, flyer_eingabe, verbindungsstrecken_w_eingabe, puffer_eingabe, turm_eingabe)
|
||||||
|
#mg.tofile()
|
||||||
|
#mg.ztofile()
|
||||||
|
emo_eingabe = {
|
||||||
|
"Schaltschrank_aufstellen": 1,
|
||||||
|
"Unterverteiler_montieren": 4,
|
||||||
|
"Pritsche_montieren_umbauen_demontieren": 66,
|
||||||
|
"Pritsche_in_RSM_montieren": 0,
|
||||||
|
"Motor_verdrahten_und_anschliessen": 97,
|
||||||
|
"Tableau_befestigen_und_anschliessen": 15,
|
||||||
|
"Schnittstelle_Flyer_Putzmaschine": 1,
|
||||||
|
"Sensoren_montieren": 84,
|
||||||
|
"Seilzugschalter_installieren": 0,
|
||||||
|
"Blitzleuchte_installieren": 3,
|
||||||
|
"Weiche_Stopper_anschliessen": 244,
|
||||||
|
"Erdung": 40,
|
||||||
|
}
|
||||||
|
emo = EMO(emo_eingabe)
|
||||||
|
|||||||
Reference in New Issue
Block a user