FEM: result task panel, fix if restore result is True but some results are missing
This commit is contained in:
@@ -308,8 +308,12 @@ class _TaskPanelFemResultShow:
|
||||
self.restore_initial_result_dialog()
|
||||
|
||||
def restore_initial_result_dialog(self):
|
||||
FreeCAD.FEM_dialog = {"results_type": "None", "show_disp": False,
|
||||
"disp_factor": 0, "disp_factor_max": 100}
|
||||
FreeCAD.FEM_dialog = {
|
||||
"results_type": "None",
|
||||
"show_disp": False,
|
||||
"disp_factor": 0,
|
||||
"disp_factor_max": 100
|
||||
}
|
||||
self.reset_mesh_deformation()
|
||||
self.reset_mesh_color()
|
||||
|
||||
@@ -324,50 +328,69 @@ class _TaskPanelFemResultShow:
|
||||
self.set_result_stats("mm", 0.0, 0.0, 0.0)
|
||||
self.reset_mesh_color()
|
||||
|
||||
# if an analysis has different result types and one has
|
||||
# stress and the other not the restore result dialog
|
||||
# could trigger stress selected for a result object
|
||||
# which has not stress
|
||||
# see https://forum.freecadweb.org/viewtopic.php?f=18&t=39162
|
||||
# check if the results len is not 0 on any selected method
|
||||
|
||||
def abs_displacement_selected(self, state):
|
||||
self.result_selected("Uabs", self.result_obj.DisplacementLengths, "mm")
|
||||
if len(self.result_obj.DisplacementLengths) > 0:
|
||||
self.result_selected("Uabs", self.result_obj.DisplacementLengths, "mm")
|
||||
|
||||
def x_displacement_selected(self, state):
|
||||
res_disp_u1 = self.get_scalar_disp_list(
|
||||
self.result_obj.DisplacementVectors, 0
|
||||
)
|
||||
self.result_selected("U1", res_disp_u1, "mm")
|
||||
if len(self.result_obj.DisplacementVectors) > 0:
|
||||
res_disp_u1 = self.get_scalar_disp_list(
|
||||
self.result_obj.DisplacementVectors, 0
|
||||
)
|
||||
self.result_selected("U1", res_disp_u1, "mm")
|
||||
|
||||
def y_displacement_selected(self, state):
|
||||
res_disp_u2 = self.get_scalar_disp_list(
|
||||
self.result_obj.DisplacementVectors, 1
|
||||
)
|
||||
self.result_selected("U2", res_disp_u2, "mm")
|
||||
if len(self.result_obj.DisplacementVectors) > 0:
|
||||
res_disp_u2 = self.get_scalar_disp_list(
|
||||
self.result_obj.DisplacementVectors, 1
|
||||
)
|
||||
self.result_selected("U2", res_disp_u2, "mm")
|
||||
|
||||
def z_displacement_selected(self, state):
|
||||
res_disp_u3 = self.get_scalar_disp_list(
|
||||
self.result_obj.DisplacementVectors, 2
|
||||
)
|
||||
self.result_selected("U3", res_disp_u3, "mm")
|
||||
if len(self.result_obj.DisplacementVectors) > 0:
|
||||
res_disp_u3 = self.get_scalar_disp_list(
|
||||
self.result_obj.DisplacementVectors, 2
|
||||
)
|
||||
self.result_selected("U3", res_disp_u3, "mm")
|
||||
|
||||
def vm_stress_selected(self, state):
|
||||
self.result_selected("Sabs", self.result_obj.StressValues, "MPa")
|
||||
if len(self.result_obj.StressValues) > 0:
|
||||
self.result_selected("Sabs", self.result_obj.StressValues, "MPa")
|
||||
|
||||
def max_shear_selected(self, state):
|
||||
self.result_selected("MaxShear", self.result_obj.MaxShear, "MPa")
|
||||
if len(self.result_obj.MaxShear) > 0:
|
||||
self.result_selected("MaxShear", self.result_obj.MaxShear, "MPa")
|
||||
|
||||
def max_prin_selected(self, state):
|
||||
self.result_selected("MaxPrin", self.result_obj.PrincipalMax, "MPa")
|
||||
if len(self.result_obj.PrincipalMax) > 0:
|
||||
self.result_selected("MaxPrin", self.result_obj.PrincipalMax, "MPa")
|
||||
|
||||
def temperature_selected(self, state):
|
||||
self.result_selected("Temp", self.result_obj.Temperature, "K")
|
||||
if len(self.result_obj.Temperature) > 0:
|
||||
self.result_selected("Temp", self.result_obj.Temperature, "K")
|
||||
|
||||
def massflowrate_selected(self, state):
|
||||
self.result_selected("MFlow", self.result_obj.MassFlowRate, "kg/s")
|
||||
if len(self.result_obj.MassFlowRate) > 0:
|
||||
self.result_selected("MFlow", self.result_obj.MassFlowRate, "kg/s")
|
||||
|
||||
def networkpressure_selected(self, state):
|
||||
self.result_selected("NPress", self.result_obj.NetworkPressure, "MPa")
|
||||
if len(self.result_obj.NetworkPressure) > 0:
|
||||
self.result_selected("NPress", self.result_obj.NetworkPressure, "MPa")
|
||||
|
||||
def min_prin_selected(self, state):
|
||||
self.result_selected("MinPrin", self.result_obj.PrincipalMin, "MPa")
|
||||
if len(self.result_obj.PrincipalMin) > 0:
|
||||
self.result_selected("MinPrin", self.result_obj.PrincipalMin, "MPa")
|
||||
|
||||
def peeq_selected(self, state):
|
||||
self.result_selected("Peeq", self.result_obj.Peeq, "")
|
||||
if len(self.result_obj.Peeq) > 0:
|
||||
self.result_selected("Peeq", self.result_obj.Peeq, "")
|
||||
|
||||
def user_defined_text(self, equation):
|
||||
FreeCAD.FEM_dialog["results_type"] = "user"
|
||||
|
||||
Reference in New Issue
Block a user