Omniflo hat jetzt Stopper und scanner

This commit is contained in:
2026-01-26 12:36:37 +01:00
parent 257ee8304a
commit d8f75450a9
3 changed files with 68 additions and 29 deletions
+58 -24
View File
@@ -99,7 +99,7 @@ def handle_ils_2_0_gefaellestrecke(msp, teileid, merkmale, x, y, doc, lib_doc, v
verbunden_am_einen = False
richtung2 ="DEFAULT"
unterschiedlich = False
anzahl_seperatoren_oder_scan(msp, doc, lib_doc, gefaelle_objekt)
anzahl_seperatoren_oder_scan(msp, doc, lib_doc, gefaelle_objekt,config)
for nachbarn in strecken_nachbarn:
if teileid == nachbarn.get("Id"):
gefaellestrecke_nachbarn = nachbarn
@@ -336,7 +336,7 @@ def handle_ils_2_0_variofoerderer(msp, teileid, merkmale, x, y, doc, lib_doc, ve
upper_hoehe_vario= foerderer.h1
lower_hoehe_vario = foerderer.h0
hoehe_vario= foerderer.hight_zwischen
anzahl_seperatoren_oder_scan(msp, doc, lib_doc, foerderer)
anzahl_seperatoren_oder_scan(msp, doc, lib_doc, foerderer,config)
as_es_methoden.vertausch_der_höhe(foerderer)
upper_hoehe_vario = foerderer.h1
lower_hoehe_vario = foerderer.h0
@@ -690,7 +690,7 @@ def handle_omniflo(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols,
if omniflo_objekt.sivasnummer == omnisivas or omniflo_objekt.sivasnummer == tefsivas:
Omniflo.Omniflo.Omniflo_geraden_erstellung(msp, doc, tefsivas, omniflo_objekt)
if omniflo_objekt.sivasnummer == omnisivas:
anzahl_seperatoren_oder_scan(msp, doc, lib_doc, omniflo_objekt)
anzahl_seperatoren_oder_scan(msp, doc, lib_doc, omniflo_objekt,config)
elif omniflo_objekt.sivasnummer == foerderer:
Omniflo.Omniflo.omniflo_foerdererstellung(msp, doc, lib_doc, omniflo_objekt)
return
@@ -711,14 +711,20 @@ def handle_omniflo(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols,
layer, color = block_methoden.get_insert_color_layer(lib_doc, omniflo_objekt.sivasnummer)
msp.add_blockref(blockname, (x, y,omniflo_objekt.hoehe), dxfattribs={"rotation": rotation,"layer": layer, "color": color})
def anzahl_seperatoren_oder_scan(msp, doc, lib_doc, klassen_objekt):
def anzahl_seperatoren_oder_scan(msp, doc, lib_doc, klassen_objekt,config):
"""Importiert alle seperatoren und/oder scanner für das nötige objekt"""
separatoren = klassen_objekt.anzahl_separatoren
omniflo_scanner = config.get("Scanner_Stoper_namen","Omniflo_scanner")
ILS_scanner = config.get("Scanner_Stoper_namen","Ils_scanner")
omniflo_stopper = config.get("Scanner_Stoper_namen","Omniflo_stopper")
ILS_seperator = config.get("Scanner_Stoper_namen","ILS_seperator")
scanner = klassen_objekt.anzahl_scanner
separatoren = None
stopper = None
x = klassen_objekt.x
y = klassen_objekt.y
hoehe =klassen_objekt.hight_zwischen
rotation = klassen_objekt.drehung
# Schauen welche Ausrichtung das Objekt hat, damit man die Separtoren unbd Scanner nicht in das Objekt tut
if rotation == 0 or rotation == -180:
ausrichtung = "V"
@@ -730,30 +736,58 @@ def anzahl_seperatoren_oder_scan(msp, doc, lib_doc, klassen_objekt):
else:
einsatz_fest = [x,y - 150,hoehe]
modular = 3
block_scanner = "SCAN"
block_separatoren = "S-LP"
block_methoden.import_block(block_scanner,lib_doc,doc)
block_methoden.import_block(block_separatoren,lib_doc,doc)
layer_scan, color_scan = block_methoden.get_insert_color_layer(lib_doc, block_scanner)
layer_separatioren, color_separatioren = block_methoden.get_insert_color_layer(lib_doc, block_separatoren)
if omniflo_scanner not in lib_doc.blocks:
block_methoden.import_block(ILS_scanner,lib_doc,doc)
block_methoden.import_block(ILS_seperator,lib_doc,doc)
scanner_name = ILS_scanner
separator_name = ILS_seperator
layer_scan, color_scan = block_methoden.get_insert_color_layer(lib_doc, ILS_scanner)
layer_separatioren, color_separatioren = block_methoden.get_insert_color_layer(lib_doc, ILS_seperator)
separatoren = klassen_objekt.anzahl_separatoren
else:
block_methoden.import_block(omniflo_scanner,lib_doc,doc)
block_methoden.import_block(omniflo_stopper,lib_doc,doc)
scanner_name = omniflo_scanner
stopper_name = omniflo_stopper
layer_scan, color_scan = block_methoden.get_insert_color_layer(lib_doc, omniflo_scanner)
layer_stopper, color_stopper = block_methoden.get_insert_color_layer(lib_doc, omniflo_stopper)
stopper = klassen_objekt.anzahl_stopper
einsatz_zwischen =[ einsatz_fest[0],einsatz_fest[1],einsatz_fest[2]]
anzahl =0
while anzahl < separatoren:
anzahl = anzahl + 1
msp.add_blockref(block_separatoren,einsatz_zwischen, dxfattribs={"layer": layer_separatioren,"color": color_separatioren})
if anzahl % modular == 0:
einsatz_fest[1] = einsatz_fest[1] - 150
einsatz_zwischen = einsatz_fest.copy()
else:
einsatz_zwischen[0] = einsatz_zwischen[0]+ 300
if separatoren != None:
while anzahl < separatoren:
anzahl = anzahl + 1
msp.add_blockref(separator_name,einsatz_zwischen, dxfattribs={"layer": layer_separatioren,"color": color_separatioren})
if anzahl % modular == 0:
einsatz_fest[1] = einsatz_fest[1] - 150
einsatz_zwischen = einsatz_fest.copy()
else:
einsatz_zwischen[0] = einsatz_zwischen[0]+ 300
if anzahl % modular != 0:
einsatz_fest[1] = einsatz_fest[1] - 150
einsatz_zwischen = einsatz_fest.copy()
anzahl =0
else:
while anzahl < stopper:
anzahl = anzahl + 1
msp.add_blockref(stopper_name,einsatz_zwischen, dxfattribs={"layer": layer_stopper,"color": color_stopper})
if anzahl % modular == 0:
einsatz_fest[1] = einsatz_fest[1] - 250
einsatz_zwischen = einsatz_fest.copy()
else:
einsatz_zwischen[0] = einsatz_zwischen[0]+ 200
if anzahl % modular != 0:
einsatz_fest[1] = einsatz_fest[1] - 250
einsatz_zwischen = einsatz_fest.copy()
anzahl =0
if anzahl % modular != 0:
einsatz_fest[1] = einsatz_fest[1] - 150
einsatz_zwischen = einsatz_fest.copy()
anzahl =0
while anzahl < scanner:
anzahl = anzahl + 1
msp.add_blockref(block_scanner,einsatz_zwischen,dxfattribs={"layer": layer_scan,"color": color_scan})
msp.add_blockref(scanner_name,einsatz_zwischen,dxfattribs={"layer": layer_scan,"color": color_scan})
if anzahl % modular == 0:
einsatz_fest[1] = einsatz_fest[1] - 150
einsatz_zwischen = einsatz_fest.copy()