Klasse 'Mengengerüst' fertiggestellt, Ausgabe in zwei json Files: Zusammenfassung und detailliert mit allen Werten aller Klassen
This commit is contained in:
+528
-34
@@ -1,13 +1,14 @@
|
||||
#from distutils.log import debug
|
||||
import math
|
||||
import sys
|
||||
#from pickle import FALSE
|
||||
import unittest
|
||||
|
||||
|
||||
import json
|
||||
JSON_IDENT =5
|
||||
# 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.
|
||||
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 = {
|
||||
#"SYSTEM":"",
|
||||
#"RSM":0,
|
||||
@@ -28,6 +29,12 @@ class MG():
|
||||
#"Turm":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)
|
||||
rsm_direct_mengen = rsm_direct
|
||||
rsm_direct_mengen["Anzahl"] = self._RSM_Anzahl #übernahme aus deckblatt
|
||||
@@ -51,17 +58,186 @@ class MG():
|
||||
turm_mengen = turm
|
||||
turm_mengen["Turm"] = deckblatt.get("Turm", 0)
|
||||
turm_mengen["Anzahl_Wendlungen"] = deckblatt.get("Turm_Anzahl_Wendlungen", 0)
|
||||
print(turm_mengen["Anzahl_Wendlungen"])
|
||||
verbindungsstrecken_w_mengen = verbindungsstrecken_w
|
||||
|
||||
self._rsm_direct = RSM_direct(rsm_direct_mengen)
|
||||
self._rsm_fa = RSM_FA(rsm_fa_mengen)
|
||||
#ü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)
|
||||
elif(system.lower() == "fa"):
|
||||
self._rsm_fa = RSM_FA(rsm_fa_mengen)
|
||||
|
||||
self._flyer_f40 = Flyer_F40_EJet_inc_Putz(flyer_f40_mengen)
|
||||
self._neuenhauser = Putzmaschine_Neuenhauser(neuenhauser_mengen)
|
||||
self._flyer = Flyer_EJet(flyer_mengen)
|
||||
self._verbindungsstrecken_w = Verbindungsstrecken_Wechsel(verbindungsstrecken_w_mengen)
|
||||
self._puffer = Puffer(puffer_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:
|
||||
class RSM_direct():
|
||||
def __init__(self, anzahl:dict):
|
||||
@@ -117,6 +293,11 @@ class RSM_direct():
|
||||
def anzahl(self, partname):
|
||||
return self._Mengen.get(partname, 0)
|
||||
|
||||
def tojson(self):
|
||||
return json.dumps(self._Mengen)
|
||||
|
||||
def mengengeruest(self):
|
||||
return self._Mengen
|
||||
# RSM_FA:
|
||||
class RSM_FA():
|
||||
def __init__(self, anzahl:dict):
|
||||
@@ -129,7 +310,6 @@ class RSM_FA():
|
||||
"RSM-Einfahrt_Ein-/Beidseitig":False,
|
||||
#"Sensor_optisch_Traverse":0,
|
||||
"Sensor_optisch_Traverse_zusätzlich":0,
|
||||
"Sensor_optisch_Traverse_Korrektur":0,
|
||||
#"Bedientableau_1-fach":0,
|
||||
"Bedientableau_1-fach_Korrektur":0,
|
||||
#"Bedientableau_2-fach":0,
|
||||
@@ -143,7 +323,6 @@ class RSM_FA():
|
||||
"gemeinsame_Wendung":0,
|
||||
#"Seilzugschalter":0,
|
||||
#"Mit_Drucktaster":0,
|
||||
"Mit_Drucktaster_Korrektur":0,
|
||||
#"Meldelampe_Überstrom":0,
|
||||
"Meldelampe_Überstrom_Korrektur":0,
|
||||
#"Hauptschalter_Ein-Meldung":0,
|
||||
@@ -164,9 +343,9 @@ class RSM_FA():
|
||||
sensorfaktor_premium = 4
|
||||
if(anzahl.get("RSM-Einfahrt_Ein-/Beidseitig", False)):
|
||||
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_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_beidseitig = 0
|
||||
@@ -214,9 +393,9 @@ class RSM_FA():
|
||||
self._Mengen["Seilzugschalter"] = self._RSM_Anzahl * (seilzfaktor_premium + seilzfaktor_getriebe_mitte)
|
||||
|
||||
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:
|
||||
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["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)
|
||||
@@ -227,7 +406,12 @@ class RSM_FA():
|
||||
|
||||
def anzahl(self, partname):
|
||||
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:
|
||||
class Flyer_F40_EJet_inc_Putz():
|
||||
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["Single-Line_/_Durchfahrt"] = anzahl.get("Single-Line_/_Durchfahrt", 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
|
||||
if(anzahl.get("Nachpuffer", False)):
|
||||
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["Dreifachweiche"] = anzahl.get("Dreifachweiche", 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)
|
||||
|
||||
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)
|
||||
|
||||
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:
|
||||
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)
|
||||
|
||||
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...
|
||||
self._Mengen["RRA_BI_abhebbar"] = self._Flyer_Anzahl + anzahl.get("RRA_BI_abhebbar_Korrektur", 0)
|
||||
else:
|
||||
if(anzahl.get("Single-Line_/_Durchfahrt", False)):
|
||||
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"] = anzahl.get("RRA_bi", 0) # TODO: Rote Zelle?
|
||||
self._Mengen["RRA_bi"] = anzahl.get("RRA_bi", 0)
|
||||
|
||||
if(anzahl.get("Single-Line_/_Durchfahrt", False)):
|
||||
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
|
||||
|
||||
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:
|
||||
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["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):
|
||||
return self._Mengen.get(partname, 0)
|
||||
|
||||
def tojson(self):
|
||||
return json.dumps(self._Mengen)
|
||||
|
||||
def mengengeruest(self):
|
||||
return self._Mengen
|
||||
# Putzmaschine_(Neuenhauser):
|
||||
class Putzmaschine_Neuenhauser():
|
||||
def __init__(self, anzahl:dict):
|
||||
@@ -415,13 +600,13 @@ class Putzmaschine_Neuenhauser():
|
||||
self._Mengen["Sensorik_Zugpositionierung"] = self._Putze_Anzahl * 4
|
||||
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["Interface_Putzmaschine"] = self._Putze_Anzahl
|
||||
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_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_Korrektur"] = anzahl.get("RA_uni_abhebbar_Korrektur", 0)
|
||||
self._Mengen["RA_uni_ohne_SPS-Ansteuerung"] = self._Putze_Anzahl
|
||||
@@ -438,6 +623,11 @@ class Putzmaschine_Neuenhauser():
|
||||
def anzahl(self, partname):
|
||||
return self._Mengen.get(partname, 0)
|
||||
|
||||
def tojson(self):
|
||||
return json.dumps(self._Mengen)
|
||||
def mengengeruest(self):
|
||||
return self._Mengen
|
||||
|
||||
# Flyer_(Electrojet):
|
||||
class Flyer_EJet():
|
||||
def __init__(self, anzahl:dict):
|
||||
@@ -454,7 +644,6 @@ class Flyer_EJet():
|
||||
#"Weiche":0,
|
||||
"Weiche_Korrektur":0,
|
||||
#"Weiche_nach_Flyer_(bipolar)":0,
|
||||
"Weiche_nach_Flyer_(bipolar)_Korrektur":0,
|
||||
"Dreifachweiche":0,
|
||||
#"Wechsel":0,
|
||||
"Wechsel_Korrektur":0,
|
||||
@@ -486,8 +675,7 @@ class Flyer_EJet():
|
||||
self._Mengen["Interface_Doffer"] = self._Flyer_Anzahl
|
||||
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_nach_Flyer_(bipolar)"] = self._Flyer_Anzahl # + anzahl.get("Weiche_nach_Flyer_(bipolar)_Korrektur", 0) TODO: Kein Korrekturfaktor?
|
||||
#self._Mengen["Weiche_nach_Flyer_(bipolar)_Korrektur"] = anzahl.get("Weiche_nach_Flyer_(bipolar)_Korrektur", 0)
|
||||
self._Mengen["Weiche_nach_Flyer_(bipolar)"] = self._Flyer_Anzahl
|
||||
self._Mengen["Dreifachweiche"] = anzahl.get("Dreifachweiche", 0)
|
||||
self._Mengen["Wechsel"] = self._Flyer_Anzahl + 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):
|
||||
return self._Mengen.get(partname, 0)
|
||||
|
||||
def tojson(self):
|
||||
return json.dumps(self._Mengen)
|
||||
def mengengeruest(self):
|
||||
return self._Mengen
|
||||
# Verbindungsstrecken/_Wechsel:
|
||||
class Verbindungsstrecken_Wechsel():
|
||||
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["Doppelstreckenantrieb"] = anzahl.get("Doppelstreckenantrieb", 0)
|
||||
|
||||
def tojson(self):
|
||||
return json.dumps(self._Mengen)
|
||||
|
||||
def mengengeruest(self):
|
||||
return self._Mengen
|
||||
# Puffer
|
||||
class Puffer():
|
||||
def __init__(self, anzahl:dict):
|
||||
@@ -582,6 +779,11 @@ class Puffer():
|
||||
def anzahl(self, partname):
|
||||
return self._Mengen.get(partname, 0)
|
||||
|
||||
def tojson(self):
|
||||
return json.dumps(self._Mengen)
|
||||
|
||||
def mengengeruest(self):
|
||||
return self._Mengen
|
||||
# Turm
|
||||
class Turm():
|
||||
mengen = {
|
||||
@@ -605,7 +807,7 @@ class Turm():
|
||||
self._Staustrecken_Anzahl = anzahl.get("Anzahl_Wendlungen", 0)
|
||||
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["RA_bi"] = self._Turm_Anzahl*2 + 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):
|
||||
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():
|
||||
@@ -1592,7 +1833,7 @@ class TestObjectMethods(unittest.TestCase):
|
||||
|
||||
self.assertEqual(deckblatt._flyer_f40.anzahl("Anzahl"), 6)
|
||||
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("Bedientableau_2-fach"), 9)
|
||||
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("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
|
||||
|
||||
#if __name__ == '__main__':
|
||||
# unittest.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