Adding ability of branching

This commit is contained in:
reiche committed 2026-07-09 15:51:15 +02:00
1 parent a60f4133b5
commit 4fed309e47
1 file changed
+19 -8
+19 -8
View File
@@ -46,7 +46,7 @@ class BeamlineEditor(QtWidgets.QMainWindow, Ui_BeamlineGUI):
self.elementDB={}
self.savefile=''
self.lines={}
self.branchingID=[]
self.branchingID={}
self.PL=ProtoListe(0)
self.loadFile('Layouts/SFTest2.json')
@@ -210,10 +210,12 @@ class BeamlineEditor(QtWidgets.QMainWindow, Ui_BeamlineGUI):
self.branchingID.clear()
for key in self.elementDB.keys():
ele = self.elementDB[key]
if ele.branching:
self.branchingID.append(key)
print('Branching elements')
print(self.branchingID)
if isinstance(ele,Dipole) and ele.branching:
self.branchingID[key] = False
print('Branching elements:')
for key in self.branchingID.keys():
print('ID:',key)
def flatten(self, node_id, case_num=1 ):
print('Flatten beamline for case:', case_num)
@@ -240,6 +242,7 @@ class BeamlineEditor(QtWidgets.QMainWindow, Ui_BeamlineGUI):
def unwrap(self, name, node_id,line,case_num):
print('Unwrapping Line: %s' % name)
tree=self.editor.flatten(node_id,case_num)
secondBranch = False
for ele in tree.path:
self.report(ele, name)
type = self.editor.getElementType(ele)
@@ -251,7 +254,7 @@ class BeamlineEditor(QtWidgets.QMainWindow, Ui_BeamlineGUI):
name1 = subline.Name
ref = subline.firstElementID
if ref in self.elementDB.keys():
self.unwrap(name + name1, ref, subline,case_num)
secondBranch = self.unwrap(name + name1, ref, subline,case_num)
else:
print('Undefined reference in Line Container:', name + name1)
elif type == 'Variable Line':
@@ -270,8 +273,16 @@ class BeamlineEditor(QtWidgets.QMainWindow, Ui_BeamlineGUI):
Ref='relative'
line.append(self.elementDB[ele],sRef=sRef,Ref=Ref)
self.elementDB[ele].Prefix=name
if tree.primary:
self.unwrap(name,tree.primary.node_id,line,case_num)
if ele in self.branchingID.keys():
if self.branchingID[ele] is True:
return True
if secondBranch:
if tree.secondary:
self.unwrap(name, tree.secondary.node_id, line, case_num)
else:
if tree.primary:
self.unwrap(name,tree.primary.node_id,line,case_num)
return False