View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0003976||GCS||Bug||public||2019-05-15 20:13||2021-02-06 06:31|
|Summary||0003976: Solver falsely detects redundant constraints in specific conditions|
|Description||In some specific conditions, solver falsely detects redundant constraints.|
It happens when 2 lines/curves are tangent by design but not by constraint.
|Steps To Reproduce||With minimal attached file :|
|Additional Information||Forum 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
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)
|Tags||No tags attached.|
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.
@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.
|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|