|
1 | | -from typing import Self |
| 1 | +from typing import Self, List |
2 | 2 |
|
3 | 3 | import dill |
4 | 4 |
|
@@ -63,9 +63,12 @@ def from_rocket_model(cls, rocket: Rocket) -> Self: |
63 | 63 | rocketpy_rocket.evaluate_static_margin() |
64 | 64 |
|
65 | 65 | # FinSet |
66 | | - finset = cls.get_rocketpy_finset(rocket.fins, rocket.fins.fins_kind) |
67 | | - rocketpy_rocket.aerodynamic_surfaces.add(finset, finset.position) |
68 | | - rocketpy_rocket.evaluate_static_margin() |
| 66 | + rocketpy_finset_list = cls.get_rocketpy_finset_list_from_fins_list( |
| 67 | + rocket.fins |
| 68 | + ) |
| 69 | + for finset in rocketpy_finset_list: |
| 70 | + rocketpy_rocket.aerodynamic_surfaces.add(finset, finset.position) |
| 71 | + rocketpy_rocket.evaluate_static_margin() |
69 | 72 |
|
70 | 73 | # Tail |
71 | 74 | tail = cls.get_rocketpy_tail(rocket.tail) |
@@ -134,6 +137,18 @@ def get_rocketpy_nose(nose: NoseCone) -> RocketPyNoseCone: |
134 | 137 | rocketpy_nose.position = nose.position |
135 | 138 | return rocketpy_nose |
136 | 139 |
|
| 140 | + @classmethod |
| 141 | + def get_rocketpy_finset_list_from_fins_list( |
| 142 | + cls, fins_list: List[Fins] |
| 143 | + ) -> List[RocketPyFins]: |
| 144 | + rocketpy_finset_list = [] |
| 145 | + if not fins_list: |
| 146 | + return [] |
| 147 | + for fins in fins_list: |
| 148 | + rocketpy_fins = cls.get_rocketpy_finset(fins, fins.fins_kind) |
| 149 | + rocketpy_finset_list.append(rocketpy_fins) |
| 150 | + return rocketpy_finset_list |
| 151 | + |
137 | 152 | @staticmethod |
138 | 153 | def get_rocketpy_finset(fins: Fins, kind: str) -> RocketPyFins: |
139 | 154 | """ |
|
0 commit comments