From 9e380a5bf69cf336db41dba07a8e1a4fbfcf0d59 Mon Sep 17 00:00:00 2001 From: Uwe Date: Wed, 22 Feb 2023 05:22:06 +0100 Subject: [PATCH] [FEM] fix material initialization - on creating a new material object, don't pollute the console wit wrong error messages (if no material is yet selected, of course nothing can be found) - fix that for anew fluid materials the material editor was started with solid materials --- .../Fem/femtaskpanels/task_material_common.py | 69 ++++++++++--------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/src/Mod/Fem/femtaskpanels/task_material_common.py b/src/Mod/Fem/femtaskpanels/task_material_common.py index ffeb5912b3..dde7cd7a6d 100644 --- a/src/Mod/Fem/femtaskpanels/task_material_common.py +++ b/src/Mod/Fem/femtaskpanels/task_material_common.py @@ -316,7 +316,8 @@ class _TaskPanel: FreeCAD.Console.PrintLog( "Card path not in cards, material dict will be used to open Material Editor.\n" ) - new_material_params = MaterialEditor.editMaterial(material=self.material) + new_material_params = MaterialEditor.editMaterial( + material=self.material, category=self.obj.Category) else: new_material_params = MaterialEditor.editMaterial(card_path=self.card_path, category=self.obj.Category) @@ -389,7 +390,6 @@ class _TaskPanel: def check_material_keys(self): # FreeCAD units definition is at file end of src/Base/Unit.cpp if not self.material: - FreeCAD.Console.PrintMessage("For some reason all material data is empty!\n") self.material["Name"] = "NoName" if "Density" in self.material: if "Density" not in str(Units.Unit(self.material["Density"])): @@ -400,10 +400,10 @@ class _TaskPanel: ) self.material["Density"] = "0 kg/m^3" else: - FreeCAD.Console.PrintMessage( - "Density not found in {}\n" - .format(self.material["Name"]) - ) + if self.material["Name"] != "NoName": + FreeCAD.Console.PrintMessage( + "Density not found in {}\n".format(self.material["Name"]) + ) self.material["Density"] = "0 kg/m^3" if self.obj.Category == "Solid": # mechanical properties @@ -417,10 +417,10 @@ class _TaskPanel: ) self.material["YoungsModulus"] = "0 MPa" else: - FreeCAD.Console.PrintMessage( - "YoungsModulus not found in {}\n" - .format(self.material["Name"]) - ) + if self.material["Name"] != "NoName": + FreeCAD.Console.PrintMessage( + "YoungsModulus not found in {}\n".format(self.material["Name"]) + ) self.material["YoungsModulus"] = "0 MPa" if "PoissonRatio" in self.material: # PoissonRatio does not have a unit, but it is checked if there is no value at all @@ -435,10 +435,10 @@ class _TaskPanel: ) self.material["PoissonRatio"] = "0" else: - FreeCAD.Console.PrintMessage( - "PoissonRatio not found in {}\n" - .format(self.material["Name"]) - ) + if self.material["Name"] != "NoName": + FreeCAD.Console.PrintMessage( + "PoissonRatio not found in {}\n".format(self.material["Name"]) + ) self.material["PoissonRatio"] = "0" if self.obj.Category == "Fluid": # Fluidic properties @@ -452,10 +452,10 @@ class _TaskPanel: ) self.material["KinematicViscosity"] = "0 m^2/s" else: - FreeCAD.Console.PrintMessage( - "KinematicViscosity not found in {}\n" - .format(self.material["Name"]) - ) + if self.material["Name"] != "NoName": + FreeCAD.Console.PrintMessage( + "KinematicViscosity not found in {}\n".format(self.material["Name"]) + ) self.material["KinematicViscosity"] = "0 m^2/s" if "ThermalExpansionCoefficient" in self.material: vol_ther_ex_co = self.material["ThermalExpansionCoefficient"] @@ -467,10 +467,11 @@ class _TaskPanel: ) self.material["ThermalExpansionCoefficient"] = "0 1/K" else: - FreeCAD.Console.PrintMessage( - "ThermalExpansionCoefficient not found in {}\n" - .format(self.material["Name"]) - ) + if self.material["Name"] != "NoName": + FreeCAD.Console.PrintMessage( + "ThermalExpansionCoefficient not found in {}\n" + .format(self.material["Name"]) + ) self.material["ThermalExpansionCoefficient"] = "0 1/K" if "VolumetricThermalExpansionCoefficient" in self.material: # unit type VolumetricThermalExpansionCoefficient is ThermalExpansionCoefficient @@ -513,10 +514,10 @@ class _TaskPanel: ) self.material["ThermalConductivity"] = "0 W/m/K" else: - FreeCAD.Console.PrintMessage( - "ThermalConductivity not found in {}\n" - .format(self.material["Name"]) - ) + if self.material["Name"] != "NoName": + FreeCAD.Console.PrintMessage( + "ThermalConductivity not found in {}\n".format(self.material["Name"]) + ) self.material["ThermalConductivity"] = "0 W/m/K" if "ThermalExpansionCoefficient" in self.material: the_ex_co = self.material["ThermalExpansionCoefficient"] @@ -528,10 +529,10 @@ class _TaskPanel: ) self.material["ThermalExpansionCoefficient"] = "0 um/m/K" else: - FreeCAD.Console.PrintMessage( - "ThermalExpansionCoefficient not found in {}\n" - .format(self.material["Name"]) - ) + if self.material["Name"] != "NoName": + FreeCAD.Console.PrintMessage( + "ThermalExpansionCoefficient not found in {}\n".format(self.material["Name"]) + ) self.material["ThermalExpansionCoefficient"] = "0 um/m/K" if "SpecificHeat" in self.material: if "SpecificHeat" not in str(Units.Unit(self.material["SpecificHeat"])): @@ -542,10 +543,10 @@ class _TaskPanel: ) self.material["SpecificHeat"] = "0 J/kg/K" else: - FreeCAD.Console.PrintMessage( - "SpecificHeat not found in {}\n" - .format(self.material["Name"]) - ) + if self.material["Name"] != "NoName": + FreeCAD.Console.PrintMessage( + "SpecificHeat not found in {}\n".format(self.material["Name"]) + ) self.material["SpecificHeat"] = "0 J/kg/K" FreeCAD.Console.PrintMessage("\n")