From e05225247b4873fa1825a2adeee23f247c77ff03 Mon Sep 17 00:00:00 2001 From: blendoit Date: Sun, 6 Oct 2019 21:32:41 -0700 Subject: continue work on tree --- creator/base.py | 17 +++++++++++------ evaluator/evaluator.py | 8 +++++--- example_airfoil.py | 6 ++++-- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/creator/base.py b/creator/base.py index 1e8646d..f6342c8 100644 --- a/creator/base.py +++ b/creator/base.py @@ -13,18 +13,23 @@ logging.basicConfig(filename='log.txt', class Aircraft: """This class tracks all sub-components and is fed to the evaluator.""" def __init__(self, evaluator, name): - self.tree = {name: self} - evaluator.tree[type(self).__name__] = self.tree + self.tree = {name: None} + if type(self).__name__ not in evaluator.tree: + evaluator.tree[name] = self.tree + else: + evaluator.tree[name] = self.tree self.evaluator = evaluator self.name = name - class Component: """Basic component providing coordinates, tools and a component tree.""" def __init__(self, parent, name): - self.tree = {name: self} - # parent.tree.update(self.tree) - parent.tree[type(self).__name__] = self.tree + self.tree = {type(self).__name__: name} + # print(type(self).__name__) + if type(self).__name__ not in parent.tree: + parent.tree.update(self.tree) + else: + parent.tree[name] = self.tree self.parent = parent self.name = name self.x = np.array([]) diff --git a/evaluator/evaluator.py b/evaluator/evaluator.py index d26ee13..e6b55b4 100644 --- a/evaluator/evaluator.py +++ b/evaluator/evaluator.py @@ -15,7 +15,8 @@ import matplotlib.pyplot as plt class Evaluator: """Performs structural evaluations on aircrafts. Individual aircrafts must claim an Evaluator object as parent.""" - def __init__(self): + def __init__(self, name): + self.name = name self.tree = {} # Keys are component names, values are objects self.results = [] # # Evaluator knows all geometrical info from evaluated airfoil @@ -172,9 +173,10 @@ class Evaluator: # print("yayyyyy") # return None - def update(self): + def update_tree(self): """Refresh evaluator aircraft tree.""" - print(self.tree) + # print(self.name, "tree is:") + # print(self.tree) # self.results.append(self.analysis(aircraft)) diff --git a/example_airfoil.py b/example_airfoil.py index aa1a5f0..6c272a2 100644 --- a/example_airfoil.py +++ b/example_airfoil.py @@ -42,7 +42,7 @@ NOSE_BOTTOM_STRINGERS = 5 SAVE_PATH = '/home/blendux/Projects/Aircraft_Studio/save' -eval = evaluator.Evaluator() +eval = evaluator.Evaluator("eval") ac = creator.base.Aircraft(eval, "ac") af = creator.wing.Airfoil(ac, 'af') @@ -62,7 +62,9 @@ af2.add_naca(3412) spar3 = creator.wing.Spar(af2, 'spar3', 0.23) spar4 = creator.wing.Spar(af2, 'spar4', 0.67) -eval.update() +# eval.update_tree() +# ac2.update_tree() +print(ac2.tree) # eval.info_print(2) # # Create stringer instance -- cgit v1.2.3