diff --git a/Geo/OCCFace.cpp b/Geo/OCCFace.cpp index 5ba119fe0154c508e015cee529148e6add83f468..301f6a9afb0980d1b00838a81a7b00a28cceb4ed 100644 --- a/Geo/OCCFace.cpp +++ b/Geo/OCCFace.cpp @@ -46,7 +46,14 @@ OCCFace::OCCFace(GModel *m, TopoDS_Face _s, int num, TopTools_IndexedMapOfShape TopoDS_Edge edge = TopoDS::Edge(exp3.Current()); int index = emap.FindIndex(edge); GEdge *e = m->getEdgeByTag(index); - if(e){ + if(!e){ + Msg::Error("Unknown edge %d in face %d", index, num); + } + else if(std::find(embedded_edges.begin(), embedded_edges.end(), e) != + embedded_edges.end()){ + Msg::Debug("OCC Face %d - Skipping embedded edge in loop", num); + } + else{ l_wire.push_back(e); Msg::Debug("Edge %d ori %d", e->tag(), edge.Orientation()); e->addFace(this); @@ -55,9 +62,6 @@ OCCFace::OCCFace(GModel *m, TopoDS_Face _s, int num, TopTools_IndexedMapOfShape occe->setTrimmed(this); } } - else{ - Msg::Error("Unknown edge %d in face %d", index, num); - } } GEdgeLoop el(l_wire);