summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorblendoit <blendoit@gmail.com>2019-10-06 21:32:41 -0700
committerblendoit <blendoit@gmail.com>2019-10-06 21:32:41 -0700
commite05225247b4873fa1825a2adeee23f247c77ff03 (patch)
tree2d9e3c50e63dbc92127ae4cc6d0910fc065b3838
parent94ff14d3d1ab01a63aea34636c24fdcd67d4ed79 (diff)
continue work on tree
-rw-r--r--creator/base.py17
-rw-r--r--evaluator/evaluator.py8
-rw-r--r--example_airfoil.py6
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
Copyright 2019--2024 Marius PETER