NURBS from triangulation using GeomPlate


I'm trying to obtain a NURBS from triangulation of a surface using GeomPlate.

My idea was to create a NURBS for every triangle using triangle edges but I'm having an error.

First I've read documentation and tried example on official documentation in "Modeling Algorithms User's Guide" (page 36).

Then I have tried to change constraint as reported in the code below but application crash in a free() function during GeomPlate_BuildPlateSurface::Perform().

If I use the three points P1(0., 0., 0.), P2(0., 10., 0.), P3(0., 10., 10.) to build the wire the code works well.

I have tried the same code with OpenCascade 6.5.1 and OpenCascade 6.5.2 on VS2005.

What could be the problem? Have I used wrong parameters?

Thanks in advance,
Francesco Argese


gp_Pnt P1(0.00042938189, 0.12546401, 0.0013751500);
gp_Pnt P2(0.0014842700, 0.124916, 0.013828100);
gp_Pnt P3(0.0014683700, 0.124881, 0.0139044);
BRepBuilderAPI_MakePolygon W;

// Initialize a BuildPlateSurface
GeomPlate_BuildPlateSurface BPSurf(3, 15, 2);

// Create the curve constraints
BRepTools_WireExplorer anExp;
for(anExp.Init(W.Wire()); anExp.More(); anExp.Next())
TopoDS_Edge E = anExp.Current();
Handle(BRepAdaptor_HCurve) C = new BRepAdaptor_HCurve;
Handle(BRepFill_CurveConstraint) Cont = new BRepFill_CurveConstraint(C, 0);

// Compute the plate surface

// Approximate plate surface...

Forum supervisor's picture

Dear Francesco,

I would like to draw your attention to our Surface from Scattered Points component that is aimed to solve this kind of tasks, providing better robustness and performance compared to open source algorithms. You may find some more information about this component at
If you will find it interesting you may contact us via the Contact Form

Best regards,
Forum supervisor