assembly: enable auto solve on active transaction
This commit is contained in:
parent
5c35ad78f0
commit
fba1254627
16
assembly.py
16
assembly.py
|
@ -1448,22 +1448,24 @@ class Assembly(AsmGroup):
|
||||||
if not cls.canAutoSolve():
|
if not cls.canAutoSolve():
|
||||||
return
|
return
|
||||||
ret = FreeCAD.getActiveTransaction()
|
ret = FreeCAD.getActiveTransaction()
|
||||||
if ret:
|
# if ret:
|
||||||
logger.debug('skip auto solve because of active transaction '
|
# logger.debug('skip auto solve because of active transaction '
|
||||||
'{}'.format(ret))
|
# '{}'.format(ret))
|
||||||
return
|
# return
|
||||||
from . import solver
|
from . import solver
|
||||||
|
if not ret:
|
||||||
FreeCAD.setActiveTransaction('Assembly auto recompute')
|
FreeCAD.setActiveTransaction('Assembly auto recompute')
|
||||||
logger.catch('solver exception when auto recompute',
|
logger.catch('solver exception when auto recompute',
|
||||||
solver.solve, FreeCAD.ActiveDocument.Objects, True)
|
solver.solve, FreeCAD.ActiveDocument.Objects, True)
|
||||||
|
if not ret:
|
||||||
FreeCAD.closeActiveTransaction()
|
FreeCAD.closeActiveTransaction()
|
||||||
|
|
||||||
def onSolverChanged(self,setup=False):
|
def onSolverChanged(self):
|
||||||
for obj in self.getConstraintGroup().Group:
|
for obj in self.getConstraintGroup().Group:
|
||||||
# setup==True usually means we are restoring, so try to restore the
|
# setup==True usually means we are restoring, so try to restore the
|
||||||
# non-touched state if possible, since recompute() below will touch
|
# non-touched state if possible, since recompute() below will touch
|
||||||
# the constraint object
|
# the constraint object
|
||||||
touched = not setup or 'Touched' in obj.State
|
touched = 'Touched' in obj.State
|
||||||
obj.recompute()
|
obj.recompute()
|
||||||
if not touched:
|
if not touched:
|
||||||
obj.purgeTouched()
|
obj.purgeTouched()
|
||||||
|
@ -1532,8 +1534,6 @@ class Assembly(AsmGroup):
|
||||||
# correct rendering and picking behavior
|
# correct rendering and picking behavior
|
||||||
self.getPartGroup(True)
|
self.getPartGroup(True)
|
||||||
|
|
||||||
self.onSolverChanged(True)
|
|
||||||
|
|
||||||
def onChanged(self, obj, prop):
|
def onChanged(self, obj, prop):
|
||||||
if prop == 'BuildShape':
|
if prop == 'BuildShape':
|
||||||
if not obj.BuildShape or obj.BuildShape == BuildShapeCompound:
|
if not obj.BuildShape or obj.BuildShape == BuildShapeCompound:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user