USER FORUM
(you are viewing a thread; or go back to list of threads)
Making equal lines fixed (by Artem Zhidkov)
Dear Jonathan,
The problem is that, I need to create two linear segments with equal lengths in the fixed positions. So, I've created these lines, make them equal and try to lock their boundary points. As a result, when I lock two points on first line, and one point on second line, the sketch has one degree of freedom. But after locking the remaining point, I receive the "inconsistent system" message.
As I understand, the "Where Dragged" constraint on workplane removes two degrees of freedom. But as I see in my case, the system should be consistent at all.
I would really appreciate it, if you could give an explanation, is it a bug in SolveSpace, or I need to do another steps to make two segments fixed.
Sincerely yours,
Artem
The problem is that, I need to create two linear segments with equal lengths in the fixed positions. So, I've created these lines, make them equal and try to lock their boundary points. As a result, when I lock two points on first line, and one point on second line, the sketch has one degree of freedom. But after locking the remaining point, I receive the "inconsistent system" message.
As I understand, the "Where Dragged" constraint on workplane removes two degrees of freedom. But as I see in my case, the system should be consistent at all.
I would really appreciate it, if you could give an explanation, is it a bug in SolveSpace, or I need to do another steps to make two segments fixed.
Sincerely yours,
Artem
(no subject) (by Jonathan Westhues)
Can you post your sketch? You are correct that "where dragged" removes 2 DOF, and you should indeed be starting with only 1 DOF remaining; so it seems normal and expected that the result would be overconstrained.
More generally, if all four endpoints of the two lines are fixed, then their lengths are fixed, and may be equal or not. So I'm not sure what the equal-length constraint could do in that case.
More generally, if all four endpoints of the two lines are fixed, then their lengths are fixed, and may be equal or not. So I'm not sure what the equal-length constraint could do in that case.
(no subject) (by Artem Zhidkov)
Thank you for answer!
My sketch is quite simple. I need to mirror a quadrangle having two equal segments without moving it. When I try to mirror it point by point without fixing corners, the points of initial quadrangle change their positions. I have tried to fix the points of initial shape, but obtain overconstraint error.
I didn't investigate your algorithms, but in my mind the result of sketch should depend on the sequence of operations. I agree, if I primarily fix the points and then try to apply equal constraint, the result would be overconstrained. But if I talk as end-user, when I create two segments with equal lengths and then try to fix them, I don't expect overconstraint situation.
I don't mind this is a bug, but I would like to find a way to manipulate this situation in the future.
Anyway, thanks for your help!
My sketch is quite simple. I need to mirror a quadrangle having two equal segments without moving it. When I try to mirror it point by point without fixing corners, the points of initial quadrangle change their positions. I have tried to fix the points of initial shape, but obtain overconstraint error.
I didn't investigate your algorithms, but in my mind the result of sketch should depend on the sequence of operations. I agree, if I primarily fix the points and then try to apply equal constraint, the result would be overconstrained. But if I talk as end-user, when I create two segments with equal lengths and then try to fix them, I don't expect overconstraint situation.
I don't mind this is a bug, but I would like to find a way to manipulate this situation in the future.
Anyway, thanks for your help!
(no subject) (by Jonathan Westhues)
A constraint is a geometric fact about the sketch, like "these two lines have equal length", or "this point is placed exactly where the user dragged it". The constraint solver attempts to make all of those facts true. The order in which the facts are specified doesn't matter; it always either satisfies all of them or fails.
Your first quad is underconstrained; it has 8 DOF, of which you've fixed 7 (3*2 from point-where-dragged, plus one from equal). So the solver may move that remaining DOF, for example in response to an attempt to drag its mirror image (which I believe is the behavior you don't want, per above). To change that, you could:
Fully constrain the first quad, for example with an additional angle or length constraint.
Or, move the second quad into a second group. All geometry in the first group will be solved, and then held fixed while the second group is solved.
Let me know if that makes sense, or if you still have questions.
Your first quad is underconstrained; it has 8 DOF, of which you've fixed 7 (3*2 from point-where-dragged, plus one from equal). So the solver may move that remaining DOF, for example in response to an attempt to drag its mirror image (which I believe is the behavior you don't want, per above). To change that, you could:
Fully constrain the first quad, for example with an additional angle or length constraint.
Or, move the second quad into a second group. All geometry in the first group will be solved, and then held fixed while the second group is solved.
Let me know if that makes sense, or if you still have questions.
(no subject) (by Artem Zhidkov)
Thank you for explanation, it was very helpful for me. It is a great idea to move mirrored objects into separate group. It really helps!
Post a reply to this comment: