View Issue Details

IDProjectCategoryView StatusLast Update
0003976GCSBugpublic2021-02-06 06:31
ReporteropenBrain Assigned To 
Status confirmedResolutionopen 
Product Version0.18 
Target Version0.20 
Summary0003976: Solver falsely detects redundant constraints in specific conditions
DescriptionIn some specific conditions, solver falsely detects redundant constraints.
It happens when 2 lines/curves are tangent by design but not by constraint.
Steps To ReproduceWith minimal attached file :
  • Remove 2.5 mm constraint and try to add a radius constraint to the arc => The solver falsely detects a redundant constraint
  • Reset sketch to initial state, change 4 mm constraint to 3 mm then repeat same as previous step => The solver correctly find a fully constrained sketch
Additional InformationForum thread
Other example file that produces the same issue by chrisb
OS: Ubuntu 18.04.2 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.1.
Build type: Release
Python version: 2.7.15rc1
Qt version: 5.9.5
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: French/France (fr_FR)
TagsNo tags attached.
FreeCAD Information



2019-05-15 20:13



2020-03-29 20:05

developer   ~0014313

This is the same kind of problem as with coincident+tangent combo. You have enforced top line tangent to arc by means of other constraints. The point connecting the circle and the line must be computed by finding an intersection between the two, which is an ill-posed problem for the solver when they are tangent.

The false detection of redundancy comes from vanishing of jacobi matrix row when the sketch is precisely solved. This is also exactly what a redundancy looks like. If the solution is slightly inaccurate (e.g. if you move the point away a bit before applying radius constraint), there won't be a false redundancy message.

I'm afraid this is unfixable. Having at least some warning (i.e. a false redundancy warning) may be better than nothing, actually.


2020-03-29 21:53

developer   ~0014314

@DeepSOIC : I'm not sure this is exactly same case as coincident+tangent. In the reproducing procedure, a DOF is released by removing the "2.5 mm" length. This is super weird as if you follow the procedure and try to validate an arc radius (any value), it will refuse it with "sketch contains conflicting constraints".
Just change the 2.5 mm length to any other before removing it, and then any value of arc radius is correctly accepted (leading to fully constrained sketch). Even a 2.5 mm radius is correct.


2022-03-03 13:55

administrator   ~0016765

This ticket has been migrated to GitHub as issue 5931.

Issue History

Date Modified Username Field Change
2019-05-15 20:13 openBrain New Issue
2019-05-15 20:13 openBrain File Added: solver_redundant_bug.FCStd
2019-06-17 06:48 Kunda1 Status new => confirmed
2019-06-17 06:48 Kunda1 Target Version => 0.19
2020-03-29 20:05 DeepSOIC Note Added: 0014313
2020-03-29 21:53 openBrain Note Added: 0014314
2020-11-10 12:56 abdullah Target Version 0.19 => 0.20
2021-02-06 06:31 abdullah Target Version => 0.20