From db1df0c0413949785dc5fa59a887bac00cf11265 Mon Sep 17 00:00:00 2001 From: blendoit Date: Sun, 6 Oct 2019 19:16:04 -0700 Subject: attempt component tree --- creator/base.py | 15 +++++++-------- creator/wing.py | 4 ++-- 2 files changed, 9 insertions(+), 10 deletions(-) (limited to 'creator') diff --git a/creator/base.py b/creator/base.py index c46b297..24b452c 100644 --- a/creator/base.py +++ b/creator/base.py @@ -12,25 +12,24 @@ logging.basicConfig(filename='log.txt', class Aircraft: """This class tracks all sub-components and is fed to the evaluator.""" - def __init__(self, parent, name): - self.parent = parent + def __init__(self, evaluator, name): + evaluator.tree.update({"aircraft": self}) + self.evaluator = evaluator self.name = name - parent.aircrafts.append(name) + self.tree = [] # Nested list of subcomponents class Component: - """Basic component providing coordinates and tools.""" + """Basic component providing coordinates, tools and a component tree.""" def __init__(self, parent, name): - self.parent = None + self.tree = [name] + parent.tree.append(self.tree) self.name = name self.x = np.array([]) self.z = np.array([]) self.material = None self.mass = float() - def __str__(self): - return self.name - def set_material(self, material): """Set the component bulk material.""" self.material = material diff --git a/creator/wing.py b/creator/wing.py index 59f5bbe..cc7d29a 100644 --- a/creator/wing.py +++ b/creator/wing.py @@ -24,7 +24,7 @@ import resources.materials as mt class Airfoil(base.Component): """This class represents a single NACA airfoil. - The coordinates are saved as two lists + The coordinates are saved as two np.arrays for the x- and z-coordinates. The coordinates start at the leading edge, travel over the airfoil's upper edge, then loop back to the leading edge via the lower edge. @@ -141,9 +141,9 @@ class Spar(base.Component): super().__init__(parent, name) super().set_material(material) self.cap_area = float() - loc = loc_percent * parent.chord # bi.bisect_left: returns index of first value in parent.x > loc # This ensures that spar geom intersects with airfoil geom. + loc = loc_percent * parent.chord # Spar upper coordinates spar_u = bi.bisect_left(parent.x, loc) - 1 self.x = np.append(self.x, parent.x[spar_u]) -- cgit v1.2.3