diff --git a/_unittest/test_12_PostProcessing.py b/_unittest/test_12_PostProcessing.py index 6b1ba1982af..7cf48b0e909 100644 --- a/_unittest/test_12_PostProcessing.py +++ b/_unittest/test_12_PostProcessing.py @@ -30,14 +30,11 @@ class TestClass: def setup_class(self): # set a scratch directory and the environment / test data with Scratch(scratch_path) as self.local_scratch: - try: - example_project = os.path.join(local_path, "example_models", test_project_name + ".aedtz") - self.test_project = self.local_scratch.copyfile(example_project) - example_project2 = os.path.join(local_path, "example_models", test_field_name + ".aedtz") - self.test_project2 = self.local_scratch.copyfile(example_project2) - self.aedtapp = Hfss(self.test_project) - except: - pass + example_project = os.path.join(local_path, "example_models", test_project_name + ".aedtz") + self.test_project = self.local_scratch.copyfile(example_project) + example_project2 = os.path.join(local_path, "example_models", test_field_name + ".aedtz") + self.test_project2 = self.local_scratch.copyfile(example_project2) + self.aedtapp = Hfss(self.test_project) def teardown_class(self): self.aedtapp._desktop.ClearMessages("", "", 3) diff --git a/pyaedt/generic/plot.py b/pyaedt/generic/plot.py index 845017222db..c38f7dc355b 100644 --- a/pyaedt/generic/plot.py +++ b/pyaedt/generic/plot.py @@ -2,10 +2,12 @@ import os import time import warnings +from datetime import datetime from pyaedt import aedt_exception_handler from pyaedt.generic.constants import CSS4_COLORS, AEDT_UNITS from pyaedt.generic.general_methods import is_ironpython, convert_remote_object +import tempfile if not is_ironpython: try: @@ -964,7 +966,7 @@ def __call__(self, state): @aedt_exception_handler def plot(self, export_image_path=None): - """Plot the current available Data. + """Plot the current available Data. With `s` key a screenshot is saved in export_image_path or in tempdir. Parameters ---------- @@ -1042,12 +1044,29 @@ def plot(self, export_image_path=None): else: self.pv.isometric_view() self.pv.camera.zoom(self.zoom) + if export_image_path: + path_image = os.path.dirname(export_image_path) + root_name, format = os.path.splitext(os.path.basename(export_image_path)) + else: + path_image = tempfile.gettempdir() # pragma: no cover + format = ".png" # pragma: no cover + root_name = "Image" # pragma: no cover + + def s_callback(): # pragma: no cover + """save screenshots""" + exp = os.path.join( + path_image, "{}{}{}".format(root_name, datetime.now().strftime("%Y_%M_%d_%H-%M-%S"), format) + ) + self.pv.screenshot(exp, return_img=False) + + self.pv.add_key_event("s", s_callback) if export_image_path: self.pv.show(screenshot=export_image_path, full_screen=True) - elif self.is_notebook: - self.pv.show() + elif self.is_notebook: # pragma: no cover + self.pv.show() # pragma: no cover else: - self.pv.show(full_screen=True) + self.pv.show(full_screen=True) # pragma: no cover + self.image_file = export_image_path return True diff --git a/pyaedt/modeler/Object3d.py b/pyaedt/modeler/Object3d.py index a953eb8855a..96b868ff7d4 100644 --- a/pyaedt/modeler/Object3d.py +++ b/pyaedt/modeler/Object3d.py @@ -1256,6 +1256,7 @@ def material_name(self): if mat: self._material_name = mat.strip('"').lower() return self._material_name + return "" @material_name.setter def material_name(self, mat): diff --git a/pyaedt/modules/AdvancedPostProcessing.py b/pyaedt/modules/AdvancedPostProcessing.py index 7c0657c7a45..fe03f7ab52a 100644 --- a/pyaedt/modules/AdvancedPostProcessing.py +++ b/pyaedt/modules/AdvancedPostProcessing.py @@ -328,15 +328,14 @@ def plot_field_from_fieldplot( if not file_to_add: return False else: - if meshplot: - if self._app._aedt_version >= "2021.2": - models = self.export_model_obj(export_as_single_objects=True, air_objects=False) + if self._app._aedt_version >= "2021.2": + models = self.export_model_obj(export_as_single_objects=True, air_objects=False) model = ModelPlotter() model.off_screen = not show if file_to_add: - model.add_field_from_file(file_to_add, coordinate_units=self.modeler.model_units) + model.add_field_from_file(file_to_add, coordinate_units=self.modeler.model_units, show_edges=meshplot) if plot_label: model.fields[0].label = plot_label if models: