diff --git a/src/Mod/Fem/FemCommands.py b/src/Mod/Fem/FemCommands.py index 76e310a0c9e6..7c6f505d195f 100644 --- a/src/Mod/Fem/FemCommands.py +++ b/src/Mod/Fem/FemCommands.py @@ -58,6 +58,10 @@ def IsActive(self): active = FemGui.getActiveAnalysis() is not None and self.active_analysis_in_active_doc() and self.results_present() elif self.is_active == 'with_part_feature': active = FreeCADGui.ActiveDocument is not None and self.part_feature_selected() + elif self.is_active == 'with_femmesh': + active = FreeCADGui.ActiveDocument is not None and self.femmesh_selected() + elif self.is_active == 'with_femmesh_andor_res': + active = FreeCADGui.ActiveDocument is not None and self.with_femmesh_andor_res_selected() elif self.is_active == 'with_material': active = FemGui.getActiveAnalysis() is not None and self.active_analysis_in_active_doc() and self.material_selected() elif self.is_active == 'with_solver': @@ -81,6 +85,13 @@ def part_feature_selected(self): else: return False + def femmesh_selected(self): + sel = FreeCADGui.Selection.getSelection() + if len(sel) == 1 and sel[0].isDerivedFrom("Fem::FemMeshObject"): + return True + else: + return False + def material_selected(self): sel = FreeCADGui.Selection.getSelection() if len(sel) == 1 and sel[0].isDerivedFrom("App::MaterialObjectPython"): @@ -88,6 +99,26 @@ def material_selected(self): else: return False + def with_femmesh_andor_res_selected(self): + sel = FreeCADGui.Selection.getSelection() + if len(sel) == 1 and sel[0].isDerivedFrom("Fem::FemMeshObject"): + return True + elif len(sel) == 2: + if(sel[0].isDerivedFrom("Fem::FemMeshObject")): + if(sel[1].isDerivedFrom("Fem::FemResultObject")): + return True + else: + return False + elif(sel[1].isDerivedFrom("Fem::FemMeshObject")): + if(sel[0].isDerivedFrom("Fem::FemResultObject")): + return True + else: + return False + else: + return False + else: + return False + def active_analysis_in_active_doc(self): return FemGui.getActiveAnalysis().Document is FreeCAD.ActiveDocument diff --git a/src/Mod/Fem/_CommandFEMMesh2Mesh.py b/src/Mod/Fem/_CommandFEMMesh2Mesh.py index 8fa827c1dba5..92f9063cb893 100644 --- a/src/Mod/Fem/_CommandFEMMesh2Mesh.py +++ b/src/Mod/Fem/_CommandFEMMesh2Mesh.py @@ -41,7 +41,7 @@ def __init__(self): self.resources = {'Pixmap': 'fem-fem-mesh-from-shape', 'MenuText': QtCore.QT_TRANSLATE_NOOP("Fem_FemMesh2Mesh", "FEM mesh to mesh"), 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Fem_FemMesh2Mesh", "Convert the surface of a FEM mesh to a mesh")} - self.is_active = 'with_document' + self.is_active = 'with_femmesh_andor_res' def Activated(self): FreeCAD.ActiveDocument.openTransaction("Create FEM mesh")