Sketcher: Bug fix: unable to move geometry after addition of a constraint
========================================================================= This fixes issue: http://www.freecadweb.org/tracker/view.php?id=2281 Discussed in: http://forum.freecadweb.org/viewtopic.php?p=101910#p101910 How to reproduce? With Auto-Update mode unchecked, execute the sequence in the bug tracker. You will reach to a geometry assembly successfully solved that can not be moved. Why? The coincident constraint is partially redundant within the meaning of redundancy of the solver. The solve within "addconstraint" in SketchObjectPy.cpp causes the geometry to move to meet the coincident constraint. At the end of the solve, the initial solution used in diagnostics is no longer valid (the geometry moved). This causes a subsequente move not to be executed. The Solution: Recalculate just the initial solution after the addition.
This commit is contained in:
@@ -372,6 +372,12 @@ int SketchObject::toggleDriving(int ConstrId)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int SketchObject::setUpSketch()
|
||||
{
|
||||
return solvedSketch.setUpSketch(getCompleteGeometry(), Constraints.getValues(),
|
||||
getExternalGeometryCount());
|
||||
}
|
||||
|
||||
int SketchObject::movePoint(int GeoId, PointPos PosId, const Base::Vector3d& toPoint, bool relative, bool updateGeoBeforeMoving)
|
||||
{
|
||||
// if we are moving a point at SketchObject level, we need to start from a solved sketch
|
||||
|
||||
Reference in New Issue
Block a user