Sketcher, constraint silence #89

Post here for help on using FreeCAD's graphical user interface (GUI).
Forum rules
and Helpful information
IMPORTANT: Please click here and read this first, before asking for help

Also, be nice to others! Read the FreeCAD code of conduct!
Post Reply
Cyber3DK
Posts: 42
Joined: Sun Mar 05, 2017 5:40 pm

Sketcher, constraint silence #89

Post by Cyber3DK »

Specific complaint: Sketcher is not reporting that an additional constraint causes the sketch to be over-determined.

The problem is repeatable; How-to-reproduce is given in the attachment Sketcher_constraint_silence_#89_pq9a.pdf.

Thanks for considering this issue.

(Apologies for not putting the whole text here. My knowledge and/or system does not allow that at this time.)

Regards
Attachments
Tutorial_snapshot_121818-Mar.FCStd
(2.89 KiB) Downloaded 31 times
Sketcher, Constraint Silence #89, After.png
Sketcher, Constraint Silence #89, After.png (27.98 KiB) Viewed 1496 times
Sketcher, Constraint Silence #89, Before.png
Sketcher, Constraint Silence #89, Before.png (30.23 KiB) Viewed 1496 times
Sketcher_constraint_silence_#89_ap9a.pdf
(96.19 KiB) Downloaded 36 times
GeneFC
Veteran
Posts: 5373
Joined: Sat Mar 19, 2016 3:36 pm
Location: Punta Gorda, FL

Re: Sketcher, constraint silence #89

Post by GeneFC »

The only way the sketcher can determine conflicts is by trying solve the sketch subject to all the constraints.

In this case the problem shows up in the "report view" as follows:

Sel : Clear selection
Sel : Add Selection "Tutorial_snapshot_121818_Mar.Sketch.Edge3(0.000000,0.000000,0.000000)"
Sketcher::setUpSketch()-T:0
Sketcher::Solve()-DogLeg- Failed!! Falling back...
Sketcher::Solve()-LevenbergMarquardt- Failed!! Falling back...
Sketcher::Solve()-BFGS- Failed!! Falling back...
Sketcher::Solve()-SQP(augmented system)- Failed!! Falling back...
Sketcher::Solve()-SQP(augmented system)-T:0
Sketcher::setUpSketch()-T:0
Sketcher::Solve()-DogLeg- Failed!! Falling back...
Sketcher::Solve()-LevenbergMarquardt- Failed!! Falling back...
Sketcher::Solve()-BFGS- Failed!! Falling back...
Sketcher::Solve()-SQP(augmented system)- Failed!! Falling back...
Sketcher::Solve()-SQP(augmented system)-T:0
Sel : Clear selection

The question of whether and/or how to notify the user can be discussed, but the failure to solve is clearly noted. I agree that in many cases there is a clear indication of conflicting constraints. It could be in this case that the solver did not really pinpoint the cause, only the failure.

Hint: it is a good idea to keep the "report view" open at all times. (In the main toolbar select View -> Panels -> Report view)

OS: Windows 7
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.6706 (Git)
Build type: Release
Branch: releases/FreeCAD-0-16
Hash: f86a4e411ff7848dea98d7242f43b7774bee8fa0
Python version: 2.7.8
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17

Gene
Cyber3DK
Posts: 42
Joined: Sun Mar 05, 2017 5:40 pm

Re: Sketcher, constraint silence #89

Post by Cyber3DK »

@Gene

Thanks.

Could you please "report this up the chain", to, say, the "FreeCAD Tracker" (https://www.freecadweb.org/tracker/my_view_page.php) ? I have neither the reputation, accounts, or knowledge that I'm sure you have. Thanks.

Regards.
Cyber3DK
Posts: 42
Joined: Sun Mar 05, 2017 5:40 pm

Re: Sketcher, constraint silence #89

Post by Cyber3DK »

GeneFC » Sun Mar 12, 2017 7:32 pm said

In this case the problem shows up in the "report view" ...
Interesting. When I turn on Report View and follow the "to reproduce" procedure, I get nothing in the Report View.

How do I get the message to appear in my system? (I'm still on Windows 7 / FreeCAD 0.16)

Thanks.
chrisb
Veteran
Posts: 53919
Joined: Tue Mar 17, 2015 9:14 am

Re: Sketcher, constraint silence #89

Post by chrisb »

Cyber3DK wrote: Could you please "report this up the chain", to, say, the "FreeCAD Tracker" (https://www.freecadweb.org/tracker/my_view_page.php) ? I have neither the reputation, accounts, or knowledge that I'm sure you have.
I am not sure if this should be reported as a bug. Besides the fact that you attached the wrong file (it shows the "conflicting constraints" message already on opening) and the fact that you expected something else it is not really an error.

Let me quote from the bug submission guidelines:
The definition of a bug is this: Something that is not working, but for which you are sure that it should be working (for example it worked in the past, or it is advertised on the FreeCAD documentation wiki). Otherwise, it might be simply that what you want is not implemented, or maybe you are doing something wrong.
The solver shows that the sketch is underconstrained - which in fact it is. And it shows in red that something went wrong which in fact it did. That is a hint for further investigation, the report view shows more.
Please keep in mind that the solver cannot really help you with the solving. You have to define the constraints, the solver checks them. It's main task is to find a solution, not to give sensible error messages - although that would be nice.

If FreeCAD was a professional system, where users have paid a lot of money, I would be completely on your side. But FreeCAD is developed by a rather small number of people who do it in their spare time, so let's not flood them with bug reports.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
User avatar
NormandC
Veteran
Posts: 18587
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: Sketcher, constraint silence #89

Post by NormandC »

chrisb wrote:If FreeCAD was a professional system, where users have paid a lot of money,
  • it wouldn't even include a solver messages box. If constraints were conflicting, it would be the end user's job to hunt them down without aid from the software apart from turning a bunch of constraint icons and geometry a different colour.
  • it would not list the total number of constraints and DOFs. It would be the user's job to figure out how many degrees of freedom are left.
What's the saying? You get what you pay for? Um, not sure about that! :D

P.S. I'm dead serious about the bullet points above. In the few commercial parametric CAD programs I've used/tested at my jobs, none had these exclusive FreeCAD features. And sometimes I miss them! I have to admit though that in the same commercial programs, the sketch elements colour changes locally along with the applied constraints which is a good hint. It's issue #2069 in the bug tracker.
GeneFC
Veteran
Posts: 5373
Joined: Sat Mar 19, 2016 3:36 pm
Location: Punta Gorda, FL

Re: Sketcher, constraint silence #89

Post by GeneFC »

Cyber3DK wrote: Could you please "report this up the chain"
I think chrisb is correct, this is not a bug.

The solver will identify the conflict when it is clear. For example, trying to place a single point (line end, circle origin, etc.) at two different locations will be readily identified.

However, in the case you created it is not automatically clear even to a human where the conflict arises. Perhaps the angle constraint is the problem, or perhaps the line length constraint is the problem. In that case the solver just says, "I cannot find a solution."

There are many cases in which multiple horizontal and vertical constraints peacefully coexist in a sketch, so there is really no good basis for the sketcher to determine where the failure to solve fault might lie.

By the way, it is not necessary to look in the report view simply for the notification. The main sketcher display says "unsolved" up at the top. The detail, if any, is found in the report view.

/minor rant on/

The sketcher may be the most widely used workbench in FreeCAD. There are always bugs in any software, and there are always missing features. However, it is not very likely that you or anyone else will immediately find so many new bugs in the very basic features that are used thousands of times per day.

/minor rant off/

Gene
Cyber3DK
Posts: 42
Joined: Sun Mar 05, 2017 5:40 pm

Re: Sketcher, constraint silence #89

Post by Cyber3DK »

NormandC wrote
It's issue #2069 in the bug tracker.
Thanks.
Post Reply