solver: check recompute error before solving
This commit is contained in:
parent
3b48ecbb0e
commit
33d74d5a2f
12
solver.py
12
solver.py
|
@ -230,7 +230,9 @@ class Solver(object):
|
||||||
setPlacement(info0.Part,pla)
|
setPlacement(info0.Part,pla)
|
||||||
|
|
||||||
if recompute and touched:
|
if recompute and touched:
|
||||||
assembly.recompute(True)
|
if not assembly.recompute(True):
|
||||||
|
raise RuntimeError(
|
||||||
|
'Failed to recompute {}'.format(objName(assembly)))
|
||||||
|
|
||||||
|
|
||||||
def isFixedPart(self,part):
|
def isFixedPart(self,part):
|
||||||
|
@ -362,10 +364,12 @@ def _solve(objs=None,recursive=None,reportFailed=False,
|
||||||
try:
|
try:
|
||||||
for assembly in assemblies:
|
for assembly in assemblies:
|
||||||
if recompute:
|
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):
|
if not System.isTouched(assembly):
|
||||||
logger.debug('skip untouched assembly '
|
logger.debug('skip untouched assembly {}',objName(assembly))
|
||||||
'{}'.format(objName(assembly)))
|
|
||||||
continue
|
continue
|
||||||
Solver(assembly,reportFailed,dragPart,recompute,rollback)
|
Solver(assembly,reportFailed,dragPart,recompute,rollback)
|
||||||
System.touch(assembly,False)
|
System.touch(assembly,False)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user