diff --git a/src/Mod/Sketcher/App/SketchObjectPy.xml b/src/Mod/Sketcher/App/SketchObjectPy.xml
index befa596d7e..e8e9baf0ca 100644
--- a/src/Mod/Sketcher/App/SketchObjectPy.xml
+++ b/src/Mod/Sketcher/App/SketchObjectPy.xml
@@ -263,7 +263,16 @@
-
+
+
+
+ getGeometryWithDependentParameters - returns a list of geoid posid pairs
+ with all the geometry element edges and vertices which the solver regards
+ as being dependent on other parameters.
+
+
+
+
Number of Constraints in this sketch
diff --git a/src/Mod/Sketcher/App/SketchObjectPyImp.cpp b/src/Mod/Sketcher/App/SketchObjectPyImp.cpp
index fa556bb509..7ee875994c 100644
--- a/src/Mod/Sketcher/App/SketchObjectPyImp.cpp
+++ b/src/Mod/Sketcher/App/SketchObjectPyImp.cpp
@@ -1274,6 +1274,26 @@ PyObject* SketchObjectPy::modifyBSplineKnotMultiplicity(PyObject *args)
Py_Return;
}
+
+PyObject* SketchObjectPy::getGeometryWithDependentParameters(PyObject *args)
+{
+ if (!PyArg_ParseTuple(args, ""))
+ return 0;
+
+ std::vector> geometrymap;
+
+ this->getSketchObjectPtr()->getGeometryWithDependentParameters(geometrymap);
+
+ Py::List list;
+ for (auto pair : geometrymap) {
+ Py::Tuple t(2);
+ t.setItem(0, Py::Long(pair.first));
+ t.setItem(1, Py::Long(((pair.second == Sketcher::none)?0:(pair.second == Sketcher::start)?1:(pair.second == Sketcher::end)?2:3)));
+ list.append(t);
+ }
+ return Py::new_reference_to(list);
+}
+
Py::Long SketchObjectPy::getConstraintCount(void) const
{
return Py::Long(this->getSketchObjectPtr()->Constraints.getSize());