Thomas Krijnen
2019-05-24 14:49:14 +02:00
parent 17077c74a9
commit 784c1724d5
+11 -9
View File
@@ -349,17 +349,19 @@ bool IfcGeom::Kernel::create_solid_from_faces(const TopTools_ListOfShape& face_l
builder.Perform(); builder.Perform();
shape = builder.SewedShape(); shape = builder.SewedShape();
{ BRepCheck_Analyzer ana(shape);
BRepCheck_Analyzer ana(shape); valid_shell = ana.IsValid();
if (!ana.IsValid()) {
ShapeFix_Shape sfs(shape); if (!valid_shell) {
sfs.Perform(); ShapeFix_Shape sfs(shape);
shape = sfs.Shape(); sfs.Perform();
} shape = sfs.Shape();
BRepCheck_Analyzer reana(shape);
valid_shell = reana.IsValid();
} }
BRepCheck_Analyzer ana(shape); valid_shell &= count(shape, TopAbs_SHELL) > 0;
valid_shell = ana.IsValid() != 0 && count(shape, TopAbs_SHELL) > 0;
} catch (const Standard_Failure& e) { } catch (const Standard_Failure& e) {
if (e.GetMessageString() && strlen(e.GetMessageString())) { if (e.GetMessageString() && strlen(e.GetMessageString())) {
Logger::Error(e.GetMessageString()); Logger::Error(e.GetMessageString());