diff --git a/src/Mod/Part/App/TopoShapeCompSolidPyImp.cpp b/src/Mod/Part/App/TopoShapeCompSolidPyImp.cpp index 6245ef1493..f64467b0a0 100644 --- a/src/Mod/Part/App/TopoShapeCompSolidPyImp.cpp +++ b/src/Mod/Part/App/TopoShapeCompSolidPyImp.cpp @@ -55,6 +55,13 @@ PyObject *TopoShapeCompSolidPy::PyMake(struct _typeobject *, PyObject *, PyObjec int TopoShapeCompSolidPy::PyInit(PyObject* args, PyObject* /*kwd*/) { + if (PyArg_ParseTuple(args, "")) { + // Undefined CompSolid + getTopoShapePtr()->setShape(TopoDS_CompSolid()); + return 0; + } + + PyErr_Clear(); PyObject *pcObj; if (!PyArg_ParseTuple(args, "O", &pcObj)) return -1; diff --git a/src/Mod/Part/App/TopoShapeCompoundPyImp.cpp b/src/Mod/Part/App/TopoShapeCompoundPyImp.cpp index 9c35c44d28..174f7b9550 100644 --- a/src/Mod/Part/App/TopoShapeCompoundPyImp.cpp +++ b/src/Mod/Part/App/TopoShapeCompoundPyImp.cpp @@ -59,6 +59,13 @@ PyObject *TopoShapeCompoundPy::PyMake(struct _typeobject *, PyObject *, PyObject // constructor method int TopoShapeCompoundPy::PyInit(PyObject* args, PyObject* /*kwd*/) { + if (PyArg_ParseTuple(args, "")) { + // Undefined Compound + getTopoShapePtr()->setShape(TopoDS_Compound()); + return 0; + } + + PyErr_Clear(); PyObject *pcObj; if (!PyArg_ParseTuple(args, "O", &pcObj)) return -1; @@ -79,7 +86,6 @@ int TopoShapeCompoundPy::PyInit(PyObject* args, PyObject* /*kwd*/) } } catch (Standard_Failure& e) { - PyErr_SetString(PartExceptionOCCError, e.GetMessageString()); return -1; } diff --git a/src/Mod/Part/App/TopoShapeEdgePyImp.cpp b/src/Mod/Part/App/TopoShapeEdgePyImp.cpp index 61370f7184..782efc4fbf 100644 --- a/src/Mod/Part/App/TopoShapeEdgePyImp.cpp +++ b/src/Mod/Part/App/TopoShapeEdgePyImp.cpp @@ -121,6 +121,13 @@ PyObject *TopoShapeEdgePy::PyMake(struct _typeobject *, PyObject *, PyObject *) // constructor method int TopoShapeEdgePy::PyInit(PyObject* args, PyObject* /*kwd*/) { + if (PyArg_ParseTuple(args, "")) { + // Undefined Edge + getTopoShapePtr()->setShape(TopoDS_Edge()); + return 0; + } + + PyErr_Clear(); PyObject *pcObj, *pcObj2; double first=DBL_MAX, last=DBL_MAX; if (PyArg_ParseTuple(args, "O!|dd", &(Part::GeometryPy::Type), &pcObj, &first, &last)) { diff --git a/src/Mod/Part/App/TopoShapeFacePyImp.cpp b/src/Mod/Part/App/TopoShapeFacePyImp.cpp index 66e32bb158..cd0ff350a1 100644 --- a/src/Mod/Part/App/TopoShapeFacePyImp.cpp +++ b/src/Mod/Part/App/TopoShapeFacePyImp.cpp @@ -117,6 +117,13 @@ PyObject *TopoShapeFacePy::PyMake(struct _typeobject *, PyObject *, PyObject *) // constructor method int TopoShapeFacePy::PyInit(PyObject* args, PyObject* /*kwd*/) { + if (PyArg_ParseTuple(args, "")) { + // Undefined Face + getTopoShapePtr()->setShape(TopoDS_Face()); + return 0; + } + + PyErr_Clear(); PyObject *pW; if (PyArg_ParseTuple(args, "O!", &(Part::TopoShapePy::Type), &pW)) { try { diff --git a/src/Mod/Part/App/TopoShapeShellPyImp.cpp b/src/Mod/Part/App/TopoShapeShellPyImp.cpp index 7e7e8d68f2..1d8fbf90a9 100644 --- a/src/Mod/Part/App/TopoShapeShellPyImp.cpp +++ b/src/Mod/Part/App/TopoShapeShellPyImp.cpp @@ -77,6 +77,13 @@ PyObject *TopoShapeShellPy::PyMake(struct _typeobject *, PyObject *, PyObject *) // constructor method int TopoShapeShellPy::PyInit(PyObject* args, PyObject* /*kwd*/) { + if (PyArg_ParseTuple(args, "")) { + // Undefined Shell + getTopoShapePtr()->setShape(TopoDS_Shell()); + return 0; + } + + PyErr_Clear(); PyObject *obj; if (!PyArg_ParseTuple(args, "O", &obj)) return -1; diff --git a/src/Mod/Part/App/TopoShapeSolidPyImp.cpp b/src/Mod/Part/App/TopoShapeSolidPyImp.cpp index 24e5b9e377..8c2960e751 100644 --- a/src/Mod/Part/App/TopoShapeSolidPyImp.cpp +++ b/src/Mod/Part/App/TopoShapeSolidPyImp.cpp @@ -79,6 +79,13 @@ PyObject *TopoShapeSolidPy::PyMake(struct _typeobject *, PyObject *, PyObject *) // constructor method int TopoShapeSolidPy::PyInit(PyObject* args, PyObject* /*kwd*/) { + if (PyArg_ParseTuple(args, "")) { + // Undefined Solid + getTopoShapePtr()->setShape(TopoDS_Solid()); + return 0; + } + + PyErr_Clear(); PyObject *obj; if (!PyArg_ParseTuple(args, "O!", &(TopoShapePy::Type), &obj)) return -1; diff --git a/src/Mod/Part/App/TopoShapeVertexPyImp.cpp b/src/Mod/Part/App/TopoShapeVertexPyImp.cpp index a522a216a0..6c7dd4bba0 100644 --- a/src/Mod/Part/App/TopoShapeVertexPyImp.cpp +++ b/src/Mod/Part/App/TopoShapeVertexPyImp.cpp @@ -63,6 +63,13 @@ PyObject *TopoShapeVertexPy::PyMake(struct _typeobject *, PyObject *, PyObject * // constructor method int TopoShapeVertexPy::PyInit(PyObject* args, PyObject* /*kwd*/) { + if (PyArg_ParseTuple(args, "")) { + // Undefined Vertex + getTopoShapePtr()->setShape(TopoDS_Vertex()); + return 0; + } + + PyErr_Clear(); double x=0.0,y=0.0,z=0.0; PyObject *object; bool success = false; diff --git a/src/Mod/Part/App/TopoShapeWirePyImp.cpp b/src/Mod/Part/App/TopoShapeWirePyImp.cpp index 24abdf2cf1..800546abb2 100644 --- a/src/Mod/Part/App/TopoShapeWirePyImp.cpp +++ b/src/Mod/Part/App/TopoShapeWirePyImp.cpp @@ -85,6 +85,13 @@ PyObject *TopoShapeWirePy::PyMake(struct _typeobject *, PyObject *, PyObject *) // constructor method int TopoShapeWirePy::PyInit(PyObject* args, PyObject* /*kwd*/) { + if (PyArg_ParseTuple(args, "")) { + // Undefined Wire + getTopoShapePtr()->setShape(TopoDS_Wire()); + return 0; + } + + PyErr_Clear(); PyObject *pcObj; if (PyArg_ParseTuple(args, "O!", &(Part::TopoShapePy::Type), &pcObj)) { BRepBuilderAPI_MakeWire mkWire;