From 921377a696e24a77acb49b47fbf62828ddbe22ac Mon Sep 17 00:00:00 2001 From: azv Date: Fri, 31 Mar 2017 11:18:58 +0300 Subject: [PATCH] Issue #2074: Constraint on mirrored segment Check list of conflicting constraint even if solver reports about Success calculation. --- .../PlaneGCSSolver/PlaneGCSSolver_Solver.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/SketchSolver/PlaneGCSSolver/PlaneGCSSolver_Solver.cpp b/src/SketchSolver/PlaneGCSSolver/PlaneGCSSolver_Solver.cpp index 8d15b1680..47d783dce 100644 --- a/src/SketchSolver/PlaneGCSSolver/PlaneGCSSolver_Solver.cpp +++ b/src/SketchSolver/PlaneGCSSolver/PlaneGCSSolver_Solver.cpp @@ -87,13 +87,12 @@ PlaneGCSSolver_Solver::SolveStatus PlaneGCSSolver_Solver::solve() GCS::SolveStatus aResult = (GCS::SolveStatus)myEquationSystem->solve(myParameters); Events_LongOp::end(this); - GCS::VEC_I aRedundant; - myEquationSystem->getRedundant(aRedundant); - if (!aRedundant.empty()) { - collectConflicting(); - if (!myConflictingIDs.empty()) - aResult = GCS::Failed; - } + // collect information about conflicting constraints every time, + // sometimes solver reports about succeeded recalculation but has conflicting constraints + // (for example, apply horizontal constraint for a copied feature) + collectConflicting(); + if (!myConflictingIDs.empty()) + aResult = GCS::Failed; SolveStatus aStatus; if (aResult == GCS::Failed) -- 2.39.2