New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Solver doesn't report redundancy correctly #6174
Labels
Comments
FreeCAD-Bug-Importer
added
WB Sketcher
Related to the Sketcher Workbench
Bug
This issue or PR is related to a bug
labels
Feb 7, 2022
@AjinkyaDahale is this ticket still relevant ? |
It might be. In the example given, we could easily delete the redundant constraint without gaining DoF's. If this is still expected there should be a documentation of what "partially redundant" means. |
The issue persists. If a constraint is fully redundant should not be presented as partially redundant.
|
abdullahtahiriyo
added a commit
to abdullahtahiriyo/FreeCAD_sf_master
that referenced
this issue
May 2, 2023
========================================== fixes FreeCAD#6174 Problem ======= The popularity contest heuristic was designed to assume that removing one solver constraint from a redundant group would potentially satisfy it. This means that for sketcher constraints comprising several solver constraints, the sketcher constraint would never be notified as redundant, but always partially redundant (where the case may be that it is redundant or that it is partially redundant). This happens because after removing one solver constraint, it may happen: (a) that no other solver constraint corresponding to the sketcher constraint remains in the redundant group (so it is indeed partially redundant) (b) that at least one other solver constraint corresponding to the sketcher constraint remains in the redundant group (so if all solver constraints remain in the redundant group, the sketcher constraint is actually redundant). This happens because solver constraints of a single sketcher constraint are orthogonal and consequently, a conflict (or redundancy) emanating from removing one of them cannot actually satisfy the group, as it has no effect on the other. Solution ======== When popularity constraint decides on one solver constraint, remove any other solver constraint of the same tag (i.e. same sketcher constraint) that is present in the conflict group (case b). This does not affect case a, because the solver constraint that is not redundant is not present in the conflict (redundancy) group.
abdullahtahiriyo
added a commit
that referenced
this issue
May 3, 2023
========================================== fixes #6174 Problem ======= The popularity contest heuristic was designed to assume that removing one solver constraint from a redundant group would potentially satisfy it. This means that for sketcher constraints comprising several solver constraints, the sketcher constraint would never be notified as redundant, but always partially redundant (where the case may be that it is redundant or that it is partially redundant). This happens because after removing one solver constraint, it may happen: (a) that no other solver constraint corresponding to the sketcher constraint remains in the redundant group (so it is indeed partially redundant) (b) that at least one other solver constraint corresponding to the sketcher constraint remains in the redundant group (so if all solver constraints remain in the redundant group, the sketcher constraint is actually redundant). This happens because solver constraints of a single sketcher constraint are orthogonal and consequently, a conflict (or redundancy) emanating from removing one of them cannot actually satisfy the group, as it has no effect on the other. Solution ======== When popularity constraint decides on one solver constraint, remove any other solver constraint of the same tag (i.e. same sketcher constraint) that is present in the conflict group (case b). This does not affect case a, because the solver constraint that is not redundant is not present in the conflict (redundancy) group.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Issue imported from https://tracker.freecad.org/view.php?id=4591
Original report text
When multiple redundancies exist, the solver reports only partially redundant constraints and not fully redundant ones.
Forum Discussion
FreeCAD Info
Other bug information
The text was updated successfully, but these errors were encountered: