summaryrefslogtreecommitdiff
path: root/creator/wing.py
diff options
context:
space:
mode:
authorblendoit <blendoit@gmail.com>2019-10-19 15:10:38 -0700
committerblendoit <blendoit@gmail.com>2019-10-19 15:10:38 -0700
commit4a2f29713604b5cfe86fe2367c98ff731c34166e (patch)
tree619dd8eb76d93dcea4d1eebe64e80bff6ee31510 /creator/wing.py
parent1d6b7b1444b91949b554a314f589705535d6fc01 (diff)
Correct randomization of aircraft and save of component tree and eval results
Diffstat (limited to 'creator/wing.py')
-rw-r--r--creator/wing.py74
1 files changed, 36 insertions, 38 deletions
diff --git a/creator/wing.py b/creator/wing.py
index 8257d63..01aa6ff 100644
--- a/creator/wing.py
+++ b/creator/wing.py
@@ -170,71 +170,69 @@ class Spar(base.Component):
class Stringer(base.Component):
"""Contains the coordinates of all stringers."""
- def __init__(self, parent, name):
- super().__init__(parent, name)
- parent.stringers = self
- self.x_start = []
- self.x_end = []
- self.z_start = []
- self.z_end = []
- self.diameter = float()
- self.area = float()
-
- def add_coord(self, airfoil, den_u_1=4, den_u_2=4, den_l_1=4, den_l_2=4):
+ def __init__(self,
+ parent,
+ name,
+ den_u_1=4,
+ den_u_2=4,
+ den_l_1=4,
+ den_l_2=4):
"""Add equally distributed stringers to four airfoil locations
(upper nose, lower nose, upper surface, lower surface).
- Parameters:
- airfoil_coord: packed airfoil coordinates
- spar_coord: packed spar coordinates
den_u_1: upper nose number of stringers
den_u_2: upper surface number of stringers
den_l_1: lower nose number of stringers
den_l_2: lower surface number of stringers
-
- Returns:
- None
"""
+ super().__init__(parent, name)
+ parent.stringers = self
+ self.x_start = []
+ self.x_end = []
+ self.z_start = []
+ self.z_end = []
+ self.diameter = float()
+ self.area = float()
# Find distance between leading edge and first upper stringer
- interval = airfoil.spars[0].x[0] / (den_u_1 + 1)
+ # interval = self.parent.spars[0].x[0] / (den_u_1 + 1)
+ interval = 2
# initialise first self.stringer_x at first interval
x = interval
# Add upper stringers from leading edge until first spar.
for _ in range(0, den_u_1):
# Index of the first value of airfoil.x > x
- i = bi.bisect_left(airfoil.x, x)
- self.x = np.append(self.x, airfoil.x[i])
- self.z = np.append(self.z, airfoil.z[i])
+ i = bi.bisect_left(self.parent.x, x)
+ self.x = np.append(self.x, self.parent.x[i])
+ self.z = np.append(self.z, self.parent.z[i])
x += interval
# Add upper stringers from first spar until last spar
- # TODO: stringer placement if only one spar is created
- interval = (airfoil.spars[-1].x[0] -
- airfoil.spars[0].x[0]) / (den_u_2 + 1)
- x = interval + airfoil.spars[0].x[0]
+ interval = (self.parent.spars[-1].x[0] -
+ self.parent.spars[0].x[0]) / (den_u_2 + 1)
+ x = interval + self.parent.spars[0].x[0]
for _ in range(0, den_u_2):
- i = bi.bisect_left(airfoil.x, x)
- self.x = np.append(self.x, airfoil.x[i])
- self.z = np.append(self.z, airfoil.z[i])
+ i = bi.bisect_left(self.parent.x, x)
+ self.x = np.append(self.x, self.parent.x[i])
+ self.z = np.append(self.z, self.parent.z[i])
x += interval
# Find distance between leading edge and first lower stringer
- interval = airfoil.spars[0].x[1] / (den_l_1 + 1)
+ interval = self.parent.spars[0].x[1] / (den_l_1 + 1)
x = interval
# Add lower stringers from leading edge until first spar.
for _ in range(0, den_l_1):
- i = bi.bisect_left(airfoil.x[::-1], x)
- self.x = np.append(self.x, airfoil.x[-i])
- self.z = np.append(self.z, airfoil.z[-i])
+ i = bi.bisect_left(self.parent.x[::-1], x)
+ self.x = np.append(self.x, self.parent.x[-i])
+ self.z = np.append(self.z, self.parent.z[-i])
x += interval
# Add lower stringers from first spar until last spar
- interval = (airfoil.spars[-1].x[1] -
- airfoil.spars[0].x[1]) / (den_l_2 + 1)
- x = interval + airfoil.spars[0].x[1]
+ interval = (self.parent.spars[-1].x[1] -
+ self.parent.spars[0].x[1]) / (den_l_2 + 1)
+ x = interval + self.parent.spars[0].x[1]
for _ in range(0, den_l_2):
- i = bi.bisect_left(airfoil.x[::-1], x)
- self.x = np.append(self.x, airfoil.x[-i])
- self.z = np.append(self.z, airfoil.z[-i])
+ i = bi.bisect_left(self.parent.x[::-1], x)
+ self.x = np.append(self.x, self.parent.x[-i])
+ self.z = np.append(self.z, self.parent.z[-i])
x += interval
return None
Copyright 2019--2024 Marius PETER