Hi,
This is my fist post.
I've been slowly working my way building BReps from scratch using BRepBuilderAPI. I made the shell in the image attached.
When I tried to export it using BRepMesh_FastDiscret & BRep_Tool::Triangulation() all the faces export OK except the face shown in the second file.
In this case the Triangulation returns a null.
If I check the status of the face it says No_Error.
BRepBuilderAPI_MakeFace MF = BRepBuilderAPI_MakeFace(aCylinder, aWire);
if (MF.IsDone())
{
TopoDS_Face aFace = MF;
BRepCheck_Face aCF(aFace);
aCF.Blind();
BRepCheck_ListOfStatus aList = aCF.StatusOnShape(aFace);
BRepCheck_Status anItem = aList.First();
}
Tracing through the code. The problem is in here BRepMesh_FastDiscret::Add(const TopoDS_Face& theFace)
It tries this - I think for each edge but fails with aCurve2d.IsNull()....
Handle(Geom2d_Curve) aCurve2d =
BRep_Tool::CurveOnSurface(aEdge, aFace, aFirstParam, aLastParam);
if (aCurve2d.IsNull())
continue;
which fails because
cr->IsCurveOnSurface(S,loc))
is false.
I have a feeling that this is because of something I haven't done. Do I have to project the curve onto the surface?
Any suggestions? Are their other checks I can do?
Kind Regards,
Author