diff --git a/constraint.py b/constraint.py index 82860d3..4fb5811 100644 --- a/constraint.py +++ b/constraint.py @@ -629,7 +629,8 @@ class Constraint(ProxyType): # part that are fixed continue - handled.add(obj) + if rollback is not False: + handled.add(obj) for info0,info in zip(firstInfo,infos): if info.Part in ret: @@ -645,7 +646,8 @@ class Constraint(ProxyType): utils.getElementPlacement(info0.Shape)) pla = pla0.multiply( utils.getElementPlacement(info.Shape).inverse()) - if not utils.isSamePlacement(pla,info.Placement): + if rollback is not False and \ + not utils.isSamePlacement(pla,info.Placement): solver.touched = True solver.system.log('attaching "{}" -> "{}"', info.PartName, info0.PartName) diff --git a/mover.py b/mover.py index 08d4fdd..96b6ffd 100644 --- a/mover.py +++ b/mover.py @@ -215,7 +215,7 @@ def checkFixedPart(info): assembly = resolveAssembly(info.Parent) cstrs = assembly.getConstraints() partGroup = assembly.getPartGroup() - if info.Part in Constraint.getFixedParts(None,cstrs,partGroup): + if info.Part in Constraint.getFixedParts(None,cstrs,partGroup,False): raise RuntimeError('cannot move fixed part') def findAssembly(obj,subname):