diff --git a/assembly.py b/assembly.py index f60a7f8..fd1f4ba 100644 --- a/assembly.py +++ b/assembly.py @@ -2788,7 +2788,8 @@ class Assembly(AsmGroup): @classmethod def canAutoSolve(cls): from . import solver - return gui.AsmCmdManager.AutoRecompute and \ + return gui.AsmCmdManager.WorkbenchActivated and \ + gui.AsmCmdManager.AutoRecompute and \ FreeCADGui.ActiveDocument and \ not FreeCADGui.ActiveDocument.Transacting and \ not FreeCAD.isRestoring() and \ diff --git a/gui.py b/gui.py index 2e171e8..9125ae2 100644 --- a/gui.py +++ b/gui.py @@ -138,6 +138,7 @@ class AsmCmdManager(ProxyType): Toolbars = OrderedDict() Menus = OrderedDict() _defaultMenuGroupName = '&Assembly3' + WorkbenchActivated = False @staticmethod def getToolbarParams(): diff --git a/init_gui.py b/init_gui.py index 67dc9ff..6ce2642 100644 --- a/init_gui.py +++ b/init_gui.py @@ -29,11 +29,13 @@ class Assembly3Workbench(FreeCADGui.Workbench): def Activated(self): from .gui import AsmCmdManager + AsmCmdManager.WorkbenchActivated = True for cmd in AsmCmdManager.getInfo().Types: cmd.workbenchActivated() def Deactivated(self): from .gui import AsmCmdManager + AsmCmdManager.WorkbenchActivated = False for cmd in AsmCmdManager.getInfo().Types: cmd.workbenchDeactivated()