diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerArc.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerArc.h index 7fcb1efbf2..6faec669ec 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerArc.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerArc.h @@ -627,6 +627,9 @@ void DSHArcControllerBase::doEnforceControlParameters(Base::Vector2d& onSketchPo unsetOnViewParameter(fifthParam.get()); return; } + + handler->arcAngle = arcAngle; + double angle = handler->startAngle + arcAngle; onSketchPos.x = handler->centerPoint.x + cos(angle) * handler->radius; onSketchPos.y = handler->centerPoint.y + sin(angle) * handler->radius; diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerArcSlot.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerArcSlot.h index c683b40db9..4cb5ff8bf2 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerArcSlot.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerArcSlot.h @@ -677,6 +677,8 @@ void DSHArcSlotControllerBase::doEnforceControlParameters(Base::Vector2d& onSket unsetOnViewParameter(fifthParam.get()); } else { + handler->arcAngle = arcAngle; + double length = (onSketchPos - handler->centerPoint).Length(); double angle = handler->startAngleBackup + arcAngle; onSketchPos.x = handler->centerPoint.x + cos(angle) * length; diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerRotate.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerRotate.h index 96feda0345..a9632f540b 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerRotate.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerRotate.h @@ -614,8 +614,10 @@ void DSHRotateControllerBase::doEnforceControlParameters(Base::Vector2d& onSketc return; } - onSketchPos.x = handler->centerPoint.x + cos((handler->startAngle + arcAngle)); - onSketchPos.y = handler->centerPoint.y + sin((handler->startAngle + arcAngle)); + handler->totalAngle = arcAngle; + + onSketchPos.x = handler->centerPoint.x + cos(handler->startAngle + arcAngle); + onSketchPos.y = handler->centerPoint.y + sin(handler->startAngle + arcAngle); } } break; default: