diff --git a/src/Mod/PartDesign/Gui/TaskDraftParameters.cpp b/src/Mod/PartDesign/Gui/TaskDraftParameters.cpp
index 68b8143d5..e2a0e850c 100644
--- a/src/Mod/PartDesign/Gui/TaskDraftParameters.cpp
+++ b/src/Mod/PartDesign/Gui/TaskDraftParameters.cpp
@@ -38,6 +38,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -366,6 +367,15 @@ void TaskDlgDraftParameters::clicked(int)
bool TaskDlgDraftParameters::accept()
{
+ parameter->showObject();
+
+ // Force the user to select a neutral plane
+ if (parameter->getPlane().empty()) {
+ QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Missing neutral plane"),
+ QObject::tr("Please select a plane or an edge plus a pull direction"));
+ return false;
+ }
+
std::string name = DraftView->getObject()->getNameInDocument();
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.Angle = %f",name.c_str(),parameter->getAngle());
diff --git a/src/Mod/PartDesign/Gui/TaskDraftParameters.h b/src/Mod/PartDesign/Gui/TaskDraftParameters.h
index 1508ee3c2..9f95bb9c3 100644
--- a/src/Mod/PartDesign/Gui/TaskDraftParameters.h
+++ b/src/Mod/PartDesign/Gui/TaskDraftParameters.h
@@ -58,6 +58,9 @@ public:
const std::string getLine(void) const;
App::DocumentObject *getBase(void) const;
+ void hideObject();
+ void showObject();
+
private Q_SLOTS:
void onAngleChanged(double angle);
void onReversedChanged(bool reversed);
@@ -68,8 +71,6 @@ private Q_SLOTS:
void onFaceDeleted(void);
protected:
- void hideObject();
- void showObject();
void exitSelectionMode();
protected: