diff --git a/src/Mod/Part/App/GeometryCurvePyImp.cpp b/src/Mod/Part/App/GeometryCurvePyImp.cpp index fbea3154d5..f1dc3c0c8b 100644 --- a/src/Mod/Part/App/GeometryCurvePyImp.cpp +++ b/src/Mod/Part/App/GeometryCurvePyImp.cpp @@ -805,7 +805,8 @@ PyObject* GeometryCurvePy::intersectCC(PyObject *args) return 0; Handle(Geom_Curve) curve2 = Handle(Geom_Curve)::DownCast(static_cast(p)->getGeometryPtr()->handle()); GeomAPI_ExtremaCurveCurve intersector(curve1, curve2); - if (intersector.LowerDistance() > Precision::Confusion()) { + if (intersector.NbExtrema() == 0 || + intersector.LowerDistance() > Precision::Confusion()) { // No intersection return Py::new_reference_to(Py::List()); } @@ -816,7 +817,7 @@ PyObject* GeometryCurvePy::intersectCC(PyObject *args) continue; gp_Pnt p1, p2; intersector.Points(i, p1, p2); - points.append(Py::Object(new PointPy(new GeomPoint(Base::Vector3d(p1.X(), p1.Y(), p1.Z()))))); + points.append(Py::asObject(new PointPy(new GeomPoint(Base::Vector3d(p1.X(), p1.Y(), p1.Z()))))); } return Py::new_reference_to(points);