From a5e85fd297e4cf8c414b5334ea001059fac351d6 Mon Sep 17 00:00:00 2001 From: Abdullah Tahiri Date: Fri, 8 Jun 2018 22:01:03 +0200 Subject: [PATCH] Sketcher: Python interface to solveraid --- src/Mod/Sketcher/App/SketchObjectPy.xml | 11 ++++++++++- src/Mod/Sketcher/App/SketchObjectPyImp.cpp | 20 ++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) 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());