solver: check recompute error before solving

This commit is contained in:
Zheng, Lei 2019-01-10 18:57:44 +08:00
parent 3b48ecbb0e
commit 33d74d5a2f

View File

@ -230,7 +230,9 @@ class Solver(object):
setPlacement(info0.Part,pla)
if recompute and touched:
assembly.recompute(True)
if not assembly.recompute(True):
raise RuntimeError(
'Failed to recompute {}'.format(objName(assembly)))
def isFixedPart(self,part):
@ -362,10 +364,12 @@ def _solve(objs=None,recursive=None,reportFailed=False,
try:
for assembly in assemblies:
if recompute:
assembly.recompute(True)
logger.debug('recompute {}',objName(assembly))
if not assembly.recompute(True):
raise RuntimeError(
'Failed to recompute {}'.format(objName(assembly)))
if not System.isTouched(assembly):
logger.debug('skip untouched assembly '
'{}'.format(objName(assembly)))
logger.debug('skip untouched assembly {}',objName(assembly))
continue
Solver(assembly,reportFailed,dragPart,recompute,rollback)
System.touch(assembly,False)