From 42f96235aa57d59f56796913f6cac2b53bf862c1 Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Thu, 25 Apr 2019 19:46:58 +0200 Subject: [PATCH] FEM: material task panel, code formating and prints --- .../femguiobjects/_ViewProviderFemMaterial.py | 53 +++++++++++-------- 1 file changed, 32 insertions(+), 21 deletions(-) diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterial.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterial.py index dbbfc056c2..eefd1f6049 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterial.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterial.py @@ -104,11 +104,12 @@ class _TaskPanelFemMaterial: def __init__(self, obj): + FreeCAD.Console.PrintMessage('\n') # empty line on start task panel self.obj = obj self.material = self.obj.Material # FreeCAD material dictionary of current material self.card_path = '' - self.materials = {} # { card_path : FreeCAD material dict } - self.icons = {} # { card_path : icon_path } + self.materials = {} # { card_path : FreeCAD material dict, ... } + self.icons = {} # { card_path : icon_path, ... } # mat_card is the FCMat file # card_name is the file name of the mat_card # card_path is the whole file path of the mat_card @@ -204,12 +205,12 @@ class _TaskPanelFemMaterial: # search for exact this mat_card in all known cards, choose the current material self.card_path = self.get_material_card(self.material) - print('card_path: ' + self.card_path) + FreeCAD.Console.PrintLog('card_path: {}'.format(self.card_path)) if not self.card_path: # we have not found our material in self.materials dict :-( # we're going to add a user-defined temporary material: a document material FreeCAD.Console.PrintMessage( - "Previously used material card cannot be found in material directories. " + "Previously used material card can not be found in material directories. " "Add document material.\n" ) self.card_path = '_document_material' @@ -225,7 +226,7 @@ class _TaskPanelFemMaterial: self.choose_material(index) else: # we found our exact material in self.materials dict :-) - FreeCAD.Console.PrintMessage( + FreeCAD.Console.PrintLog( "Previously used material card was found in material directories. " "We will use this material.\n" ) @@ -278,17 +279,20 @@ class _TaskPanelFemMaterial: if Units.Quantity(self.material['ThermalConductivity']) == 0.0: self.material.pop('ThermalConductivity', None) FreeCAD.Console.PrintMessage( - 'Zero ThermalConductivity value. It is not saved in the card data.\n' + 'Zero ThermalConductivity value. ' + 'This parameter is not saved in the material data.\n' ) if Units.Quantity(self.material['ThermalExpansionCoefficient']) == 0.0: self.material.pop('ThermalExpansionCoefficient', None) FreeCAD.Console.PrintMessage( - 'Zero ThermalExpansionCoefficient value. It is not saved in the card data.\n' + 'Zero ThermalExpansionCoefficient value. ' + 'This parameter is not saved in the material data.\n' ) if Units.Quantity(self.material['SpecificHeat']) == 0.0: self.material.pop('SpecificHeat', None) FreeCAD.Console.PrintMessage( - 'Zero SpecificHeat value. It is not saved in the card data.\n' + 'Zero SpecificHeat value. ' + 'This parameter is not saved in the material data.\n' ) # choose material **************************************************************************** @@ -306,7 +310,10 @@ class _TaskPanelFemMaterial: if index < 0: return self.card_path = self.parameterWidget.cb_materials.itemData(index) # returns whole path - # print('choose_material: ' + self.card_path) + FreeCAD.Console.PrintMessage( + 'choose_material in FEM material task panel:\n' + ' {}\n'.format(self.card_path) + ) self.material = self.materials[self.card_path] self.check_material_keys() self.set_mat_params_in_input_fields(self.material) @@ -340,14 +347,13 @@ class _TaskPanelFemMaterial: # how to edit a material ********************************************************************* def edit_material(self): # opens the material editor to choose a material or edit material params - # self.print_material_params() import MaterialEditor new_material_params = self.material.copy() - new_material_params = MaterialEditor.editMaterial(new_material_params) - # if the material editor was canceled a empty params dict will be returned + new_material_params = MaterialEditor.editMaterial(new_material_params) + # material editor returns the mat_dict only, not a card_path + # if the material editor was canceled a empty dict will be returned # do not change the self.material - # self.print_material_params(new_material_params) - # check if dict is not empty (do not use 'is True' + # check if dict is not empty (do not use 'is True') if new_material_params: self.material = new_material_params self.card_path = self.get_material_card(self.material) @@ -355,27 +361,31 @@ class _TaskPanelFemMaterial: self.check_material_keys() self.set_mat_params_in_input_fields(self.material) if not self.card_path: + FreeCAD.Console.PrintMessage( + "Material card chosen by the material editor " + "was not found in material directories.\n" + "Either the card does not exist or some material " + "parameter where changed in material editor.\n" + ) if self.has_transient_mat is False: self.add_transient_material() else: self.set_transient_material() else: # we found our exact material in self.materials dict :-) - FreeCAD.Console.PrintMessage( - "Material card was found in material directories. " - "We will use this material.\n" + FreeCAD.Console.PrintLog( + "Material card chosen by the material editor " + "was found in material directories. " + "The found material card will be used.\n" ) index = self.parameterWidget.cb_materials.findData(self.card_path) # print(index) # set the current material in the cb widget self.choose_material(index) else: - FreeCAD.Console.PrintMessage( + FreeCAD.Console.PrintLog( 'No changes where made by the material editor.\n' ) - # self.print_material_params() - # material editor returns the mat_dict only not a card_path - # if a standard FreeCAD mat_card was used def toggleInputFieldsReadOnly(self): if self.parameterWidget.chbu_allow_edit.isChecked(): @@ -541,6 +551,7 @@ class _TaskPanelFemMaterial: .format(self.material['Name']) ) self.material['SpecificHeat'] = '0 J/kg/K' + FreeCAD.Console.PrintMessage('\n') # mechanical input fields def ym_changed(self):