View Issue Details

IDProjectCategoryView StatusLast Update
0000754GCSGeneralpublic2021-02-06 06:31
Reporterjmaustpc Assigned Toabdullah  
Status assignedResolutionopen 
Platform32 bitOSKubuntuOS Version12.04
Target Version0.20 
Summary0000754: Sketcher doesn't report that a fully constrained sketch may have multiple (finite) solutions
DescriptionThis file is two lines on a circle. The way it is constrained, you can drag the "triangle" in circles around the circle, which partly works.

A vertical or horizontal constraint set on the apex of the triangle will cause it to think it is fully constrained, when it should have two possible locations.

The "triangle" also can be dragged with the mouse when the apex is not constrained, but after it has gone most of the way around the circle, the triangle suddenly flips to the other side of the circle.

Steps To Reproduce1) if you drag the "triangle" around the circle it goes most of the way around and then suddenly flips to the other side.... then if you keep the mouse pointer going around the circle, the triangle suddenly flips back again.
2) If you select the apex of the "triangle" and then set either one horizontal distance or one vertical distance constraint it says the sketch is fully constrained, which it is not. If you look at the screen shots attached you will see the two valid possible out comes for a vertical distance constraint. The error is the same type of thing if you set horizontal distance constraint
3) if you set lock constraint on the apex it complains of being over constrained ....which might or might not be the case.
4) this point happened the first two times I tried to set vertical distance constraint but after closing and reopening the file, I have not yet managed to get it to repeat. I will test further on this point. When the apex was one the right hand position of the two possible outcomes for vertical constraint on the apex, it inserted the correct vertical value but flipped the triangle over to the lower left hand side (the second possible outcome for that vertical constraint value)

Additional InformationVersion: 0.13.1157 (Git)
Branch: sketcher
Hash: cad41483eb5bd175f9755eb4e21b04043207e3e3

I am wondering if this is a problem with how "length along line constraint" works? I might well be talking complete crap, but I was wondering if the horizontal and vertical distant constraint is working of the x and y value of the length along the line constraint rather than truly working on its length. If so that could explain what is going on.
Tags#pending, constraints, Solver
FreeCAD Information


related to 0001460 closedabdullah GCS Changing size sometimes cause overconstrained model 
related to 0001260 closedKunda1 Sketcher Solver can't handle changing of dimension constraints in depending sketches 
related to 0001734 closedabdullah Sketcher Constraints evaluated incorrectly while dragging a point with the mouse 


2012-06-16 06:38


circle_tangent_sketch_fully_constrained_error.FCStd (Attachment missing)

2012-06-16 06:39


circleandtwotangentlines_notreallyfullyconstrained_error_whenverticalconstraintisadded2.jpg (Attachment missing)

2012-06-16 06:39


circleandtwotangentlines_notreallyfullyconstrained_error_whenverticalconstraintisadded.jpg (Attachment missing)


2012-06-16 06:59

manager   ~0002209

I managed to get the error 4), or something similar to be repeatable. I not sure if this is more of a problem with the undo system, hence maybe should be on a different ticket, for now it is just a note on the existing ticket in my last post above.

1) move the apex of the triangle to point somewhere towards the lower right quadrant
2)set a vertical distance constraint on the apex
3) click "undo" on the tool bar to remove the last added vertical distance constraint
4) move the apex of the triangle to point somewhere towards the lower left quadrant
5) set a vertical distance constraint on the apex

rather than setting the then current correct default value for vertical distance constraint, ....FreeCAD will push the apex back to the position it had been in prior to the "undo", and set the what should have been a new value default vertical constraint value back to what it had previously been prior to the undo.


2012-06-16 07:00

manager   ~0002210

This is a link to the topic on the forum


2012-06-17 09:42

developer   ~0002213

this is a difficult one. Currently there is no mechanism in the solver for handling multiple solutions and I don't believe that we will have such a possibility soon. However, it is nice to have this test case as a reference when we decide to implement the handling of multiple solutions. Until then, users have to be a bit more clever in order to avoid ambiguous dimensioning.


2012-06-18 00:26

manager   ~0002215

I have added another example to the same topic in forum

In this example I don't think its the same, I mean its not an multiple solution, I don't think.

It is an example where an extra superfluous "=" constraint can be added without causing an over constrained error.


2012-06-18 00:34

manager   ~0002216

To be clear, in case it is important, the three files posted to the forum, the first I noticed the superfluous "=" constraint and thought "that's not right", used "save as" to get the second file then deleted the "=" and noticed that it was still fully constrained and I got no error messages. So I "saved as" again to get the third file and then noticed that I could put the "=" back in there even though the file had been in a fully constrained state before I clicked on "=" and it still didn't give me an error message.


2012-06-18 00:44

manager   ~0002217

Here is another example of where there is a multiple solution with the tangent constraint in these two examples. The tangent can be in either direction, I have included some screen shots two illustrate this particular example. Of course in this file there are more possibilities when one considers the other tangent.

I've posted the files to the forum topic, at the above url.


2012-06-18 01:02

manager   ~0002218

This is the version data for the last three posts today.

version data
Kubuntu 12.04 32bit
Platform: Ubuntu 12.04 LTS (32-bit)
Version: 0.13.1162 (Git)
Branch: master
Hash: e05fcc7daf7d806c9766cfe75ca2b4880c3dccf0
Python version: 2.7.3
Qt version: 4.8.1
Coin version: 3.1.3
SoQt version: 1.5.0
OCC version: 6.5.1


2017-12-08 15:52

manager   ~0010545


I am not able to reproduce this with the current master. I am not sure if I am missing something.

May some power user check it up with a current version?


2017-12-09 01:36

administrator   ~0010547

@chrisb do you mind checking ?


2017-12-11 06:26

administrator   ~0010564

@jmaustpc please re-check ticket when you get a moment, thanks!


2017-12-21 10:29

developer   ~0010623

I can reproduce it - of course - because it's the well known behaviour. The current definition of solved is: There is no smooth transition to another solution.
So it works as designed and is definitely not a bug. @abdullah may comment if there is a chance to get a solver where solved means: this is the one and only solution. If so this can be a feature request, if not it can be closed.


2018-01-25 16:58

administrator   ~0010851

@abdullah please take a look at chrisb's response in 0000754:0010623


2018-01-27 17:19

manager   ~0010880


Man! I cannot move that triangle. I have tried dragging all the three points and the two edges, in I would say any direction.

When you can reproduce it, what are you dragging?
Triangle_around_circle.png (Attachment missing)


2018-06-15 16:49

manager   ~0011442

Sorry, I mixed two different aspects of the bug. Yes, I can reproduce.

To me from this example what is pending is the "flipping", which still happens even with the improved dragging implemented at the end of last year.

Regarding the multiple solution, I do not forsee any change in behaviour. The solution is valid. It is somehow similar to x^2=4, x=2, x=-2, both solutions are valid.

Issue History

Date Modified Username Field Change
2012-06-16 06:38 jmaustpc New Issue
2012-06-16 06:38 jmaustpc File Added: circle_tangent_sketch_fully_constrained_error.FCStd
2012-06-16 06:39 jmaustpc File Added: circleandtwotangentlines_notreallyfullyconstrained_error_whenverticalconstraintisadded2.jpg
2012-06-16 06:39 jmaustpc File Added: circleandtwotangentlines_notreallyfullyconstrained_error_whenverticalconstraintisadded.jpg
2012-06-16 06:59 jmaustpc Note Added: 0002209
2012-06-16 07:00 jmaustpc Note Added: 0002210
2012-06-17 09:36 logari81 Status new => assigned
2012-06-17 09:36 logari81 Assigned To => logari81
2012-06-17 09:42 logari81 Note Added: 0002213
2012-06-17 09:43 logari81 Severity major => minor
2012-06-18 00:26 jmaustpc Note Added: 0002215
2012-06-18 00:34 jmaustpc Note Added: 0002216
2012-06-18 00:44 jmaustpc Note Added: 0002217
2012-06-18 01:02 jmaustpc Note Added: 0002218
2012-07-01 12:50 yorik Project FreeCAD => Sketcher
2012-12-20 20:55 logari81 Summary sketcher says sketch is fully constrained when it is not => Sketcher doesn't report that a fully constrained sketch may have multiple (finite) solutions
2014-03-04 18:32 wmayer Relationship added related to 0001460
2017-01-18 22:05 Kunda1 Tag Attached: Solver
2017-01-22 14:29 Kunda1 Relationship added related to 0001260
2017-04-02 08:55 kkremitzki Assigned To logari81 =>
2017-04-02 08:55 kkremitzki Status assigned => new
2017-09-27 12:32 Kunda1 Relationship added related to 0001734
2017-10-19 12:35 Kunda1 Tag Attached: constraints
2017-12-08 15:52 abdullah Note Added: 0010545
2017-12-09 01:36 Kunda1 Note Added: 0010547
2017-12-11 06:26 Kunda1 Note Added: 0010564
2017-12-11 06:27 Kunda1 Tag Attached: #pending
2017-12-13 15:20 Kunda1 Project Sketcher => GCS
2017-12-21 10:29 chrisb Note Added: 0010623
2018-01-25 16:58 Kunda1 Note Added: 0010851
2018-01-27 17:19 abdullah File Added: Triangle_around_circle.png
2018-01-27 17:19 abdullah Note Added: 0010880
2018-06-15 16:49 abdullah Note Added: 0011442
2018-06-15 16:59 abdullah Assigned To => abdullah
2018-06-15 16:59 abdullah Status new => assigned
2018-10-06 15:37 abdullah Category Bug => General
2018-10-06 15:37 abdullah Target Version => 0.19
2018-10-06 15:37 abdullah Steps to Reproduce Updated
2020-11-10 12:56 abdullah Target Version 0.19 => 0.20
2021-02-06 06:31 abdullah Target Version => 0.20