diff --git a/src/Mod/Sketcher/App/SketchObject.cpp b/src/Mod/Sketcher/App/SketchObject.cpp index 569802f3e0..91a11612ef 100644 --- a/src/Mod/Sketcher/App/SketchObject.cpp +++ b/src/Mod/Sketcher/App/SketchObject.cpp @@ -4490,7 +4490,6 @@ std::vector SketchObject::getSymmetric(const std::vector& if (refIsLine) { const Part::Geometry* georef = getGeometry(refGeoId); if (!georef->is()) { - Base::Console().Error("Reference for symmetric is neither a point nor a line.\n"); return {}; } diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerSymmetry.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerSymmetry.h index dffc07079d..d581a446e6 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerSymmetry.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerSymmetry.h @@ -92,6 +92,7 @@ private: int VtId = getPreselectPoint(); int CrvId = getPreselectCurve(); int CrsId = getPreselectCross(); + Sketcher::SketchObject* obj = sketchgui->getSketchObject(); if (VtId >= 0) { // Vertex SketchObject* Obj = sketchgui->getSketchObject(); @@ -109,7 +110,8 @@ private: refGeoId = Sketcher::GeoEnum::VAxis; refPosId = Sketcher::PointPos::none; } - else if (CrvId >= 0 || CrvId <= Sketcher::GeoEnum::RefExt) { // Curves + else if ((CrvId >= 0 || CrvId <= Sketcher::GeoEnum::RefExt) + && isLineSegment(*obj->getGeometry(CrvId))) { // Curves refGeoId = CrvId; refPosId = Sketcher::PointPos::none; }