Commit 043dc604 authored by wmayer's avatar wmayer
Browse files

Do some error checking for sketch based features

parent 0a6979e0
......@@ -82,7 +82,13 @@ void Part2DObject::positionBySupport(void)
const Part::TopoShape &shape = part->Shape.getShape();
if (shape._Shape.IsNull())
throw Base::Exception("Support shape is empty!");
TopoDS_Shape sh = shape.getSubShape(sub[0].c_str());
TopoDS_Shape sh;
try {
sh = shape.getSubShape(sub[0].c_str());
catch (Standard_Failure) {
throw Base::Exception("Face in support shape doesn't exist!");
const TopoDS_Face &face = TopoDS::Face(sh);
if (face.IsNull())
throw Base::Exception("Null face in Part2DObject::positionBySupport()!");
......@@ -731,7 +731,15 @@ void SketchBased::remapSupportShape(const TopoDS_Shape& newShape)
bool success = false;
TopoDS_Shape element = shape.getSubShape(it->c_str());
TopoDS_Shape element;
try {
element = shape.getSubShape(it->c_str());
catch (Standard_Failure) {
// This shape doesn't even exist, so no chance to do some tests
try {
// as very first test check if old face and new face are parallel planes
TopoDS_Shape newElement = Part::TopoShape(newShape).getSubShape(it->c_str());
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment