Skip to content

Commit 4bceb9f

Browse files
author
franaudo
committed
fix viewer
1 parent 2b956f7 commit 4bceb9f

File tree

4 files changed

+23
-33
lines changed

4 files changed

+23
-33
lines changed

src/compas_fea2/UI/viewer/scene.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -346,18 +346,18 @@ class FEA2ReactionFieldResultsObject(GroupObject):
346346
347347
"""
348348

349-
def __init__(self, field, step, component, show_vectors=1, show_contour=False, **kwargs):
349+
def __init__(self, step, component, show_vectors=1, show_contour=False, **kwargs):
350350
# FIXME: component is not used
351351

352352
field = kwargs.pop("item")
353353
cmap = kwargs.get("cmap", ColorMap.from_palette("hawaii"))
354-
cmap = None
355354

356355
group_elements = []
357356
if show_vectors:
358357
vectors, colors = draw_field_vectors([n.point for n in field.locations(step)], list(field.vectors(step)), show_vectors, translate=0, cmap=cmap)
358+
# group_elements.append((Collection(vectors), {"name": f"DISP-{component}", "linecolors": colors, "linewidth": 3}))
359359
for v, c in zip(vectors, colors):
360-
group_elements.append((v, {"name": f"REACT-{component}", "linecolor": c, "linewidth": 3}))
360+
group_elements.append((v, {"name": f"DISP-{component}", "linecolor": c, "linewidth": 3}))
361361

362362
if show_contour:
363363
from compas_fea2.model.elements import BeamElement

src/compas_fea2/UI/viewer/viewer.py

+8
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
from compas_fea2.UI.viewer.scene import FEA2ModelObject
1010
from compas_fea2.UI.viewer.scene import FEA2DisplacementFieldResultsObject
11+
from compas_fea2.UI.viewer.scene import FEA2ReactionFieldResultsObject
1112
from compas_fea2.UI.viewer.scene import FEA2StepObject
1213

1314

@@ -161,6 +162,13 @@ def add_displacement_field(self, field, step, component=None, fast=False, show_p
161162
field, step=step, component=component, fast=fast, show_parts=show_parts, opacity=opacity, show_bcs=show_bcs, show_loads=show_loads, **kwargs
162163
)
163164

165+
def add_reaction_field(self, field, step, component=None, fast=False, show_parts=True, opacity=0.5, show_bcs=True, show_loads=True, **kwargs):
166+
register_scene_objects()
167+
register(field.__class__.__base__, FEA2ReactionFieldResultsObject, context="Viewer")
168+
self.reactions = self.scene.add(
169+
field, step=step, component=component, fast=fast, show_parts=show_parts, opacity=opacity, show_bcs=show_bcs, show_loads=show_loads, **kwargs
170+
)
171+
164172
def add_mode_shape(self, mode_shape, step, component=None, fast=False, show_parts=True, opacity=0.5, show_bcs=True, show_loads=True, **kwargs):
165173
register_scene_objects()
166174
register(mode_shape.__class__.__base__, FEA2DisplacementFieldResultsObject, context="Viewer")

src/compas_fea2/model/model.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1209,8 +1209,8 @@ def show(self, scale_model=1.0, show_bcs=1.0, **kwargs):
12091209
register(self.__class__, FEA2ModelObject, context="Viewer")
12101210

12111211
viewer = FEA2Viewer(center=self.center, scale_model=scale_model)
1212-
viewer.viewer.scene.add(self, model=self, opacity=0.5, show_bcs=show_bcs, kwargs=kwargs)
1213-
viewer.viewer.show()
1212+
viewer.scene.add(self, model=self, opacity=0.5, show_bcs=show_bcs, kwargs=kwargs)
1213+
viewer.show()
12141214

12151215
@problem_method
12161216
def show_displacements(self, problem, *args, **kwargs):

src/compas_fea2/problem/problem.py

+10-28
Original file line numberDiff line numberDiff line change
@@ -615,7 +615,7 @@ def show_deformed(self, step=None, opacity=1, show_bcs=1, scale_results=1, scale
615615
vector = displacement.vector.scaled(scale_results)
616616
displacement.node.xyz = sum_vectors([Vector(*displacement.location.xyz), vector])
617617
viewer.add_model(self.model, fast=True, opacity=opacity, show_bcs=show_bcs, show_loads=show_loads, **kwargs)
618-
viewer.viewer.show()
618+
viewer.show()
619619

620620
def show_displacements(self, step=None, fast=True, show_bcs=1, scale_model=1, show_loads=0.1, component=None, show_vectors=True, show_contours=True, **kwargs):
621621
"""Display the displacement field results for a given step.
@@ -639,14 +639,14 @@ def show_displacements(self, step=None, fast=True, show_bcs=1, scale_model=1, sh
639639
raise ValueError("No displacement field results available for this step")
640640

641641
viewer = FEA2Viewer(center=self.model.center, scale_model=scale_model)
642-
viewer.add_model(self.model, fast=fast, show_parts=False, opacity=0.5, show_bcs=show_bcs, show_loads=show_loads, **kwargs)
642+
viewer.add_model(self.model, fast=fast, show_parts=True, opacity=0.5, show_bcs=show_bcs, show_loads=show_loads, **kwargs)
643643
viewer.add_displacement_field(step.problem.displacement_field, fast=fast, step=step, component=component, show_vectors=show_vectors, show_contour=show_contours, **kwargs)
644644
if show_loads:
645-
self.add_step(step, show_loads=show_loads)
645+
viewer.add_step(step, show_loads=show_loads)
646646
viewer.show()
647647
viewer.scene.clear()
648648

649-
def show_reactions(self, step=None, show_bcs=1, scale_model=1, show_loads=0.1, component=None, show_vectors=1, show_contours=False, **kwargs):
649+
def show_reactions(self, step=None, fast=True, show_bcs=1, scale_model=1, show_loads=0.1, component=None, show_vectors=True, show_contours=True, **kwargs):
650650
"""Display the reaction field results for a given step.
651651
652652
Parameters
@@ -664,38 +664,20 @@ def show_reactions(self, step=None, show_bcs=1, scale_model=1, show_loads=0.1, c
664664
scale_results : _type_, optional
665665
_description_, by default 1
666666
"""
667-
from compas.scene import register
668-
from compas.scene import register_scene_objects
669-
670-
from compas_fea2.UI.viewer import FEA2ModelObject
671-
from compas_fea2.UI.viewer import FEA2ReactionFieldResultsObject
672-
from compas_fea2.UI.viewer import FEA2StepObject
673-
from compas_fea2.UI.viewer import FEA2Viewer
674667

675668
if not step:
676669
step = self.steps_order[-1]
677670

678671
if not step.problem.reaction_field:
679-
raise ValueError("No reaction field results available for this step")
672+
raise ValueError("No displacement field results available for this step")
680673

681674
viewer = FEA2Viewer(center=self.model.center, scale_model=scale_model)
682-
viewer.viewer.config.vectorsize = 0.2
683-
684-
register_scene_objects() # This has to be called before registering the model object
685-
686-
register(self.model.__class__, FEA2ModelObject, context="Viewer")
687-
viewer.viewer.scene.add(self.model, model=self.model, show_parts=True, opacity=0.5, show_bcs=show_bcs, show_loads=show_loads, **kwargs)
688-
689-
register(step.problem.reaction_field.__class__, FEA2ReactionFieldResultsObject, context="Viewer")
690-
viewer.viewer.scene.add(
691-
step.problem.reaction_field, field=step.problem.reaction_field, step=step, component=component, show_vectors=show_vectors, show_contour=show_contours, **kwargs
692-
)
693-
675+
viewer.add_model(self.model, fast=fast, show_parts=True, opacity=0.5, show_bcs=show_bcs, show_loads=show_loads, **kwargs)
676+
viewer.add_reaction_field(step.problem.reaction_field, fast=fast, step=step, component=component, show_vectors=show_vectors, show_contour=show_contours, **kwargs)
694677
if show_loads:
695-
register(step.__class__, FEA2StepObject, context="Viewer")
696-
viewer.viewer.scene.add(step, step=step, scale_factor=show_loads)
697-
698-
viewer.viewer.show()
678+
viewer.add_step(step, show_loads=show_loads)
679+
viewer.show()
680+
viewer.scene.clear()
699681

700682
def show_stress_contour(self, step=None, stresstype="vonmieses", high=None, low=None, cmap=None, side=None, scale_model=1.0, show_bcs=True, **kwargs):
701683
from compas.scene import register

0 commit comments

Comments
 (0)