View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000427||Sketcher||Feature||public||2011-08-28 15:22||2013-03-08 20:01|
|Fixed in Version||0.12|
|Summary||0000427: Sketcher: Fix a point onto object constraint does not work on arcs|
|Description||Steps 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 Information||FreeCAD 0.12-bzr4464 from PPA (svn4818) on Ubuntu 10.04 LTS 64-Bit|
|Tags||No tags attached.|
||Currently only line segment & circle is supported but no arc.|
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.
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.
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.
||A parameter staying between 0 and 1 is an inequality constraint.|
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.
||no we do not support inequality constraints|
||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.|
||This feature has been added quite some time ago. Shouldn't we close this report?|
||the initial bug was fixed in 0.12 and I do not intend to implement the behavior suggested by tilas, so lets close this.|
|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|