[Python] Design & build airplanes from your specifications.
Before Evaluator in-depth rewrite
Changed files
README.org
@@ -9,11 +9,6 @@
9
9
10
10
I adapted it from my own code for the UCLA MAE 154B final project (Spring 2019).
11
11
12
Removed:
#+BEGIN_UML
13
Removed:
Alice -> Bob: Authentication Request
14
Removed:
Bob --> Alice: Authentication Response
15
Removed:
#+END_UML
16
Removed:
17
12
#+CAPTION: Program Flow Sequence
18
13
#+NAME: fig:sequence-program
19
14
[[./doc/sequence_program.png]]
creator/base.py
@@ -12,15 +12,17 @@
12
12
13
13
class Aircraft:
14
14
"""This class tracks all sub-components and is fed to the evaluator."""
15
Removed:
def __init__(self, parent):
15
Added:
def __init__(self, parent, name):
16
16
self.parent = parent
17
Added:
self.name = name
18
Added:
parent.aircrafts.append(name)
17
19
18
20
19
21
class Component:
20
22
"""Basic component providing coordinates and tools."""
21
23
def __init__(self, parent, name):
22
Removed:
self.name = str()
23
24
self.parent = None
25
Added:
self.name = name
24
26
self.x = np.array([])
25
27
self.z = np.array([])
26
28
self.material = None
evaluator.py
@@ -13,49 +13,58 @@
13
13
14
14
15
15
class Evaluator:
16
Removed:
"""Performs structural evaluations for the airfoil passed as argument."""
17
Removed:
def __init__(self, aircraft):
18
Removed:
# Evaluator knows all geometrical info from evaluated airfoil
19
Removed:
self.airfoil = self.get_airfoil(aircraft)
20
Removed:
self.spars = self.get_spars(aircraft)
21
Removed:
self.stringers = self.get_stringers(aircraft)
22
Removed:
# Lift
23
Removed:
self.lift_rectangular = []
24
Removed:
self.lift_elliptical = []
25
Removed:
self.lift_total = []
26
Removed:
# Drag
27
Removed:
self.drag = []
28
Removed:
# centroid
29
Removed:
self.centroid = []
16
Added:
"""Performs structural evaluations on aircrafts.
17
Added:
Individual aircrafts must claim an Evaluator object as parent."""
18
Added:
def __init__(self):
19
Added:
self.aircrafts = []
20
Added:
# # Evaluator knows all geometrical info from evaluated airfoil
21
Added:
# self.airfoil = self.get_airfoil(aircraft)
22
Added:
# self.spars = self.get_spars(aircraft)
23
Added:
# self.stringers = self.get_stringers(aircraft)
24
Added:
# # Lift
25
Added:
# self.lift_rectangular = []
26
Added:
# self.lift_elliptical = []
27
Added:
# self.lift_total = []
28
Added:
# # Drag
29
Added:
# self.drag = []
30
Added:
# # centroid
31
Added:
# self.centroid = []
30
32
# Inertia terms:
31
33
self.I_ = {'x': 0, 'z': 0, 'xz': 0}
32
34
33
35
def __str__(self):
34
36
return type(self).__name__
35
37
36
Removed:
def get_airfoil(self, aircraft):
37
Removed:
"""Get data of spars belonging to aircraft."""
38
Added:
def update(self):
39
Added:
"""Get all aircrafts' data."""
38
40
try:
39
Removed:
pass
41
Added:
print(self.aircrafts)
40
42
except:
41
Removed:
pass
42
Removed:
pass
43
Added:
print("failed!")
43
44
44
Removed:
def get_spars(self, aircraft):
45
Removed:
"""Get data of spars belonging to aircraft."""
46
Removed:
try:
47
Removed:
pass
48
Removed:
except:
49
Removed:
pass
50
Removed:
pass
45
Added:
# def get_airfoil(self, aircraft):
46
Added:
# """Get data of spars belonging to aircraft."""
47
Added:
# try:
48
Added:
# pass
49
Added:
# except:
50
Added:
# pass
51
Added:
# pass
51
52
52
Removed:
def get_stringers(self, aircraft):
53
Removed:
"""Get data of spars belonging to aircraft."""
54
Removed:
try:
55
Removed:
pass
56
Removed:
except:
57
Removed:
pass
58
Removed:
pass
53
Added:
# def get_spars(self, aircraft):
54
Added:
# """Get data of spars belonging to aircraft."""
55
Added:
# try:
56
Added:
# pass
57
Added:
# except:
58
Added:
# pass
59
Added:
# pass
60
Added:
61
Added:
# def get_stringers(self, aircraft):
62
Added:
# """Get data of spars belonging to aircraft."""
63
Added:
# try:
64
Added:
# pass
65
Added:
# except:
66
Added:
# pass
67
Added:
# pass
59
68
60
69
def info_print(self, round):
61
70
"""Print all the component's evaluated data to the terminal."""
example_airfoil.py
@@ -42,9 +42,9 @@
42
42
43
43
SAVE_PATH = '/home/blendux/Projects/Aircraft_Studio/save'
44
44
45
Removed:
eval = evaluator.Evaluator
45
Added:
eval = evaluator.Evaluator()
46
46
# Create aircraft instance
47
Removed:
ac = creator.base.Aircraft(eval)
47
Added:
ac = creator.base.Aircraft(eval, "ac")
48
48
# Create airfoil instance
49
49
af = creator.wing.Airfoil(ac, 'af')
50
50
af.add_naca(NACA_NUM)
@@ -58,6 +58,9 @@
58
58
# af.spar2.info_print(2)
59
59
af.spar1.info_save()
60
60
af.spar2.info_save()
61
Added:
62
Added:
eval.update()
63
Added:
# eval.info_print(2)
61
64
62
65
# # Create stringer instance
63
66
# af.stringer = wing.Stringer()