diff --git a/src/Mod/PartDesign/App/FeatureDraft.cpp b/src/Mod/PartDesign/App/FeatureDraft.cpp
index 7fcd70a5f1..13572887e8 100644
--- a/src/Mod/PartDesign/App/FeatureDraft.cpp
+++ b/src/Mod/PartDesign/App/FeatureDraft.cpp
@@ -59,6 +59,7 @@
#include
#include
+#include
using namespace PartDesign;
@@ -66,14 +67,29 @@ using namespace PartDesign;
PROPERTY_SOURCE(PartDesign::Draft, PartDesign::DressUp)
+App::PropertyAngle::Constraints Draft::floatAngle = {0.0,89.99,0.1};
+
Draft::Draft()
{
ADD_PROPERTY(Angle,(1.5));
+ Angle.setConstraints(&floatAngle);
ADD_PROPERTY_TYPE(NeutralPlane,(0),"Draft",(App::PropertyType)(App::Prop_None),"NeutralPlane");
ADD_PROPERTY_TYPE(PullDirection,(0),"Draft",(App::PropertyType)(App::Prop_None),"PullDirection");
ADD_PROPERTY(Reversed,(0));
}
+void Draft::handleChangedPropertyType(Base::XMLReader &reader,
+ const char * TypeName,
+ App::Property * prop)
+{
+ Base::Type inputType = Base::Type::fromName(TypeName);
+ if (prop == &Angle && inputType == App::PropertyFloatConstraint::getClassTypeId()) {
+ App::PropertyFloatConstraint v;
+ v.Restore(reader);
+ Angle.setValue(v.getValue());
+ }
+}
+
short Draft::mustExecute() const
{
if (Placement.isTouched() ||
@@ -103,10 +119,7 @@ App::DocumentObjectExecReturn *Draft::execute(void)
return new App::DocumentObjectExecReturn("No faces specified");
// Draft angle
- double angle = Angle.getValue();
- angle = angle >= 90.0 ? 89.99 : angle < 0.0 ? 0.0 : angle;
- Angle.setValue(angle);
- angle = angle / 180.0 * M_PI;
+ double angle = Base::toRadians(Angle.getValue());
// Pull direction
gp_Dir pullDirection;
diff --git a/src/Mod/PartDesign/App/FeatureDraft.h b/src/Mod/PartDesign/App/FeatureDraft.h
index 04cd72197b..d10d668a27 100644
--- a/src/Mod/PartDesign/App/FeatureDraft.h
+++ b/src/Mod/PartDesign/App/FeatureDraft.h
@@ -54,6 +54,10 @@ public:
return "PartDesignGui::ViewProviderDraft";
}
//@}
+
+private:
+ virtual void handleChangedPropertyType(Base::XMLReader &reader, const char * TypeName, App::Property * prop);
+ static App::PropertyAngle::Constraints floatAngle;
};
} //namespace PartDesign