Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions pulse/editor/structures/valve.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,9 @@ def load_from_data(cls, data: dict) -> "Valve":

valve_info = data["valve_info"]
d_out, t, offset_y, offset_z, *_ = valve_info["body_section_parameters"]
flange_outer_diameter, *_ = valve_info["flange_section_parameters"]
flange_length = valve_info["flange_length"]
flange_section_parameters = valve_info.get("flange_section_parameters")
flange_outer_diameter = flange_section_parameters[0] if flange_section_parameters else None
flange_length = valve_info.get("flange_length")

structure = Valve(
start,
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
10 changes: 10 additions & 0 deletions pulse/interface/user_input/model/geometry/options/pipe_options.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,16 @@ def configure_section_of_selected(self):
if not isinstance(structure, Pipe | Bend):
continue

extra_info: dict = kwargs.get("extra_info")

fluid_id = structure.extra_info.get("fluid_id")
if isinstance(fluid_id, int):
extra_info.update({"fluid_id" : fluid_id})

material_id = structure.extra_info.get("material_id")
if isinstance(material_id, int):
extra_info.update({"material_id" : material_id})

for k, v in kwargs.items():
setattr(structure, k, v)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from molde.stylesheets import set_qproperty

from pulse import app
from pulse.editor.structures import Beam
from pulse.utils.text_utils import pascal_to_spaced_case

if TYPE_CHECKING:
Expand Down Expand Up @@ -99,6 +100,16 @@ def configure_section_of_selected(self):
if not isinstance(structure, self.structure_type):
continue

extra_info: dict = kwargs.get("extra_info")

fluid_id = structure.extra_info.get("fluid_id")
if isinstance(fluid_id, int) and not isinstance(structure, Beam):
extra_info.update({"fluid_id" : fluid_id})

material_id = structure.extra_info.get("material_id")
if isinstance(material_id, int):
extra_info.update({"material_id" : material_id})

for k, v in kwargs.items():
setattr(structure, k, v)

Expand Down
17 changes: 14 additions & 3 deletions pulse/interface/user_input/model/geometry/options/valve_options.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,25 @@ def get_kwargs(self) -> dict:
if self.structure_info is None:
return

return dict(
kwargs = dict(
diameter=self.structure_info.get("effective_diameter", 0),
flange_outer_diameter=self.structure_info.get("flange_section_parameters", [0])[0],
flange_length=self.structure_info.get("flange_length"),
thickness=0,
extra_info=self._get_extra_info(),
)

if "flange_diameter" in self.structure_info:
kwargs.update(
flange_outer_diameter=self.structure_info.get("flange_section_parameters", [0])[0],
flange_length=self.structure_info.get("flange_length"),
)
else:
kwargs.update(
flange_outer_diameter=None,
flange_length=None,
)

return kwargs

def configure_structure(self):
app().main_window.close_dialogs()
self.valve_input = ValvesInput(render_type="geometry")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self._initialize()
self._create_connections()
self._config_widgets()
self._add_animation_widget()


Expand Down Expand Up @@ -50,6 +49,11 @@ def _config_widgets(self):
font = QFont()
font.setPointSize(9)

# full reset of the treeWidget_frequencies
self.treeWidget_frequencies.clear()
self.treeWidget_frequencies.setColumnCount(0)
self.treeWidget_frequencies.setHeaderLabels([])

for i, header in enumerate(headers):
self.treeWidget_frequencies.headerItem().setFont(i, font)
self.treeWidget_frequencies.headerItem().setText(i, header)
Expand Down Expand Up @@ -131,6 +135,8 @@ def get_user_color_scale_setup(self):

def load_natural_frequencies(self):

self._config_widgets()

if isinstance(app().project.complex_natural_frequencies_acoustic, np.ndarray):
self.natural_frequencies = list(app().project.complex_natural_frequencies_acoustic)

Expand All @@ -140,7 +146,6 @@ def load_natural_frequencies(self):
modes = np.arange(1, len(self.natural_frequencies) + 1, 1)
self.modes_to_frequencies = dict(zip(modes, self.natural_frequencies))

self.treeWidget_frequencies.clear()
for mode, value in self.modes_to_frequencies.items():
if isinstance(value, complex):
cols = 3
Expand Down
5 changes: 3 additions & 2 deletions pulse/interface/viewer_3d/actors/fixed_symbols_actor.py
Original file line number Diff line number Diff line change
Expand Up @@ -204,8 +204,9 @@ def create_valves(self):

valve_info = data["valve_info"]
outside_diameter, thickness, offset_y, offset_z, *_ = valve_info["body_section_parameters"]
flange_outer_diameter, *_ = valve_info["flange_section_parameters"]
flange_length = valve_info["flange_length"]
flange_section_parameters = valve_info.get("flange_section_parameters")
flange_outer_diameter = flange_section_parameters[0] if flange_section_parameters else None
flange_length = valve_info.get("flange_length")

source = valve_data(
length,
Expand Down
2 changes: 1 addition & 1 deletion pulse/interface/welcome_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ def setup_example_projects(self, layout: QBoxLayout):
layout.addLayout(examples_layout)
layout.addStretch()

# Finds every file that end with ".vibra" in the examples
# Finds every file that end with ".pulse" in the examples
# dir and use only the last N of them to show.
number_of_examples = 5
example_paths = (EXAMPLES_DIR / "openpulse_files/").glob("*.pulse")
Expand Down
9 changes: 5 additions & 4 deletions pulse/utils/cross_section_sources.py
Original file line number Diff line number Diff line change
Expand Up @@ -428,14 +428,15 @@ def valve_data(length, outside_diameter, thickness, flange_diameter, flange_leng
return vtkPolyData()

pipe = pipe_data(length, outside_diameter, thickness)
start_flange = flange_data(flange_length, flange_diameter, 0)
end_flange = apply_transform(start_flange, dx=length - flange_length)
handle = valve_handle(outside_diameter)
handle = apply_transform(handle, dx=length/2, rz=90)

append_polydata.AddInputData(pipe)
append_polydata.AddInputData(start_flange)
append_polydata.AddInputData(end_flange)
if flange_diameter and flange_length:
start_flange = flange_data(flange_length, flange_diameter, 0)
end_flange = apply_transform(start_flange, dx=length - flange_length)
append_polydata.AddInputData(start_flange)
append_polydata.AddInputData(end_flange)
append_polydata.AddInputData(handle)
append_polydata.Update()

Expand Down
Loading