diff --git a/src/App/DocumentObject.h b/src/App/DocumentObject.h index 50d5b60b0..78616408c 100644 --- a/src/App/DocumentObject.h +++ b/src/App/DocumentObject.h @@ -102,7 +102,7 @@ public: /// returns true if this objects is currently restoring from file bool isRestoring() const {return StatusBits.test(4);} /// recompute only this object - App::DocumentObjectExecReturn *recompute(void); + virtual App::DocumentObjectExecReturn *recompute(void); /// return the status bits unsigned long getStatus() const {return StatusBits.to_ulong();} //@} diff --git a/src/Mod/Part/App/Part2DObject.cpp b/src/Mod/Part/App/Part2DObject.cpp index d9280bc46..bb59cde2a 100644 --- a/src/Mod/Part/App/Part2DObject.cpp +++ b/src/Mod/Part/App/Part2DObject.cpp @@ -193,6 +193,12 @@ int Part2DObject::getAxisCount(void) const Base::Axis Part2DObject::getAxis(int axId) const { + if (axId == H_Axis) { + return Base::Axis(Base::Vector3d(0,0,0), Base::Vector3d(1,0,0)); + } + else if (axId == V_Axis) { + return Base::Axis(Base::Vector3d(0,0,0), Base::Vector3d(0,1,0)); + } return Base::Axis(); } diff --git a/src/Mod/Part/App/PartFeature.cpp b/src/Mod/Part/App/PartFeature.cpp index 45e0076e9..b24a74854 100644 --- a/src/Mod/Part/App/PartFeature.cpp +++ b/src/Mod/Part/App/PartFeature.cpp @@ -30,6 +30,7 @@ # include # include # include +# include // includes for findAllFacesCutBy() # include # include @@ -71,6 +72,19 @@ short Feature::mustExecute(void) const return GeoFeature::mustExecute(); } +App::DocumentObjectExecReturn *Feature::recompute(void) +{ + try { + return App::GeoFeature::recompute(); + } + catch (Standard_Failure) { + Handle_Standard_Failure e = Standard_Failure::Caught(); + App::DocumentObjectExecReturn* ret = new App::DocumentObjectExecReturn(e->GetMessageString()); + if (ret->Why.empty()) ret->Why = "Unknown OCC exception"; + return ret; + } +} + App::DocumentObjectExecReturn *Feature::execute(void) { return App::DocumentObject::StdReturn; diff --git a/src/Mod/Part/App/PartFeature.h b/src/Mod/Part/App/PartFeature.h index 5c08151bc..bd7beac3b 100644 --- a/src/Mod/Part/App/PartFeature.h +++ b/src/Mod/Part/App/PartFeature.h @@ -60,6 +60,8 @@ public: /** @name methods override feature */ //@{ /// recalculate the feature + /// recompute only this object + virtual App::DocumentObjectExecReturn *recompute(void); virtual App::DocumentObjectExecReturn *execute(void); virtual short mustExecute(void) const; //@}