diff --git a/src/Mod/TechDraw/App/DrawViewPartPy.xml b/src/Mod/TechDraw/App/DrawViewPartPy.xml
index 99e8871dcc..1a677c6342 100644
--- a/src/Mod/TechDraw/App/DrawViewPartPy.xml
+++ b/src/Mod/TechDraw/App/DrawViewPartPy.xml
@@ -18,11 +18,21 @@
getVisibleEdges() - get the visible edges in the View as Part::TopoShapeEdges
+
+
+ getVisibleVertexes() - get the visible vertexes as App.Vector in the View's coordinate system.
+
+
getHiddenEdges() - get the hidden edges in the View as Part::TopoShapeEdges
+
+
+ getHiddenVertexes() - get the hidden vertexes as App.Vector in the View's coordinate system.
+
+
id = makeCosmeticVertex(p1) - add a CosmeticVertex at p1 (View coordinates). Returns unique id vertex.
diff --git a/src/Mod/TechDraw/App/DrawViewPartPyImp.cpp b/src/Mod/TechDraw/App/DrawViewPartPyImp.cpp
index 25c2a3b99c..512e9b63ff 100644
--- a/src/Mod/TechDraw/App/DrawViewPartPyImp.cpp
+++ b/src/Mod/TechDraw/App/DrawViewPartPyImp.cpp
@@ -98,6 +98,46 @@ PyObject* DrawViewPartPy::getHiddenEdges(PyObject *args)
return Py::new_reference_to(pEdgeList);
}
+PyObject* DrawViewPartPy::getVisibleVertexes(PyObject *args)
+{
+ if (!PyArg_ParseTuple(args, "")) {
+ return nullptr;
+ }
+
+ DrawViewPart* dvp = getDrawViewPartPtr();
+ Py::List pVertexList;
+ auto vertsAll = dvp->getVertexGeometry();
+ for (auto& vert: vertsAll) {
+ if (vert->getHlrVisible()) {
+ PyObject* pVertex = new Base::VectorPy(new Base::Vector3d(vert->point()));
+ pVertexList.append(Py::asObject(pVertex));
+ }
+ }
+
+ return Py::new_reference_to(pVertexList);
+}
+
+PyObject* DrawViewPartPy::getHiddenVertexes(PyObject *args)
+{
+ if (!PyArg_ParseTuple(args, "")) {
+ return nullptr;
+ }
+
+ DrawViewPart* dvp = getDrawViewPartPtr();
+ Py::List pVertexList;
+ auto vertsAll = dvp->getVertexGeometry();
+ for (auto& vert: vertsAll) {
+ if (!vert->getHlrVisible()) {
+ PyObject* pVertex = new Base::VectorPy(new Base::Vector3d(vert->point()));
+ pVertexList.append(Py::asObject(pVertex));
+ }
+ }
+
+ return Py::new_reference_to(pVertexList);
+}
+
+
+
PyObject* DrawViewPartPy::requestPaint(PyObject *args)
{
if (!PyArg_ParseTuple(args, "")) {