From 89e1a1ad988ba8041b15f631aa070aa05f7c62a6 Mon Sep 17 00:00:00 2001 From: Benedikt Hock <benedikt.hock@stud.tu-darmstadt.de> Date: Wed, 1 Mar 2023 16:48:59 +0100 Subject: [PATCH] add ability to clone assemblies --- functions/classes.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/functions/classes.py b/functions/classes.py index 1d9c351..abc3eee 100644 --- a/functions/classes.py +++ b/functions/classes.py @@ -12,7 +12,6 @@ import copy # TODO # - Docstrings # - Minimalbeispiel für KPIs -> halb umgesetzt -> mit get_components veranschaulichen -# - Erlaube Clone bei Assembly (jedes child muss durch durch Klon ersetzt werden) # - Änderungen an Beispiel umsetzen # - Gute String Darstellung -> Ist so schon ok bisher? -> Nä Semester @@ -174,6 +173,15 @@ class LegoAssembly: def __repr__(self): return f"LegoAssembly {self.label} [{self.uuid}]" + def clone(self, label: str = None) -> LegoAssembly: + if label is None: + label = self.label + clone = LegoAssembly(label, copy.deepcopy(self.properties), self.layer) + for component in self.components: + clone.add_component(component.clone()) + for assembly in self.assemblies: + clone.add_assembly(assembly.clone()) + return clone def print_assembly_tree(root, level=0, is_last=False): # print component -- GitLab