Viewing 'conflicting' constraints

Viewing 'conflicting' constraints

MTVDNA
Enthusiast Enthusiast
3,204 Views
5 Replies
Message 1 of 6

Viewing 'conflicting' constraints

MTVDNA
Enthusiast
Enthusiast

Sometimes when I make a sketch and I try to add some constraints or dimensions, Fusion tells me that adding another will over-constrain the sketch. 

 

For example:

fusion_fillet_overconstrained.PNG

 

I was trying to change the radius of the fillet I marked in red. I had not noticed that Fusion had added equal constraints to it and the fillet to the right of it, which I created at the same time. I had mistaken the icon as indicating that the vertical line above it was parallel to the leftmost vertical line. The clutter of icons can sometimes make it hard to see. 

 

Is there some way to view the other constraints or dimensions that affect a certain part of a sketch, so that I can remove the one I don't want and place my own?

0 Likes
Accepted solutions (1)
3,205 Views
5 Replies
Replies (5)
Message 2 of 6

FrankCao
Alumni
Alumni
Accepted solution

Hi MTVDNA,

 

Thanks for reporting this issue. Sometimes you see fusion reports "over constraint warning", that could be a correct warning, or it could be a bug. If you are sure the warning is wrong, you can directly report it in the forum here that you see a bug in Fusion Sketch solver that Fusion wrongly reports "Over constrained" status.

 

When you are not sure whether the ”over constraint warning" is correct or not, you can do following steps to view the constraints related to part of your sketch.

a. In the sketch palette, you can uncheck the option "Show Constraints", like following picture shows:

Uncheck show constraints.png

 

b. Then you will find no constraints are shown in the sketch now. Then you can select the sketch curves (by single select or window select) you are interested, and see all the constraints ONLY related to the curves you selected.  I believe this could help you analyze whether adding some constraints will over constrain the sketch.

 

c. You might still not be able to tell whether the sketch curves you selected have been fully constrained by only checking the related constraints. We have provided another option in the "Preferences-->Preview->Sketch -- Color geometry based on constraint status".  If you check this option, you will find any sketch curves or points will turn BLACK if they are evaluated as fully constrained by sketch solver. Here, one more note is: as long as the sketch line/arc 's direction is fixed, they will turn BLACK immediately. So "Fully constrained" status for curve only means its direction is fixed, the line and arc could still change length. 

 

We are still testing and fixing bugs of "Fully constraint check" for Fusion sketch solver. So you see it is still in the "Preview" option in the preferences settings, which means the status check could have bugs. But with more and more bugs been fixed in several releases, this functionality has improved a lot and has been more and more stable and accurate. I think we will someday make this option out of the preview state.

 

Hope the above suggestions can help you.

 

 

Thanks,

Frank

0 Likes
Message 3 of 6

MTVDNA
Enthusiast
Enthusiast

In the case I mentioned there was no bug, the fillet was indeed already fully constrained. Being able to hide all constraints except the relevant ones will definitely make it a lot easier. I had already activated the sketch coloring based on constraint status, and I must say I quite like it. You can really easily see if you forgot to add dimensions or constraints in parts of your sketch.

 

Thanks for the help!

0 Likes
Message 4 of 6

mark.dunn.and.sharon.king
Participant
Participant

Seeing ALL the contraints is not the solution it does not show which contraints are active in over-constraining the sketch. The app clearly knows which ones they are, otherwise it would not know it was over-constrained. Could we humans have some indication instead of 'looking for a needle in a haystack'?

Message 5 of 6

jeff_strater
Community Manager
Community Manager

"The app clearly knows which ones they are, otherwise it would not know it was over-constrained"

 

Unfortunately, that is not accurate.  Any constraint solver is an iterative, mathematical solve of a set of equations.  Those equations are set up by the geometry, constraints and dimensions in the sketch, but by the time that those equations have reached a point where the overconstrained state is recognized, there is no way to trace it back to exactly which constraints contributed to that state.  It can be a very long chain of dependencies, for instance.  There are certain simple cases where, if the problem is detected early enough (during initialization), we can sometimes pinpoint which dimensions conflict, and in those cases, Fusion does highlight the dimensions in red, but, in general, this information is not available to Fusion.  No one disagrees that it would be nice if it were.

 

Fusion tries to prevent creation of overconstraining dimensions and constraints, but there are still plenty of ways to create these situations.


Jeff Strater
Engineering Director
0 Likes
Message 6 of 6

Jakob.Barger
Explorer
Explorer
"by the time that those equations have reached a point where the overconstrained state is recognized, there is no way to trace it back to exactly which constraints contributed to that state. It can be a very long chain of dependencies, for instance."

Respectfully, Jeff, that doesn't make any sense to me. Even if it's a long chain of propagations, there are only so many constraints and they should be listable. It's not a linear solver, right?

If it uses constraint programming, in my experience it's very easy to identify an impossible domain restriction's ancestor constraints. When a propagator finds a domain restriction, it gets added to a DAG. Each restriction node has a list of backlinks to the most recent node for each variable that was implicated by the propagator that generated said restriction node. For each ancestor restriction of the bad restriction, list the constraint that generated it.

There's also a trick that lets you prune the resulting ancestor sub-DAG. It's an easily solvable problem but I guess it all depends on the technical debt.
0 Likes