diff --git a/src/Mod/Sketcher/App/SketchObject.cpp b/src/Mod/Sketcher/App/SketchObject.cpp index c88fde3c20..92c7a9b703 100644 --- a/src/Mod/Sketcher/App/SketchObject.cpp +++ b/src/Mod/Sketcher/App/SketchObject.cpp @@ -3276,6 +3276,7 @@ void createNewConstraintsForTrim(const SketchObject* obj, const std::array& cuttingGeoIds, const std::array& cutPoints, const std::vector& newIds, + const std::vector newGeos, std::vector& idsOfOldConstraints, std::vector& newConstraints, std::set>& geoIdsToBeDeleted) @@ -3320,7 +3321,7 @@ void createNewConstraintsForTrim(const SketchObject* obj, continue; } // constraint has not yet been changed - obj->deriveConstraintsForPieces(GeoId, newIds, con, newConstraints); + obj->deriveConstraintsForPieces(GeoId, newIds, newGeos, con, newConstraints); } // Add point-on-object/coincidence constraints with the newly exposed points. @@ -3403,6 +3404,7 @@ int SketchObject::trim(int GeoId, const Base::Vector3d& point) //****************************************// std::vector newIds; std::vector newGeos; + std::vector newGeosAsConsts; switch (paramsOfNewGeos.size()) { case 0: { @@ -3424,6 +3426,9 @@ int SketchObject::trim(int GeoId, const Base::Vector3d& point) } createArcsFromGeoWithLimits(geoAsCurve, paramsOfNewGeos, newGeos); + for (const auto* geo : newGeos) { + newGeosAsConsts.push_back(geo); + } //******************* Step C => Creation of new constraints //****************************************// @@ -3461,6 +3466,7 @@ int SketchObject::trim(int GeoId, const Base::Vector3d& point) cuttingGeoIds, cutPoints, newIds, + newGeosAsConsts, idsOfOldConstraints, newConstraints, geoIdsToBeDeleted);