[Python] Design & build airplanes from your specifications.
continue work on tree
Changed files
creator/base.py
@@ -13,18 +13,23 @@
13
13
class Aircraft:
14
14
"""This class tracks all sub-components and is fed to the evaluator."""
15
15
def __init__(self, evaluator, name):
16
Removed:
self.tree = {name: self}
17
Removed:
evaluator.tree[type(self).__name__] = self.tree
16
Added:
self.tree = {name: None}
17
Added:
if type(self).__name__ not in evaluator.tree:
18
Added:
evaluator.tree[name] = self.tree
19
Added:
else:
20
Added:
evaluator.tree[name] = self.tree
18
21
self.evaluator = evaluator
19
22
self.name = name
20
23
21
Removed:
22
24
class Component:
23
25
"""Basic component providing coordinates, tools and a component tree."""
24
26
def __init__(self, parent, name):
25
Removed:
self.tree = {name: self}
26
Removed:
# parent.tree.update(self.tree)
27
Removed:
parent.tree[type(self).__name__] = self.tree
27
Added:
self.tree = {type(self).__name__: name}
28
Added:
# print(type(self).__name__)
29
Added:
if type(self).__name__ not in parent.tree:
30
Added:
parent.tree.update(self.tree)
31
Added:
else:
32
Added:
parent.tree[name] = self.tree
28
33
self.parent = parent
29
34
self.name = name
30
35
self.x = np.array([])
evaluator/evaluator.py
@@ -15,7 +15,8 @@
15
15
class Evaluator:
16
16
"""Performs structural evaluations on aircrafts.
17
17
Individual aircrafts must claim an Evaluator object as parent."""
18
Removed:
def __init__(self):
18
Added:
def __init__(self, name):
19
Added:
self.name = name
19
20
self.tree = {} # Keys are component names, values are objects
20
21
self.results = []
21
22
# # Evaluator knows all geometrical info from evaluated airfoil
@@ -172,9 +173,10 @@
172
173
# print("yayyyyy")
173
174
# return None
174
175
175
Removed:
def update(self):
176
Added:
def update_tree(self):
176
177
"""Refresh evaluator aircraft tree."""
177
Removed:
print(self.tree)
178
Added:
# print(self.name, "tree is:")
179
Added:
# print(self.tree)
178
180
179
181
# self.results.append(self.analysis(aircraft))
180
182
example_airfoil.py
@@ -42,7 +42,7 @@
42
42
43
43
SAVE_PATH = '/home/blendux/Projects/Aircraft_Studio/save'
44
44
45
Removed:
eval = evaluator.Evaluator()
45
Added:
eval = evaluator.Evaluator("eval")
46
46
47
47
ac = creator.base.Aircraft(eval, "ac")
48
48
af = creator.wing.Airfoil(ac, 'af')
@@ -62,7 +62,9 @@
62
62
spar3 = creator.wing.Spar(af2, 'spar3', 0.23)
63
63
spar4 = creator.wing.Spar(af2, 'spar4', 0.67)
64
64
65
Removed:
eval.update()
65
Added:
# eval.update_tree()
66
Added:
# ac2.update_tree()
67
Added:
print(ac2.tree)
66
68
# eval.info_print(2)
67
69
68
70
# # Create stringer instance