diff --git a/src/View/Geometry/MeshingDialog.py b/src/View/Geometry/MeshingDialog.py index 053028cb7de3dcf9a3ee327084949173ff137284..a83d4d5bfae15dfc61011f689a911ecd11175add 100644 --- a/src/View/Geometry/MeshingDialog.py +++ b/src/View/Geometry/MeshingDialog.py @@ -44,6 +44,7 @@ class MeshingDialog(PamhyrDialog): ) self._reach = reach + self._profiles = None self._init_default_values() @@ -51,6 +52,10 @@ class MeshingDialog(PamhyrDialog): self._space_step = 50.0 self._lplan = False self._linear = False + self._begin_cs = -1 + self._end_cs = -1 + + self._init_default_values_profiles() self.set_double_spin_box( "doubleSpinBox_space_step", @@ -62,6 +67,41 @@ class MeshingDialog(PamhyrDialog): else: self.set_radio_button("radioButton_spline", True) + def _init_default_values_profiles(self): + profiles = self.profiles + + self.combobox_add_items("comboBox_begin_kp", profiles) + self.combobox_add_items("comboBox_end_kp", profiles) + + self.set_combobox_text("comboBox_begin_kp", profiles[0]) + self.set_combobox_text("comboBox_end_kp", profiles[-1]) + + @property + def profiles(self): + if self._profiles == None: + self._profiles = list( + map( + lambda p: self._profile_name(p), + self._reach.profiles + ) + ) + + return self._profiles + + def _profile_name(self, profile): + name = profile.name + + if name == "": + name = f"{profile.kp}" + else: + name += f" ({profile.kp})" + + return name + + def _get_guide_line(self): + gl = self._reach + return [] + @property def space_step(self): return self._space_step @@ -74,12 +114,26 @@ class MeshingDialog(PamhyrDialog): def linear(self): return self._linear + @property + def begin_cs(self): + return self._begin_cs + 1 + + @property + def end_cs(self): + return self._end_cs + 1 + def accept(self): self._space_step = self.get_double_spin_box( "doubleSpinBox_space_step", ) self._linear = self.get_radio_button("radioButton_linear") + p1 = self.get_combobox_text("comboBox_begin_kp") + p2 = self.get_combobox_text("comboBox_end_kp") + + self._begin_cs = self.profiles.index(p1) + self._end_cs = self.profiles.index(p2) + super().accept() def reject(self): diff --git a/src/View/Geometry/Window.py b/src/View/Geometry/Window.py index 1f450678cba9e8dd08abcd77dcb73cfdb22d82a1..1006d22919300d00c42027d8df5278842ad89e92 100644 --- a/src/View/Geometry/Window.py +++ b/src/View/Geometry/Window.py @@ -268,6 +268,7 @@ class GeometryWindow(PamhyrWindow): if dlg.exec(): data = { "step": dlg.space_step, + "limites": [dlg.begin_cs, dlg.end_cs], "lplan": dlg.lplan, "linear": dlg.linear, }