[Python] Design & build airplanes from your specifications.
1
defget_centroid(aircraft):
2
"""Return the coordinates of the centroid."""
3
# stringer_area = aircraft.wing.stringers.area
4
# cap_area = aircraft.wing.spars.cap_area
5
6
# TODO: Fix this
7
# caps_x = [value for spar in aircraft.wing.spars.x for value in spar]
8
# caps_z = [value for spar in aircraft.wing.spars.z for value in spar]
9
# stringers_x = aircraft.wing.stringers.x
10
# stringers_z = aircraft.wing.stringers.z
11
12
# denominator = float(
13
# len(caps_x) * cap_area + len(stringers_x) * stringer_area)
14
15
# centroid_x = float(
16
# sum([x * cap_area
17
# for x in caps_x]) + sum([x * stringer_area for x in stringers_x]))
18
# centroid_x = centroid_x / denominator
19
20
# centroid_z = float(
21
# sum([z * cap_area
22
# for z in caps_z]) + sum([z * stringer_area for z in stringers_z]))
23
# centroid_z = centroid_z / denominator
24
25
# return (centroid_x, centroid_z)
26
return (200, 420)
27
28
29
defget_inertia_terms(self):
30
"""Obtain all inertia terms."""
31
stringer_area = self..
32
cap_area = self..
33
34
# Adds upper and lower components' coordinates to list
35
x_stringers = self..
36
z_stringers = self..
37
x_spars = self..[:][0] + self..[:][1]
38
z_spars = self..[:][0] + self..[:][1]
39
stringer_count = range(len())
40
spar_count = range(len(self..))
41
42
# I_x is the sum of the contributions of the spar caps and stringers
43
# TODO: replace list indices with dictionary value
44
I_x = sum(
45
[*([]-self.[1])**2forin])
46
I_x += sum([
47
*([]-self.[1])**2
48
forin
49
])
50
51
I_z = sum(
52
[*([]-self.[0])**2forin])
53
I_z += sum([
54
*([]-self.[0])**2
55
forin
56
])
57
58
I_xz = sum([
59
*([]-self.[0])*
60
([]-self.[1])forin
61
])
62
I_xz += sum([
63
*([]-self.[0])*
64
([]-self.[1])forin
65
])
66
return (I_x, I_z, I_xz)
67