Allow to use revolve tool on Draft objects

This commit is contained in:
wmayer 2012-10-22 14:06:29 +02:00
parent 3c87932f5e
commit d50fb2ba06
4 changed files with 23 additions and 1 deletions

View File

@ -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();}
//@}

View File

@ -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();
}

View File

@ -30,6 +30,7 @@
# include <TopTools_ListIteratorOfListOfShape.hxx>
# include <TopExp.hxx>
# include <TopTools_IndexedMapOfShape.hxx>
# include <Standard_Failure.hxx>
// includes for findAllFacesCutBy()
# include <TopoDS_Face.hxx>
# include <gp_Dir.hxx>
@ -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;

View File

@ -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;
//@}