diff options
author | blendoit <blendoit@gmail.com> | 2019-10-19 15:10:38 -0700 |
---|---|---|
committer | blendoit <blendoit@gmail.com> | 2019-10-19 15:10:38 -0700 |
commit | 4a2f29713604b5cfe86fe2367c98ff731c34166e (patch) | |
tree | 619dd8eb76d93dcea4d1eebe64e80bff6ee31510 /creator/wing.py | |
parent | 1d6b7b1444b91949b554a314f589705535d6fc01 (diff) |
Correct randomization of aircraft and save of component tree and eval results
Diffstat (limited to 'creator/wing.py')
-rw-r--r-- | creator/wing.py | 74 |
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 |