Debug of thru sections

This commit is contained in:
gka 2006-05-15 13:47:53 +00:00
parent 1503c22175
commit aa3f8c1999

View File

@ -86,7 +86,7 @@ Standard_Integer GEOMImpl_ThruSectionsDriver::Execute(TFunction_Logbook& log) co
return 0; return 0;
BRepOffsetAPI_ThruSections aBuilder(isSolid,aType == THRUSECTIONS_RULED,aPreci); BRepOffsetAPI_ThruSections aBuilder(isSolid,aType == THRUSECTIONS_RULED,aPreci);
aBuilder.CheckCompatibility(Standard_False);
//added sections for building surface //added sections for building surface
Standard_Integer i =1; Standard_Integer i =1;
Standard_Integer nbAdded =0; Standard_Integer nbAdded =0;
@ -104,7 +104,8 @@ Standard_Integer GEOMImpl_ThruSectionsDriver::Execute(TFunction_Logbook& log) co
TopAbs_ShapeEnum aTypeSect = aShapeSection.ShapeType(); TopAbs_ShapeEnum aTypeSect = aShapeSection.ShapeType();
if(aTypeSect == TopAbs_WIRE) if(aTypeSect == TopAbs_WIRE)
{ {
BRepBuilderAPI_MakeWire aTool; aBuilder.AddWire(TopoDS::Wire(aShapeSection));
/*BRepBuilderAPI_MakeWire aTool;
TopExp_Explorer aExp(aShapeSection,TopAbs_EDGE); TopExp_Explorer aExp(aShapeSection,TopAbs_EDGE);
for( ; aExp.More() ; aExp.Next()) for( ; aExp.More() ; aExp.Next())
@ -113,7 +114,7 @@ Standard_Integer GEOMImpl_ThruSectionsDriver::Execute(TFunction_Logbook& log) co
{ {
TopoDS_Wire aSectWire = aTool.Wire();//TopoDS::Wire(aShapeSection); TopoDS_Wire aSectWire = aTool.Wire();//TopoDS::Wire(aShapeSection);
aBuilder.AddWire(aSectWire); aBuilder.AddWire(aSectWire);
} }*/
} }
else if(aTypeSect == TopAbs_EDGE) { else if(aTypeSect == TopAbs_EDGE) {
TopoDS_Edge anEdge = TopoDS::Edge(aShapeSection); TopoDS_Edge anEdge = TopoDS::Edge(aShapeSection);
@ -134,13 +135,15 @@ Standard_Integer GEOMImpl_ThruSectionsDriver::Execute(TFunction_Logbook& log) co
aBuilder.Build(); aBuilder.Build();
TopoDS_Shape aShape = aBuilder.Shape(); TopoDS_Shape aShape = aBuilder.Shape();
if (aShape.IsNull()) return 0; if (aShape.IsNull()) {
return 0;
BRepCheck_Analyzer ana (aShape, Standard_False);
if (!ana.IsValid()) {
Standard_ConstructionError::Raise("Algorithm have produced an invalid shape result");
} }
//BRepCheck_Analyzer ana (aShape, Standard_False);
//if (!ana.IsValid()) {
// Standard_ConstructionError::Raise("Algorithm have produced an invalid shape result");
//}
aFunction->SetValue(aShape); aFunction->SetValue(aShape);
log.SetTouched(Label()); log.SetTouched(Label());