View Issue Details

IDProjectCategoryView StatusLast Update
0000427SketcherFeaturepublic2013-03-08 20:01
Reporternormandc Assigned Tologari81  
Status closedResolutionfixed 
Product Versiontrunk 
Fixed in Version0.12 
Summary0000427: Sketcher: Fix a point onto object constraint does not work on arcs
DescriptionSteps to reproduce: create a new sketch, then

1. Draw a line
2. Draw an arc
3. Select one of the line's vertex, select the arc (in this order or reverse order does not affect result)
4. Click on the "Fix a point onto object" constraint

It results everytime with a wrong selection error "Select exactly one point and one object from the sketch".

FYI fix a point on a circle works without a hitch.
Additional InformationFreeCAD 0.12-bzr4464 from PPA (svn4818) on Ubuntu 10.04 LTS 64-Bit
TagsNo tags attached.
FreeCAD Information



2011-09-06 10:52

administrator   ~0001046

Currently only line segment & circle is supported but no arc.


2011-09-09 07:29

reporter   ~0001053

I think arc should be the same as circle, because of the way this works with lines.

Right now you can fix point on line, and you can move constrained vertex beyond line vertexes.

If you change this and make it work only on defined part of arc, and not on the whole circle of arc, you should also change the way it works on line too, so that it locks objects only where line is defined.



2011-09-09 07:49

developer   ~0001054

ok, I will do it work as if the arc was a circle.

We are not going to support inequality constraints in the solver soon, so it is not possible to restrict a point between the line segment or arc ends.


2011-11-02 21:25

reporter   ~0001218

you don't have to support an inequality constraint to restrict a point between two vertices. All you need is to create a normalize parameter. In the case of a line it's a distance from one of the points divided by the line length. In the case of an arc - it's either the normalized arclength or the angle counted from any of the endpoints to the total angle. As long as this parameter stays between 0 and 1 the point can move.
The question is whether such a limitation is needed? Or maybe it's batter to separate this into two constraints:

1. point on object/curve (for both the lines and arcs, with the above limitation)

2. 'co-linear' (without the limitation, but only for straight lines)

If I'm not mistaken, this is the way it's done in other cad systems.


2011-11-03 10:33

developer   ~0001219

A parameter staying between 0 and 1 is an inequality constraint.


2011-11-03 15:45

reporter   ~0001221

It's a condition, it's not a constraint. Though we might be misunderstanding each other.
By 'supporting a constraint' I understand providing a user with explicit means to set such a condition. Like in the case of dimensional constraints the user have to type in the value, in the case of inequality constraint the user will have to type the limits for a parameter. IMHO, it's not necessary. I can't think of any use for this.

On the other hand, a condition which is part of other, existing constraint is ok. Anyway, almost all the constraints can be defined through conditions and I see no difference between an equality and inequality - same order logical operator. It's just part of the implementation, which is not directly exposed to the user.


2011-11-03 16:22

developer   ~0001223

no we do not support inequality constraints


2011-11-03 16:41

reporter   ~0001224

can you then add some visual aid like a trace line, when say a point is tied to a non-existing side of the circle/line. Otherwise it will be very difficult to inspect the sketch and fix an overconstrained one.


2013-03-08 04:09

manager   ~0002968

This feature has been added quite some time ago. Shouldn't we close this report?


2013-03-08 20:01

developer   ~0002972

the initial bug was fixed in 0.12 and I do not intend to implement the behavior suggested by tilas, so lets close this.

Issue History

Date Modified Username Field Change
2011-08-28 15:22 normandc New Issue
2011-09-06 07:40 logari81 Status new => assigned
2011-09-06 07:40 logari81 Assigned To => logari81
2011-09-06 10:52 wmayer Note Added: 0001046
2011-09-09 07:29 pperisin Note Added: 0001053
2011-09-09 07:49 logari81 Note Added: 0001054
2011-11-02 21:25 tilas Note Added: 0001218
2011-11-03 10:33 logari81 Note Added: 0001219
2011-11-03 15:45 tilas Note Added: 0001221
2011-11-03 16:22 logari81 Note Added: 0001223
2011-11-03 16:41 tilas Note Added: 0001224
2012-05-05 18:31 yorik Project FreeCAD => Sketcher
2013-03-08 04:09 normandc Note Added: 0002968
2013-03-08 20:01 logari81 Note Added: 0002972
2013-03-08 20:01 logari81 Status assigned => closed
2013-03-08 20:01 logari81 Resolution open => fixed
2013-03-08 20:01 logari81 Fixed in Version => 0.12